-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the official documentation for Adventure-Game, a console-based role-playing game (RPG) written in C++. This wiki serves as the central source of information for players, contributors, and developers who want to understand the project's gameplay systems, internal architecture, and development process.
Adventure-Game was created as both a learning project and a portfolio application, focusing on modern C++ programming, object-oriented design, dynamic memory management, and scalable software architecture. Rather than being a simple console application, the project combines multiple interconnected systems—including character creation, inventory management, equipment handling, procedural item generation, and game state management—into a complete RPG framework.
Whether you're interested in playing the game, studying the code, or contributing new features, this wiki provides comprehensive documentation for every major component of the project.
The Adventure-Game Wiki is organized into multiple pages, each covering a specific aspect of the project. Whether you're interested in learning how the game works, understanding the codebase, or contributing to development, the pages below will guide you through every major system.
| Page | Description |
|---|---|
| Home | Overview of the project, goals, technologies, and wiki navigation. |
| Getting Started | Learn how to clone, build, and run Adventure-Game on your system. |
| Installation | Detailed setup instructions for Windows, Linux, and supported IDEs. |
| Project Structure | Explore the repository layout, folders, and source files. |
| Architecture | Understand the overall software architecture, design philosophy, and class relationships. |
| Character System | Learn how characters are created, their attributes, statistics, professions, races, and active effects. |
| Inventory System | Documentation for the dynamic inventory, item management, resizing, and ownership. |
| Equipment System | Overview of equipping and unequipping weapons and armor, including stat calculations. |
| Weapon System | Detailed explanation of weapon generation, durability, enchantments, and combat statistics. |
| Armor System | Documentation covering armor generation, durability, defense values, and equipment mechanics. |
| Potion System | Learn how consumable items work, including temporary effects and character buffs. |
| Chest System | Discover how loot chests are generated, rarity tiers, and reward distribution. |
| Save & Load System | Current implementation status, future serialization plans, and save file architecture. |
| Game States & Menus | Overview of the game's navigation flow, menus, and state transitions. |
| Class Hierarchy | UML diagrams and explanations of all major classes and their relationships. |
| Development Guide | Coding standards, naming conventions, project organization, and how to extend the game. |
| Contributing | Guidelines for submitting issues, pull requests, and contributing to the project. |
| Roadmap | Planned features, future improvements, and long-term development goals. |
| FAQ | Frequently asked questions about the project, gameplay, and development. |
| Glossary (Optional) | Definitions of important game mechanics, programming terms, and project-specific concepts. |
Tip: If you're new to the project, we recommend reading the pages in the following order:
Getting Started → Installation → Project Structure → Architecture → Character System → Inventory System → Equipment System → Development Guide
- About the Project
- Project Goals
- Current Features
- Technology Stack
- Project Architecture
- Documentation Overview
- Roadmap
- Contributing
- License
Adventure-Game is a text-based RPG where players create their own hero, manage equipment, collect loot, improve character statistics, and explore an expanding game world.
The project demonstrates many concepts commonly found in larger RPG games while maintaining a clean and modular codebase suitable for learning modern C++ development.
The game currently includes systems for:
- Character creation
- Character progression
- Inventory management
- Equipment management
- Weapons and armor
- Consumable potions
- Loot chests
- Temporary status effects
- Dynamic item generation
- Save/Load framework
- Interactive menu system
Each subsystem has been implemented as an independent component, allowing new features to be added with minimal changes to existing code.
Adventure-Game was built with several objectives in mind.
The project explores practical C++ programming concepts beyond simple programming exercises, including:
- Object-Oriented Programming
- Class inheritance
- Polymorphism
- Dynamic memory management
- STL containers
- Encapsulation
- Modular software architecture
Instead of implementing isolated mechanics, Adventure-Game focuses on creating reusable systems that work together.
Examples include:
- Items that can be stored, equipped, or consumed
- Equipment affecting character statistics
- Temporary effects modifying player attributes
- Randomized loot generation
- Expandable inventory system
This architecture makes it easy to introduce future gameplay features.
Adventure-Game also serves as a portfolio project showcasing software engineering principles through game development.
The repository demonstrates:
- Clean code organization
- Object-oriented design
- Modular architecture
- Documentation practices
- Git workflow
- Continuous project improvement
Players create a unique character with personal information and gameplay statistics.
Available attributes include:
- Name
- Age
- Race
- Profession
- Health
- Strength
- Defense
- Agility
- Intelligence
- Gold
- Level
Characters can also receive temporary status effects that modify these attributes during gameplay.
The inventory is fully dynamic and automatically expands as more items are collected.
Current functionality includes:
- Add items
- Remove items
- Display inventory
- Automatic resizing
- Unique item identifiers
- Item management
- Equipment handling
Players can equip both weapons and armor.
Equipment influences total character statistics.
Current equipment features include:
- Attack bonuses
- Defense bonuses
- Durability
- Enchantments
- Broken item detection
- Equip and unequip mechanics
Weapons support:
- Random generation
- Starting equipment
- Special weapon generation
- Durability
- Attack value
- Defense bonus
- Enchantment status
Every weapon behaves independently and can become unusable when its durability reaches zero.
Armor provides additional defense and includes:
- Durability
- Enchantment support
- Random generation
- Equipment bonuses
- Broken state detection
Potions provide temporary or immediate effects.
Supported effect types include:
- Health restoration
- Strength increase
- Defense increase
- Agility increase
- Intelligence increase
- Gold rewards
The active effect system allows multiple temporary effects to be processed over time.
Loot chests generate randomized rewards based on rarity.
Current rarity tiers:
| Rarity | Chance |
|---|---|
| Common | 52% |
| Rare | 28% |
| Epic | 15% |
| Legendary | 5% |
Higher rarity chests provide stronger equipment and more valuable rewards.
The project already contains the architecture for a save and load system.
Although serialization logic is still under development, the current framework prepares the project for persistent game progress in future versions.
Adventure-Game is developed entirely in modern C++ using standard libraries.
| Technology | Purpose |
|---|---|
| C++ | Core programming language |
| STL | Containers and algorithms |
| Object-Oriented Programming | Game architecture |
| Dynamic Memory Allocation | Inventory management |
| Git | Version control |
| GitHub | Repository hosting |
The project intentionally avoids external game engines or third-party frameworks to focus on core programming concepts.
Adventure-Game follows a modular object-oriented architecture.
classDiagram
Item <|-- Weapon
Item <|-- Armory
Item <|-- Potion
Character --> MyInventory
MyInventory --> Item
Character --> Weapon
Character --> Armory
Character --> Chest
Each class is responsible for a specific aspect of gameplay.
This separation of responsibilities improves:
- Maintainability
- Readability
- Reusability
- Future scalability
This wiki contains detailed documentation for every major component of the project.
| Page | Description |
|---|---|
| Getting Started | Building and running the project |
| Installation | Supported compilers and IDEs |
| Project Structure | Repository organization |
| Architecture | Internal design and class relationships |
| Character System | Player statistics and progression |
| Inventory System | Dynamic inventory implementation |
| Equipment | Weapons, armor, and equipment mechanics |
| Potion System | Consumable effects |
| Chest System | Loot generation |
| Save & Load | Persistence framework |
| Development Guide | Adding new features |
| Roadmap | Planned improvements |
| FAQ | Frequently asked questions |
Adventure-Game continues to evolve.
Some planned improvements include:
- Complete turn-based combat
- NPC interactions
- Shops and economy
- Quest system
- Skill trees
- Additional races
- Additional professions
- More weapon types
- More armor types
- Better balancing
- Full save/load implementation
- Crafting system
- Expanded world generation
The roadmap is flexible and may change as the project grows.
Contributions are always welcome.
Whether you're fixing bugs, improving documentation, or implementing new gameplay systems, every contribution helps make the project better.
Before contributing, please read:
- CONTRIBUTING.md
- CODE_OF_CONDUCT.md
- SECURITY.md
Adventure-Game is an open-source educational project intended for learning and demonstrating modern C++ programming concepts.
Refer to the repository's LICENSE file for licensing information.
Adventure-Game is more than a simple console RPG—it's an ongoing software engineering project that demonstrates how multiple independent systems can work together to create a scalable game architecture.
This wiki is designed to document not only what the project does, but also how it works internally and why certain design decisions were made.
We hope this documentation helps you better understand the project, learn from its implementation, and perhaps even contribute to its future development.
Happy coding, and enjoy exploring Adventure-Game! 🚀