Welcome to Poke-Project, a simple yet engaging Pokémon game that takes you on a journey through a series of random events. Your mission, should you choose to accept it, is to catch all Pokémon from the first generation - all 151 of them!
- Seed-Based World Generation: At the start of your adventure, choose a seed or opt for a random one to generate the world. This seed determines the layout of the world, the events you'll encounter, and the Pokémon that appear, making each playthrough a unique experience.
- Random Events: Experience unique events as you traverse the world of Pokémon, making each playthrough a new adventure.
- First Generation Pokémon: Catch and interact with the beloved first generation of Pokémon.
- Leveling and Evolution: Train your Pokémon, level them up, and watch them evolve into their more powerful forms.
- Gym Battles: Engage in battles against Gym Leaders to prove your worth and increase the level cap for your Pokémon. There are 8 Gyms, each presenting a tougher challenge than the last, testing your strategy and the strength of your Pokémon team.
- Item System: Utilize a variety of items to help you on your quest to become a Pokémon Master.
- CMake version 3.22 or higher
- A C++23 compatible compiler
- Clone the repository to your local machine:
git clone https://github.com/SzeMrok/Poke-Project.git- Navigate to the project directory:
cd poke-project- Run CMake to build the project:
cmake -B build- Build the project
cmake --build build- The executable will be located under
bin/directory.
To navigate through the game's menus, use the arrow keys on your keyboard. This allows you to move through options and make selections within the game.
Community language files are supported.
- Create a new file in
assets/languages/using a locale-like name (for examplede_DE.json). - Add your language to
assets/languages/language_registry.json. - Follow the schema and key conventions in
assets/languages/LANGUAGE_GUIDE.md.
The game now loads en_US as a base and overlays your selected language, so missing keys in custom files automatically fall back to English.
This project is licensed under the MIT License - see the LICENSE file for details.
We use various third-party assets that are licensed under their own terms. Copies of these licenses can be found in the licenses folder at the root of this project. Below is a list of these assets and a brief description of their licenses:
- nlohmann/json: A modern JSON library for C++. Licensed under the MIT License. See
licenses/LICENSE-nlohmann_jsonfor more details. - PokeAPI: Data files used under the BSD-3-Clause License. See
licenses/LICENSE-PokeAPIfor more details. - cpp-inquirer: A library for creating interactive command line interfaces. Licensed under the MIT License. See
licenses/LICENSE-cpp-inquirerfor more details. - {fmt}: A modern formatting library for C++. Licensed under the MIT License. See
licenses/LICENSE-fmtfor more details. - battery-embed: A lightweight library for embedding assets directly into C++ binaries. Licensed under the Apache License 2.0. See
licenses/LICENSE-battery-embedfor more details.
We are grateful to the creators and maintainers of these projects.