Python/TCOD roguelike tutorial
This is a personal Python project following a tutorial to build a simple roguelike game using the TCOD library.
The tutorial is here.
- All features from the tutorial.
- Changes to reflect updates to TCOD library since the tutorial was first written.
- Implementation of imageio library to replace soon-to-be-deprecated
tcod.image.load()
function. - Additional logic to tweak procgen randomness.
- Generated floor storage (previously visited floors remain in memory and can be revisited).
- Can ascend to new floors as well as descend.
- Character level displayed in UI panel.
- Misses and Critical Hits:
- There is a low chance that any attack can either miss entirely or deal extra damage.
- Damage is determined randomly in a predefined range for each monster's attack and for different weapons.
- The player and monsters have a "power" stat that adds bonus damage.
- Armor equipment and monsters have an "armor" stat that is used to mitigate damage.
- Damage Types and Affinities:
- Monster attacks and weapons have damage types—potentially multiple damage types.
- Monsters have damage affinities, e.g., a monster may be weak to or immune to a certain kind of damage, resist or absorb certain other kinds of damage, etc.
- Armor can also provide damage affinities to the player.
The starting room will be a predetermined shape and location in the dungeon, and code that will handle drawing and displaying such non-generated rooms will be implemented.
- Give the game a title other than the default tutorial name.
- Change menu screen art.
- Incorporate release package publishing into workflow.
- Implement new monster types.
- Implement new room procgen functions (round rooms, etc.)?
- Implement non-scroll-based ranged combat (i.e., bows, etc.)?
- Ammunition system?
- Add new equipment?
- Add equipment slots?
- Implement character classes?
- Implement inherent spellcasting for certain classes?
- Implement MP?
- Implement level maximum?
- Add new scrolls/consumables?
- Add new special monster types for highest/lowest floors?
- Add class-synergizing equipment (staves, etc.)?
- Implement special actions for classes?
- Implement monster inventory?
- Implement monsters that have ranged attacks or spellcasting?
- Implement game sequence (overall goal, altered tables based on game state, preset starting room with dungeon exit)?
- Score/grade on dungeon exit or death?
- Implement boss monsters?
- Implement warp portals and "demiplane" location maps?
- Implement special color palettes for highest/lowest dungeon floors and "demiplane" locations?
- Implement more advanced speed/timing system?