Skip to content

SuppaTessta/chronicles-of-aethergate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Chronicles of Aether Gate

A professional steampunk text adventure RPG built with Python and Tkinter, featuring strategic turn-based combat, comprehensive inventory management, and a complete save/load system.

Game Logo

๐ŸŽฏ Overview

Chronicles of Aether Gate is a fully-featured RPG adventure game where players explore a mysterious steampunk facility to collect Aether Crystals and unlock a dimensional gateway. The game combines classic text adventure elements with modern GUI design and strategic combat mechanics.

โœจ Features

๐Ÿ—บ๏ธ Rich Game World

  • 5 unique locations with custom artwork and detailed descriptions
  • Interconnected room system with logical navigation
  • Environmental storytelling through room descriptions and items

โš”๏ธ Strategic Combat System

  • Turn-based combat with speed-based initiative
  • Enemy AI with different behavioral patterns (aggressive, defensive, tactical)
  • Player abilities with Focus point resource management
  • Status effects and temporary buffs/debuffs
  • Equipment modifiers affecting combat stats

๐ŸŽ’ Comprehensive Item System

  • Multiple item types: Weapons, Accessories, Consumables, Key Items
  • Equipment stats that modify player capabilities
  • Professional inventory GUI with tooltips and item details
  • Item rarity system with visual indicators

๐Ÿ’พ Complete Save/Load System

  • Multiple save slots with metadata display
  • Auto-save functionality after major events
  • Save file management with delete and organization features
  • JSON-based persistence for reliable data storage

๐Ÿ† Achievement & Victory System

  • Multiple victory conditions beyond the main objective
  • Achievement tracking for different play styles
  • Comprehensive statistics tracking player progress
  • Victory variations based on player performance

๐ŸŽจ Professional UI/UX

  • Modern GUI design using ttkbootstrap styling
  • Intuitive navigation with visual feedback
  • Professional main menu with game options
  • Comprehensive help system with full game guide

๐Ÿ› ๏ธ Technical Architecture

Technologies Used

  • Python 3.12 - Core programming language
  • Tkinter - GUI framework
  • ttkbootstrap - Modern UI styling
  • Pillow (PIL) - Image processing
  • JSON - Data persistence

Code Organization

chronicles_of_aethergate/
โ”œโ”€โ”€ launcher.py         # Game launcher and main menu
โ”œโ”€โ”€ main.py             # Main game controller
โ”œโ”€โ”€ models/             # Data models
โ”‚   โ”œโ”€โ”€ player.py       # Player character system
โ”‚   โ”œโ”€โ”€ enemy.py        # Enemy classes and AI
โ”‚   โ”œโ”€โ”€ item.py         # Item system
โ”‚   โ”œโ”€โ”€ room.py         # Room model
โ”‚   โ””โ”€โ”€ __init__.py
โ”œโ”€โ”€ engine/             # Game logic
โ”‚   โ”œโ”€โ”€ world_loader.py # Data loading utilities
โ”‚   โ”œโ”€โ”€ combat.py       # Combat engine
โ”‚   โ”œโ”€โ”€ item_manager.py # Item management
โ”‚   โ”œโ”€โ”€ save_load.py    # Save/load system
โ”‚   โ”œโ”€โ”€ victory.py      # Victory conditions
โ”‚   โ”œโ”€โ”€ sound_manager.py# Audio system
โ”‚   โ””โ”€โ”€ __init__.py
โ”œโ”€โ”€ ui/                 # User interface
โ”‚   โ”œโ”€โ”€ gui.py          # Main game GUI
โ”‚   โ”œโ”€โ”€ main_menu.py    # Title screen
โ”‚   โ”œโ”€โ”€ combat_gui.py   # Combat interface
โ”‚   โ”œโ”€โ”€ inventory_gui.py# Inventory management
โ”‚   โ”œโ”€โ”€ save_load_gui.py# Save/load interface
โ”‚   โ”œโ”€โ”€ dialog.py       # Dialogs and popups
โ”‚   โ””โ”€โ”€ theme/          # Theming and custom widgets
โ”‚       โ”œโ”€โ”€ theme_engine.py
โ”‚       โ”œโ”€โ”€ widgets.py
โ”‚       โ”œโ”€โ”€ effects.py
โ”‚       โ”œโ”€โ”€ additional_widgets.py
โ”‚       โ””โ”€โ”€ __init__.py
โ”œโ”€โ”€ data/               # Game assets
โ”‚   โ”œโ”€โ”€ rooms.json      # Room definitions
โ”‚   โ”œโ”€โ”€ enemies.json    # Enemy data
โ”‚   โ”œโ”€โ”€ items.json      # Item database
โ”‚   โ”œโ”€โ”€ images/         # Game artwork
โ”‚   โ””โ”€โ”€ sounds/         # Sound effects and music
โ”œโ”€โ”€ saves/              # Save game files
โ”œโ”€โ”€ tests/              # Test suite
โ”œโ”€โ”€ requirements.txt    # Runtime dependencies
โ”œโ”€โ”€ dev-requirements.txt# Development dependencies
โ”œโ”€โ”€ .gitignore          # Git ignore rules
โ””โ”€โ”€ README.md           # Project documentation

