libtcod-d ~high_level_api

Bindings for using the excellent libtcod

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

libtcod-d 1.5.1-1

libtcod-d is a set of bindings for using the excellent libtcod in the D programming language.

The DLL ( on Linux, libtcod.dll on Windows) is dynamically loaded on start up, not linked at compile time.

It searches for, and if it can't find that, then on the executable's path (or dlls if on Windows). The current release build of 1.5.1 is lacking the functions `TCODmouseincludestouch and TCODsysgetsdlwindow`, and will fail on attempting to load those functions.

ATTENTION: the x8664 version of the library doesnt't work with DMD; the sample application crashes immediately as some function calls simply don't work - the parameters are totally garbled. Please use LDC to compile applications on x8664 platforms.

To try the samples, run dub run -c samples_d on 32bit platforms or dub run --compiler ldc2 -c samples_d on 64bit platforms.

The bindings are a strict port of the C API, so refer to libtcod documentation for more details. If I can get motivated, an object wrapper that would be similar to the C++ API may be forthcoming, so watch this space.

For comments and complaints, use the issue system on GitHub.

Developing with libtcod-d

The libtcod-d code is maintained in a Git repository at If you are also using Git for your own project, you should consider using "git submodule" to add the libtcod-d repository as submodule under your project. If you have experience with svn externals, git submodules are a similar feature.

Git submodules allow your repository to point at a single, static point in a separate repository as a child element. This avoids having to copy the code into your repo, etc.

Git submodules use a frozen point - not "HEAD" or any of the branch heads - so that you can develop against a stable background. If you want to update the submodule to a later version of its own code, you have to do that explicitly. This keeps your environment stable until you ask for it to change.

Of course, the best reason for using submodules is that you can clone the libtcod-d repository on github (or somewhere else), point your submodule at your clone, and make updates to the libtcod-d sources within the submodule directory. Then you can contribute to libtcod-d by pushing your changes back upstream. :)

  • Bernard Helyer
  • Joachim de Groot
1.6.7-1 2020-Apr-27
1.5.1-2 2018-Apr-12
1.5.1-1 2017-Nov-15
~master 2020-Apr-27
~high_level_api 2018-Jan-28
Show all 5 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 94 downloads total

Short URL: