My Dungeon Quest Journey

Inspiration

I’ve always loved RPG games where you explore dungeons, fight monsters, and grow stronger by leveling up your character. Inspired by classics like Diablo and Zelda, I wanted to create a text-based Python game that combines strategic combat, exploration, and RPG progression — all from the command line. This project gave me a chance to bring my love for storytelling and coding together.

What I Learned

Building Dungeon Quest pushed me to deepen my understanding of Python OOP concepts like classes and inheritance, as I designed characters, enemies, items, and skills as objects with unique behaviors. I also got hands-on experience managing game state with JSON files for saving and loading, and creating a dynamic, menu-driven CLI interface that feels engaging without graphics.

How I Built It

  • I started by defining the core classes: the main character, monsters, NPCs, and items.
  • Each monster has its own skill set and status effects that last multiple turns, creating strategic combat scenarios.
  • The dungeon offers two main routes with multiple rooms including safe zones, monster encounters, and treasure chests.
  • Boss rooms require a stat check and a key from a gatekeeper, adding progression hurdles and replayability.
  • I implemented a random merchant who appears in monster rooms, allowing players to buy and sell loot with gold earned from battles.
  • Save/load functionality lets players pause and continue their adventure seamlessly.

Challenges

One of the biggest challenges was designing a flexible combat system that could handle varied monster skills and status effects while keeping the gameplay fair and fun. Balancing the stat checks for gatekeeper keys to make progression rewarding but not frustrating took several iterations.
Another hurdle was managing game state effectively, ensuring that players couldn’t exploit chest loot or bypass key mechanics, which required careful tracking of player actions and persistent data storage.


Overall, Dungeon Quest was an exciting project that combined my passion for gaming and programming, and gave me practical experience building a complex, interactive Python application. I’m proud of how far it’s come and excited to keep expanding it!

Built With

Share this project:

Updates