- Entry date
- 1 June 2025
- Category
- Tooling
- Access
- 🔓 Public
A real, playable city builder, in React — proof that a UI framework built for forms and dashboards can hold a real-time game loop too.
- 5
- resource systems: money, population, happiness, power, water
- Zustand
- state library chosen for fast, frequent game-state updates
- React 18
- isometric rendering + real-time state, in a UI framework
Honest evaluation
A finished, playable, real-time game with five interacting systems shipped in React — the framework-can-hold-a-game-loop claim is proven on this build.
The evidence — full reasoning behind the verdict
Verdict: proven. The narrow architectural question this project asked — can React hold up under a real-time, frequently-updating game loop without turning into a performance mess — got a direct, working answer: yes, on this build.
The mechanism is specific, not just a vibe: Zustand's subscription-based state model avoided the re-render overhead a heavier state library or naive prop-drilling would have introduced under five interacting, fast-changing resource systems. That's a concrete state-management finding, not just "it ran fine."
What this doesn't prove: that the same approach holds at commercial scale, with a real content pipeline and far more entities on screen at once. The honest scope is a single pleasant build, not a stress test — a genuinely tougher next test would be scaling the same architecture to an order of magnitude more buildings and measuring where the frame rate actually starts to drop.
Not every entry in this archive is a research push or a client delivery. Some are just a good weekend problem, finished properly — this is one of those, kept on the record because it's real, complete, and playable.
What it was
A browser-based isometric city-builder game: place buildings, manage a small economy, and watch five resource systems — money, population, happiness, power, and water — respond to each other in real time, in the classic SimCity-adjacent mould.
What we built
Shipped & measuredA complete, working game in React 18 and TypeScript, built with Vite and state-managed with Zustand. Building placement drives an isometric grid; each placement updates the five resource systems, which in turn affect each other (power shortages dent happiness, population growth strains water, and so on) — a small but genuinely interacting simulation loop, not a static scoreboard.
The real test wasn't the game design, it was the plumbing: could React — a framework built primarily for forms, dashboards, and content-driven UI — hold up under a real-time, frequently-updating game loop without turning into a performance mess?
What we learned — including the honest negative(s)
It held up well, and the specific finding worth recording is about the state layer, not the rendering: Zustand was a strong fit for state that changes fast and often. Its minimal-boilerplate, subscription-based model avoided the re-render overhead that a heavier state library (or naive prop-drilling) would have introduced under a real-time simulation loop.
The honest edge is scope, plainly stated: this is a toy and a learning project, not a commercial game. There's no content pipeline, no balancing pass beyond "it feels fun to play," and no attempt to stress-test the isometric renderer or the resource simulation beyond a single pleasant build. It was never meant to compete with a real city-builder — it was meant to answer one narrow architectural question, and it did.
Where it went / status
Finished, working, and archived as-is — no further iteration planned. Its value sits next to the more ambitious, unfinished entries elsewhere in the record: proof that a small, honestly-scoped project, taken to completion, is its own kind of result, not a lesser one.
What is still open — kept visible
The honest edges, next to the wins. This is what turns 🔬 into 🟢 — honestly.
- A toy/learning project, not a commercial game — no monetisation, no content pipeline, no players beyond the build itself.
- Isometric rendering and game-state performance were tuned for a pleasant single build, not stress-tested at scale.
Sources
- vocabotics project audit — SimCity Clone (isometric city builder, React 18 + Zustand), Jun 2025vocabotics internal project history · as of June 2025