Skip to content

juangallostra/roguelike-tutorial

Repository files navigation

roguelike-tutorial

So, after a week of confinement due to COVID-19, I have decided to follow the Python tutorial at roguebasin.

The tutorial can be found here.

Development status

I have already finished the last part of the tutorial (Part 13).

I am now building a more complete game on top of that.

22/03/2020

23/03/2020

24/03/2020

25/03/2020

26/03/2020

27/03/2020

28/03/2020

29/03/2020

31/03/2020

01/04/2020

List of modifications

Below you can find a list of things that I have done, up to he point were I am currently, different from the tutorial:

  • Avoid the use of global variables.
  • Console message logging system is a component of the objects that log messages.
  • Instead of each object drawing and clearing itself, rendering is handled by an independent class (Renderer).
  • The player class is in charge of handling its key events. It receives the key pressed and decides how to act.
  • The game map is a class instead of a list of lists.
  • The dungeon levels are all created when the game starts instead of generating them on the go when the player changes level. This allows the user to move freely between levels, although it comes at the cost of using more memory.
  • Enable loading custom tilesets. This is covered in the extras section of the tutorial.

TODO List

  • Make infinite number of dungeon levels.
  • Move strings to constants (key codes, object names, etc.).
  • Add method in objects to relocate them in array so that they are drawn in the correct order.
  • Check real time combat.
  • Check if libtcod can load both a font and a tileset from diferent files.
  • Create a tileset loader that handles all the required operations. (retro/no retro, only chars/chars and colors, etc.)
  • Document code.
  • Change color palette.
  • Add option to play with alphanumeric chars instead of colors/tilesets.
  • Bug in message log order when killing monsters.
  • Investigate how to use custom tilesets.
  • Add stairs to move between dungeon levels.
  • Fix field of view.
  • Only show objects that are in the current level.

WISH List

  • Add more enemies.
  • Add more equipment.
  • Add functionality to make enemies drop items when killed.

Releases

No releases published

Packages

No packages published

Languages