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

Welcome to the Adventure-Game Wiki! 🎮

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.


Wiki Navigation

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


Table of Contents


About the Project

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.


Project Goals

Adventure-Game was built with several objectives in mind.

Learn Modern C++

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

Build a Scalable RPG

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.


Create a Portfolio Project

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

Current Features

Character System

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.


Inventory System

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

Equipment System

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

Weapon System

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 System

Armor provides additional defense and includes:

  • Durability
  • Enchantment support
  • Random generation
  • Equipment bonuses
  • Broken state detection

Potion System

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.


Chest System

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.


Save & Load Framework

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.


Technology Stack

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.


Project Architecture

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
Loading

Each class is responsible for a specific aspect of gameplay.

This separation of responsibilities improves:

  • Maintainability
  • Readability
  • Reusability
  • Future scalability

Documentation Overview

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

Roadmap

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.


Contributing

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

License

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.


Final Notes

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! 🚀

Clone this wiki locally