Laurence Mercer

Introducing tcod-base

In my spare time, I've been developing tcod-base, a starter kit for building projects with python-tcod.

As mentioned on the respective GitHub repository pages, python-tcod is '[a] high-performance Python port of libtcod', and libtcod is '[a] collection of tools and algorithms for developing traditional roguelikes. Such as field-of-view, pathfinding, and a tile-based terminal emulator.' In turn, tcod-base provides a starting point for building projects (most likely traditional roguelikes) with python-tcod.

tcod-base was primarily inspired by HexDecimal's Roguelikedev tutorial engine repository, but diverges somewhat in its code architecture. Predominantly, the architecture encompasses the concepts/implementations of game, state, manager, world, action, and UI, and organises these like so:

# tree (abridged)
tcod-base/
├── assets/
├── game/
│   ├── actions/
│   ├── managers/
│   ├── states/
│   └── ui/
└── main.py

Meanwhile, features include base implementations of:

  • state management
  • UI system
  • general-purpose event-observer system
  • keyboard controls
  • map generation
  • inventory

If you'd like to try tcod-base, the README includes installation instructions, and documentation can be found in the docs directory.