95 lines
4.8 KiB
Markdown
95 lines
4.8 KiB
Markdown
|
# Introduction
|
|||
|
|
|||
|
libtcod is a free, fast, portable and uncomplicated API for roguelike developers providing a true color console, pathfinding, field-of-view, and a few other utilities frequently used in roguelikes.
|
|||
|
|
|||
|
Status:
|
|||
|
[![Build status](https://ci.appveyor.com/api/projects/status/pemepxo2221f8heo/branch/master?svg=true)](https://ci.appveyor.com/project/HexDecimal/libtcod-6e1jk/branch/master)
|
|||
|
[![Build Status](https://travis-ci.org/libtcod/libtcod.svg?branch=master)](https://travis-ci.org/libtcod/libtcod)
|
|||
|
[![Documentation Status](https://readthedocs.org/projects/libtcod/badge/?version=latest)](https://libtcod.readthedocs.io/en/latest/?badge=latest)
|
|||
|
[![codecov](https://codecov.io/gh/libtcod/libtcod/branch/develop/graph/badge.svg?token=pmHy3jXemj)](https://codecov.io/gh/libtcod/libtcod)
|
|||
|
|
|||
|
# How do I get set up?
|
|||
|
|
|||
|
## Using Vcpkg
|
|||
|
|
|||
|
This is the easiest way to get the latest stable version of libtcod for any project.
|
|||
|
|
|||
|
Libtcod is included as a port in [Vcpkg](https://github.com/microsoft/vcpkg).
|
|||
|
You can install libtcod via Vcpkg and then link the library using a [CMake](https://cmake.org/) script as you normally do for that package manager.
|
|||
|
|
|||
|
## As a submodule
|
|||
|
|
|||
|
This is the best option for testing the development versions of libtcod.
|
|||
|
|
|||
|
You can include libtcod in a project by adding the libtcod repository as a [submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) and then adding that directory to a [CMake](https://cmake.org/) script.
|
|||
|
You will want to fork [this template project](https://github.com/HexDecimal/libtcod-vcpkg-template) if you plan on starting a project with this setup.
|
|||
|
|
|||
|
It is expected that Vcpkg will be used, but libtcod's CMake script can be configured to compile without using Vcpkg for dependencies.
|
|||
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for details on configuring dependencies.
|
|||
|
|
|||
|
## Using one of our downloads
|
|||
|
|
|||
|
This is not recommend as these releases are unwieldy, are more difficult to update, and are less cross-platform.
|
|||
|
*Do not upload binary files to your projects source repository.*
|
|||
|
|
|||
|
If you are programming in C or C++ then
|
|||
|
Windows and MacOS binaries are available from the
|
|||
|
[GitHub Releases page](https://github.com/libtcod/libtcod/releases).
|
|||
|
|
|||
|
Various C/C++ sample projects are included within
|
|||
|
the repository which can be used as examples of various features.
|
|||
|
|
|||
|
Keep in mind that as a C++ library, you may need to distribute the
|
|||
|
appropriate runtime with your program such as the
|
|||
|
[Visual Studio 2015 runtimes](https://www.microsoft.com/en-us/download/details.aspx?id=53587)
|
|||
|
or else the program will fail to run.
|
|||
|
|
|||
|
For those who wish to program in Python you can install python-tcod using
|
|||
|
[this installation guide](https://python-tcod.readthedocs.io/en/latest/installation.html).
|
|||
|
Once installed you can follow
|
|||
|
[the Python 3 tutorial](http://rogueliketutorials.com/)
|
|||
|
or you can find Python example scripts on the
|
|||
|
[python-tcod repository](https://github.com/libtcod/python-tcod).
|
|||
|
|
|||
|
A alternative version of the Python library (libtcodpy) exists in the binary
|
|||
|
downloads, but you should avoid using this version as it is not as well
|
|||
|
maintained.
|
|||
|
|
|||
|
## Compiling from source
|
|||
|
|
|||
|
This is only recommended for libtcod developers.
|
|||
|
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|||
|
|
|||
|
# Getting Started
|
|||
|
|
|||
|
The latest documentation is [here](https://libtcod.readthedocs.io/en/latest).
|
|||
|
Currently it's very incomplete, so most people will want to read the
|
|||
|
[1.6.4 documentation](https://libtcod.github.io/docs/index2.html?c=true&cpp=true&cs=false&py=false&lua=false)
|
|||
|
instead.
|
|||
|
Python users should use the
|
|||
|
[python-tcod documentation](http://python-tcod.readthedocs.io).
|
|||
|
|
|||
|
libtcod comes with a sample application, implementations of which are provided
|
|||
|
in each of
|
|||
|
C ([samples_c.c](https://github.com/libtcod/libtcod/blob/master/samples/samples_c.c)),
|
|||
|
C++ ([samples_cpp.cpp](https://github.com/libtcod/libtcod/blob/master/samples/samples_cpp.cpp)),
|
|||
|
and Python ([samples_py.py](https://github.com/libtcod/python-tcod/blob/master/examples/samples_tcod.py)).
|
|||
|
This provides a decent overview of the basic features, in an interactive
|
|||
|
fashion.
|
|||
|
Each should be identical for the most part, so if you are using Windows,
|
|||
|
downloading the pre-compiled binaries and running the included `samples.exe`
|
|||
|
which is compiled from the C source code, should be representative of the other
|
|||
|
versions.
|
|||
|
|
|||
|
# Contact / Community
|
|||
|
|
|||
|
For reporting bugs or requesting features you should use the [GitHub Issues page](https://github.com/libtcod/libtcod/issues).
|
|||
|
For smaller questions or help with a tutorial or project you can join ``#libtcod`` on the [Roguelikes Discord](https://discord.gg/jEgZtqB) or on the [Libera.Chat](https://libera.chat/) IRC.
|
|||
|
|
|||
|
# Sponsors
|
|||
|
|
|||
|
[Sponsors donating $25 or more per month](https://github.com/sponsors/HexDecimal) will have their names or logos listed here.
|
|||
|
|
|||
|
* [q00u](https://github.com/q00u)
|
|||
|
* [amaya30](https://github.com/amaya30)
|