Skip to content
Vladyslav Vytrykush edited this page Jul 14, 2026 · 3 revisions

Welcome to the Adventure-Game Wiki! 🎮

Welcome to the official Adventure-Game Wiki!

This wiki is the central place for documentation related to the project. Whether you're a player curious about how the game works, a developer interested in the codebase, or someone looking to contribute, you'll find detailed information here.

Adventure-Game is a console-based text role-playing game (RPG) developed in C++. It was created as a personal learning project to explore object-oriented programming, software architecture, procedural generation, and game development fundamentals. Over time, the project has evolved into a portfolio piece that demonstrates clean code organization, modular design, and scalable programming practices.

Unlike many beginner console projects, Adventure-Game focuses on building systems that can be expanded with new mechanics, making it easier to introduce additional content and gameplay features as the project grows.


About the Project

Adventure-Game is a turn-based RPG where every new playthrough begins with the creation of a unique hero. Characters are generated procedurally, resulting in different combinations of races, professions, statistics, and attributes. This gives each adventure a slightly different experience and encourages replayability.

Throughout the game, players can:

  • Create randomly generated heroes
  • Explore a text-based world
  • Fight enemies in turn-based combat
  • Collect and manage equipment
  • Improve their character
  • Make strategic decisions during battles
  • Progress through different encounters

The project emphasizes code quality just as much as gameplay, making it useful both as a game and as a learning resource.


Purpose of This Wiki

The goal of this wiki is to provide detailed documentation that doesn't belong in the main README.

Here you'll find explanations of:

  • Project architecture
  • Class hierarchy
  • Game systems
  • Combat mechanics
  • Character generation
  • Inventory management
  • Development workflow
  • Design decisions
  • Future plans
  • Contribution guidelines

Rather than simply explaining what the code does, this wiki also explains why certain design choices were made.


Wiki Navigation

📖 Getting Started

Learn how to:

  • Build the project
  • Compile the source code
  • Run the game
  • Understand the project structure

🏗 Project Architecture

Explore the internal design of the project, including:

  • File organization
  • Class responsibilities
  • Object-oriented principles
  • Relationships between game systems

👤 Character System

Learn how characters are generated, including:

  • Races
  • Classes
  • Statistics
  • Attributes
  • Random generation
  • Character progression

⚔ Combat System

Documentation covering:

  • Turn order
  • Damage calculation
  • Health management
  • Enemy AI
  • Critical hits (if implemented)
  • Future combat improvements

🎒 Inventory System

Understand how the inventory works:

  • Weapons
  • Armor
  • Equipment
  • Items
  • Inventory management
  • Equipment bonuses

🌍 World Design

Information about:

  • Game locations
  • Encounters
  • Exploration
  • Future world expansion

💾 Save System

If available, this section explains:

  • Saving progress
  • Loading saves
  • Save file structure

🛠 Development

Useful for developers interested in the project.

Topics include:

  • Coding standards
  • Folder organization
  • Naming conventions
  • Adding new features
  • Refactoring guidelines

🤝 Contributing

Want to improve Adventure-Game?

Read the contribution guide to learn how to:

  • Fork the repository
  • Create feature branches
  • Submit Pull Requests
  • Report bugs
  • Suggest new features

Every contribution—whether it's fixing a typo or implementing a new gameplay mechanic—is appreciated.


📚 Design Philosophy

Adventure-Game follows a few important principles:

  • Readable code over clever code.
  • Simplicity before optimization.
  • Modular systems that are easy to expand.
  • Separation of responsibilities between classes.
  • Learning through practical implementation.

The project intentionally favors maintainability and clarity, making it easier for new developers to understand the codebase.


Technologies Used

The project is built primarily with:

  • C++
  • Object-Oriented Programming (OOP)
  • Standard Template Library (STL)
  • Git
  • GitHub

Future versions may incorporate additional libraries or frameworks as the project evolves.


Roadmap

Adventure-Game is still evolving. Planned improvements may include:

  • Additional enemy types
  • More playable races
  • New professions/classes
  • Expanded inventory system
  • Better combat mechanics
  • Quests and story progression
  • NPC interactions
  • Skills and abilities
  • Crafting system
  • Shops and economy
  • Save/Load improvements
  • Random world events
  • Achievement system
  • Improved balancing
  • Better user interface
  • Cross-platform support

The roadmap is flexible and may change as new ideas are explored.


Why This Project Exists

Adventure-Game began as a way to practice C++ programming beyond small exercises. Instead of solving isolated problems, the project focuses on building a larger application with multiple interacting systems.

Its primary goals are to:

  • Strengthen object-oriented programming skills.
  • Practice software architecture.
  • Learn project organization.
  • Improve code readability and maintainability.
  • Explore game development concepts.
  • Build a portfolio-worthy C++ project.

Every new feature is an opportunity to learn something new and improve the overall quality of the codebase.


Community

Whether you're a beginner learning C++, an experienced developer, or simply interested in text-based RPGs, you're welcome here.

Feedback, bug reports, feature requests, and pull requests are always appreciated. Constructive suggestions help make the project better for everyone.


Repository

GitHub Repository:

https://github.com/Perry1231/Adventure-Game

If you enjoy the project, consider giving it a ⭐ on GitHub. It helps others discover the repository and motivates continued development.


Thank you for visiting the Adventure-Game Wiki!

We hope this documentation helps you understand the project, explore its systems, and maybe even contribute to its future. Whether you're here to learn C++, study game architecture, or simply see how a text-based RPG is built, welcome aboard—and happy coding! 🚀

Clone this wiki locally