-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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.
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.
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.
Learn how to:
- Build the project
- Compile the source code
- Run the game
- Understand the project structure
Explore the internal design of the project, including:
- File organization
- Class responsibilities
- Object-oriented principles
- Relationships between game systems
Learn how characters are generated, including:
- Races
- Classes
- Statistics
- Attributes
- Random generation
- Character progression
Documentation covering:
- Turn order
- Damage calculation
- Health management
- Enemy AI
- Critical hits (if implemented)
- Future combat improvements
Understand how the inventory works:
- Weapons
- Armor
- Equipment
- Items
- Inventory management
- Equipment bonuses
Information about:
- Game locations
- Encounters
- Exploration
- Future world expansion
If available, this section explains:
- Saving progress
- Loading saves
- Save file structure
Useful for developers interested in the project.
Topics include:
- Coding standards
- Folder organization
- Naming conventions
- Adding new features
- Refactoring guidelines
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.
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.
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.
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.
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.
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.
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! 🚀