A terminal-based RPG game built with Python featuring turn-based combat, quests, inventory management, merchants, leveling, save/load functionality, and a final boss battle.
Dragonfall: Ashen Curse is a text-based RPG built using Python and Object-Oriented Programming principles. The player fights enemies, completes quests, earns gold and experience, purchases equipment, manages an inventory, and prepares to defeat the Ancient Dragon.
The project was created to practice OOP concepts while building a complete RPG game from scratch.
In the land of Eldoria, peace was shattered when the Ancient Dragon awakened. Its dark curse spread across the kingdom, giving birth to the Dark Mage, who mastered forbidden magic and raised an army of Skeletons.
Meanwhile, Goblins emerged from the ruined forests, serving anyone powerful enough to ensure their survival.
As the last remaining hero, your mission is to defeat every threat standing between you and the Ancient Dragon to restore peace to Eldoria.
- Turn-based combat system
- Basic and Special Attacks
- Defense and Dodge mechanics
- Multiple enemy types
- Quest system
- Merchant system
- Inventory management
- Weapons and Armor equipment
- Health and Speed potions
- Leveling and EXP progression
- Save and Load system
- Final Ancient Dragon boss battle
GameProject/
├── main.py
├── Game.py
├── player.py
├── enemy.py
├── Quest.py
├── inventory.py
├── seller.py
├── items.py
├── goblin.py
├── skeleton.py
├── DarkMage.py
├── dragon.py
├── ui.py
├── save.json
└── requirements.txt
- Python 3.10+
- rich
- pyfiglet
Clone the repository:
git clone https://github.com/Ezz08/DragonFall-GameProject.gitMove into the project folder:
cd GameProjectInstall the required packages:
pip install -r requirements.txtpython main.pyPlayer Turn
- 1 → Basic Attack
- 2 → Special Attack
- 3 → Health Potion
- 4 → Speed Potion
Enemy Turn
- 1 → Defend
- 2 → Dodge
- Enter menu options using numbers only.
- Do not type extra spaces.
- Item names must match the correct spelling.
- Capitalization matters for text input.
The game saves:
- Player statistics
- Gold
- Experience
- Level
- Inventory
- Quest progress
- Equipment
You can continue your progress anytime from the main menu.
- More enemy types
- Additional quests
- Skills and abilities
- Better AI
- Improved terminal UI
- Sound effects
- More equipment and items
This project demonstrates several Object-Oriented Programming concepts, including:
- Classes
- Inheritance
- Polymorphism
- Composition
- Encapsulation
- Game loops
- State management
Developed by Ezz Fawzy
This project is currently not licensed.
Thanks to everyone who provided feedback and suggestions that helped improve this project.