A Pac-Man clone done as an example of the C++ game engine framework: GEngine.
PacMan.mp4
- C++20 compatible compiler (GCC, Clang, MSVC).
- CMake ≥ 3.31.
The project is divided between the core GEngine folder, and the PacMan game folder.
Thid party tools used by the engine can be found at GEngine/vendor/
Main program entry point can be found at PacMan/src/Bootstrap/main.cpp. Here, GEngine is initialized, and PacMan is loaded and run.
The game overall structure is divided in contexts. A context is an abstraction of an independent chunk of a game. The game has three main contexts:
- Shared context: contains essential parts used by all the different game contexts.
- Meta context: context that contains all the menus that the player finds before the main gameplay (main menu for example).
- Gameplay context: main gameplay of the game.
- Raylib (OS layer and rendering)
- ImGui (editor ui)
- Glm (math)
- Spdlog (logging)
- Tmxlite (tiled importing)