A port of EnTT-Pacman to fatp-ecs.
FAT-P is a complete, production-grade C++ utility library written entirely by AI. fatp-ecs is an ECS library built on top of it — also written entirely by AI.
This project is the proof that it works. EnTT-Pacman is a real-world ECS codebase —
50 source files using EnTT's registry, entities, and component queries throughout.
Porting it to fatp-ecs required changing 1 line of game code. The rest of the
port is a two-file compatibility shim in third_party/entt/ that maps the entt::
namespace to fatp_ecs:: equivalents:
// third_party/entt/entity/fwd.hpp
namespace entt {
using entity = fatp_ecs::Entity;
using registry = fatp_ecs::Registry;
inline constexpr entity null = fatp_ecs::NullEntity;
}Every #include <entt/entity/registry.hpp> in the original source resolves to this
shim. No game logic was touched. A complete, AI-written ECS running a real game,
with a real codebase, unchanged.
Expected directory layout:
projects/
fatp-ecs/
FatP-Pacman/
SDL2 is managed via vcpkg. Open the folder in Visual Studio — it will restore SDL2
automatically and configure with the included CMakeSettings.json.
Or from PowerShell:
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE="C:/Program Files/Microsoft Visual Studio/18/Professional/VC/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows
cmake --build build --config ReleaseInstall SDL2 via your package manager:
# macOS
brew install sdl2
# Debian/Ubuntu
sudo apt-get install libsdl2-devThen build:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/pacmanOriginal game by indianakernick. Based on The Pacman Dossier. Not a perfect recreation — some behaviour is simplified intentionally.
