Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

This is a C++20 monorepo containing games built on a shared custom ECS (Entity Component System) engine and built with CMake + vcpkg. Games may be terminal-based (FTXUI) or graphical (raylib).

Projects

ProjectDescriptionStatus
ecs_engineShared ECS core — entity management, sparse-set registry, thread-safe event queueStable
Path of GuTurn-based roguelike dungeon crawler with Gu worm cultivationComplete
Tic Tac ToeClassic two-player terminal gameComplete
Leah’s VillageGraphical real-time village builder (raylib)In development

Monorepo Structure

Each game is an independent CMake target. ecs_engine is a static library (libecs_engine.a) that any game can link against. The dependency graph is flat — games depend on ecs_engine, but not on each other.

ecs_engine  ←  path_of_gu
            ←  leah_village
            ←  (future games)

tic_tac_toe        (standalone, no ECS)

Dependencies

LibraryPurpose
fmtString formatting
spdlogLogging
FTXUITUI rendering (path_of_gu)
raylibGraphical rendering (leah_village)
Catch2Unit testing