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.
How do I get set up?
This is the easiest way to get the latest stable version of libtcod for any project.
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 and then adding that directory to a CMake script. You will want to fork this template project 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 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.
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 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. Once installed you can follow the Python 3 tutorial or you can find Python example scripts on the python-tcod repository.
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.
libtcod comes with a sample application, implementations of which are provided
in each of
and Python (samples_py.py).
This provides a decent overview of the basic features, in an interactive
Each should be identical for the most part, so if you are using Windows,
downloading the pre-compiled binaries and running the included
which is compiled from the C source code, should be representative of the other