๐Ÿš€ Getting Started

Prerequisites

  • Python 3.12 or higher
  • Required packages (install via pip):

pip install ttkbootstrap pillow

Installation

  1. Clone or download the game files
  2. Navigate to the game directory
  3. Install dependencies:

pip install -r requirements.txt

For development (tests and tools):

pip install -r dev-requirements.txt

Running the Game

python launcher.py

Note: The game opens in maximized window mode for optimal visibility of all UI elements.

Optional: Audio Assets

  • The game can generate simple tones automatically, but you can add richer sounds.
  • Place CC0 or licensed sound files into data/sounds/ with these names:
    • menu.(wav|ogg), pickup.(wav|ogg), attack.(wav|ogg), heal.(wav|ogg), victory.(wav|ogg), defeat.(wav|ogg)
  • You can also auto-download your sounds using the helper (requires requests):
    pip install requests
    cp tools/sounds.json.example tools/sounds.json
    # Edit tools/sounds.json and paste direct file URLs (CC0 or licensed)
    python tools/fetch_sounds.py
    The game will always prefer files found in data/sounds/ over generated tones.

Background Music (Loop)

  • You may add a background music track that loops during the launcher and game:
    • Place your music file at: data/sounds/background.mp3
    • Volume defaults to 40% and loops continuously
    • Requires pygame for playback

Recommended track provided by you:

Attribution (example to include in your project): "Incredulity" by Scott Buckley (www.scottbuckley.com.au) is licensed under CC BY 4.0. Music via Chosic (https://www.chosic.com/free-music/all/). License: https://creativecommons.org/licenses/by/4.0/

Testing

Run the test suite:

pytest -q

Manual GUI harness lives under dev_tests/ and is excluded from pytest collection.

๐ŸŽฎ How to Play

Basic Controls

  • Navigation: Use arrow buttons to move between rooms
  • Combat: Click Fight when enemies are present
  • Inventory: Manage items, equipment, and consumables
  • Save/Load: Preserve progress across sessions
  • Keyboard Shortcuts:
    • Ctrl+I - Open Inventory
    • Ctrl+S - Save Game
    • Ctrl+L - Load Game
    • Ctrl+H - Show Help
    • F - Fight (when enemies present)
    • T - Take Item (when items available)

Objective

Explore the Aether Gate facility and collect 3 Aether Crystals to unlock the dimensional gateway. Fight mechanical guardians, discover powerful equipment, and uncover the mysteries of this ancient technology.

Combat Tips

  • Equipment matters: Weapons and accessories significantly impact your stats
  • Manage resources: Focus points enable powerful abilities
  • Enemy patterns: Learn AI behaviors to predict and counter attacks
  • Consumables: Use healing items strategically during tough fights

๐Ÿ† Achievements

  • Crystal Master: Collect all 3 Aether Crystals
  • Explorer: Visit every room in the facility
  • Warrior: Defeat multiple enemies in combat
  • Untouchable: Complete the game without taking damage
  • Tactical Genius: Minimize damage taken through smart play

๐Ÿ“Š Game Statistics

The game tracks comprehensive statistics including:

  • Rooms explored
  • Enemies defeated
  • Damage dealt and received
  • Items collected
  • Play time and efficiency

๐Ÿ”ง Development Notes

This project demonstrates:

  • Object-oriented design with clear separation of concerns
  • Event-driven GUI programming with proper state management
  • Data persistence using JSON serialization
  • Game AI implementation with behavioral patterns
  • Professional software architecture suitable for larger projects

๐Ÿ“ Credits

Development: Complete game design and implementation
Technology Stack: Python, Tkinter, ttkbootstrap, Pillow
Art Assets: AI-generated illustrations and icons
Game Design: Original steampunk RPG concept

๐Ÿ“ฆ Publishing Notes

  • Runtime requirements are minimized in requirements.txt.
  • Development-only tooling (pytest, etc.) is in dev-requirements.txt.
  • A .gitignore prevents committing caches, venvs, and save files (except the example autosave).

๐Ÿ“„ License

This project is created as a portfolio demonstration of Python GUI development and game programming skills.


Chronicles of Aether Gate - Where Steam Meets Magic โš™๏ธ๐Ÿ”ฎ

Releases

No releases published

Packages

 
 
 

Contributors

Languages