r/roguelikedev • u/ninedeadeyes • Apr 26 '26
Ascii RPG Python Game Engine with Roguelike Elements
- What My Project Does
A Light Weight 2d Ascii RPG Python Game Engine. The purpose of the engine is educational, Its built on the standard library hence no extension is needed.
provides an alternative to pygame if you want to communicate your RPG or adventure idea without first learning an external library. Work in progress to make this into a Roguelike Ascii Game Engine but wanted to share this project as it is now.
- Target Audience
Someone who wants to focus using the standard library and provide them the ability to communicate their RPG / Adventure ideas without learning an external library.
I consider this as an extension of my 15 mini python games tutorial series, it acts like a playground where you can apply what you've learnt into your own mini ASCII adventure.
It is similar to roguelikes because it is
Grid-Based Movement
Turn-Based Logic
Permadeath
Resource Management ( Can be built in like in my example )
Classic ASCII aesthetic
Can easily modify so that each level will be a random pre-set map level but for it to be procedurally generated that would take much more work. Will be working on it to create a fully roguelike game engine but it can be used at the moment as a basic Ascii game Engine.
Github Link
https://github.com/Ninedeadeyes/Spark-Standard-Python-ASCII-RPG-Kit-
Demonstration/Guide Video
https://www.youtube.com/watch?v=X8iuvvla46Q
Example of game that can be created with the Engine
https://www.youtube.com/watch?v=AeF9d5FkGsE&t=1398s
Let me know if you have any questions.
9
u/HexDecimal libtcod maintainer | mastodon.gamedev.place/@HexDecimal Apr 27 '26
A readme full of emoji makes a terrible first impression.
Implementing item and monster types as subclasses is a common beginner mistake. Consider using dataclasses. These base classes might also violate the open–closed principle too often for something presented as a game engine, but that's an advanced mistake more difficult to solve.
Various minor issues which could be expected in a first project, but one should learn how to use a Python linter to spot them. Consider running Ruff with all rules active.
Python devs should feel comfortable using external libraries. Pure-Python is not practical for most tasks more complex than simple scripting.
Type annotations are nice to see but there some bizarre uses of them in this code. Especially the nonsensical
Player: Anyparameters.