Roguelike Tutorial

In 2017, the roguelike development subreddit announced a special event: RoguelikeDev Does The Complete Roguelike Tutorial. The idea was simple and brilliant: Every week, developers both new and old alike would work on a small part of the official roguelike tutorial on Roguebasin, posting updates about their progress and trying to keep up with the weekly tempo. Each week would cover between one and two parts, depending on the length and complexity.

Having completed this tutorial a few times (for an experienced developer, it only takes about 2-3 hours, if even that), I decided to try and write my own version of the tutorial, fixing what I found to be flaws in its construction. These include:

  • The file structure. The tutorial is all written in one file.
  • There are globals everywhere.
  • It was written for Python 2 only (to be fair, updating it to Python 3 is fairly easy).
  • While it’s fairly easy to follow along with for the most part, in some sections, it can be hard to tell where code is supposed to be added.

The end result can be found here. Since this event, this tutorial has become the default Python roguelike tutorial, replacing the old one (this was actually not my intention, but the community response was overwhelmingly positive, and the subreddit mods decided to recommend it over the original).

Over time, the library which this tutorial leans on the most, tcod, went through several updates, and deprecation warnings started cropping up for those following my tutorial. Therefore, for the 2020 event, I decided to do it all over again, this time, using the latest version of tcod.

Luckily, I got help from the author of tcod himself, HexDecimal. With him helping write the code (in fact, part 10 was written by him 100%) and me writing the tutorial text, we made quite a lot of progress towards creating a more modern, cleaner version of what I offered in 2017.

This new version of the tutorial is almost complete. The code for the tutorial is finished, and there are 3 more parts that still need tutorial text. The new tutorial can be found here.