Case study · Games & Simulation
FableCity: a city simulation that thinks in millions
A Cities-Skylines-class city builder in Godot 4 whose aggregate simulation model handles a 3,000,000-population city on desktop hardware.
- Industry
- Games
- Timeline
- ongoing
- Year
- 2026
- Services
- Game development, Simulation engineering, Performance
The problem
City builders face a brutal trade-off: simulate every citizen and choke at 100k population, or fake everything and lose the emergent behavior that makes the genre work. The big-studio benchmark struggles past a few hundred thousand agents. The design question: how far can a city sim scale if you refuse per-agent simulation entirely?
What we built
A city-building game in Godot 4 built around an aggregate simulation core. Population, employment, traffic load, utilities, land value and demand are modeled as interacting statistical cohorts rather than individual agents. Three million citizens is not three million pathfinding jobs, it is a set of coupled equations over district-level aggregates that still produce believable macro behavior: commute pressure, gentrification waves, blackout cascades.
Engineering discipline the project runs on:
- A performance gate, not performance hopes. An automated test suite includes hard perf checks; a change that drops the frame budget fails the build. Optimization is continuous, not a pre-release panic.
- Every feature visible on launch. A standing rule: each new system must be observable in the default starter city immediately. No features that exist only in code reviews.
- Deterministic simulation ticks. The sim advances in fixed deterministic steps, which makes regression tests meaningful and desyncs debuggable.
Why it is in a portfolio of business software
Because it is the same discipline under a different skin: a performance-critical domain, a data model chosen to make impossible scale possible, and automated gates that keep quality from regressing. If we can keep a 3-million-citizen economy responsive on a desktop, your dashboard can survive Monday morning traffic.