Case Study · Must Design Games

Metropolis Dawn Grid

A cozy five-minute browser toy that, over twelve days, became a phase-gated commercial city-builder: a solarpunk hex world with a specialization economy, an endgame worth optimizing forever, and a headless simulator that balances it.

Built Jul 4–16, 2026 Form one zero-build index.html State Phase 1 · MVP complete Live mattdanusergrant.com
12days
Seed to solo-MVP: the first evening alone shipped v0.1 → v0.7
v0.1→ v11
Build versions, and eleven save-format migrations
9
Tiers, Hamlet → Megacity, each gated on people and money
6
Raw resources; no region can make all of them, so it must trade
18
Browser test suites, every feature verified in real Chromium

The living city builder you play for years, with your friends, for the price of a coffee a month.

vision.md, north star, locked day one

The seed was deliberately small: a snackable toy with one number to watch and no way to lose. The vision written the same night was not: a browser-first, always-online builder where your city is a node in a trading network, free to start and $5/month for the economy that makes it social.

Every decision since has been governed by one line, held above even the design pillars: no online element → not worth building at all. Solo depth is scaffolding toward the shared world, not the destination.

01 · Origin & the name

A subtractive toy, then a flagship bet

The first prototype cut everything a city-builder usually hoards (utilities, traffic, budgets, fail states) down to zone, grow, watch. It shipped in an evening and grew its first city from 0 to 1,291 people. Then the direction inverted: this would be the studio's first commercial product, resourced and de-risked like a real business, and the cut systems came back one at a time, but only when each earned its place against a single test: does this add strategic depth, or just clicks?

Utilities returned as coverage networks. Money returned as stakes. Traffic returned as a pressure that transit relieves. Each was a deliberate re-addition, not a default.

THE NAMING TOURNAMENT

Municipal District Grid → Metropolis Dawn Grid

The name was chosen by a five-judge panel (The Player, The Storefront Skimmer, The Cryptograph Keeper, The Multiplayer PM, and The Trademark Adversary) across three scored rounds.

The final round scored eighteen words as Metropolis Dawn ___. GRID, GLOBE, and GARDEN tied at 38 of 50, each carried by a different judge; the next word trailed by six. GATHERING and GALAXY were struck on trademark collisions, one of them with a game the studio had literally shipped.

The Operator picked GRID for its tech-showcase read, and kept the losers anyway: the globe is the world-select, the grid is the build surface, the garden is the city greening as it matures.

02 · The build, day by day

Twelve days, six inflection points

Not a straight line: a series of pivots, each one visible in the save-format number. Square grid to hexagons. Single materials to a six-resource basket. Money as the endgame to throughput as the endgame.

CH.01

Origin day: seed to v0.7 in one evening

2026-07-04 · 16:10 → 23:30
  1. 16:10
    The cozy toy, captured
    A "snackable, zero-friction web toy you can play for five minutes or fifty." Subtractive by design: one Population number, no fail state, utilities and budgets deliberately cut.
  2. 17:40
    v0.1First playable
    Grid-paper canvas, pixel buildings, five brushes, road-adjacency growth on 650 ms ticks. Flat top-down, not isometric. First city: 0 → 1,291.
  3. 18:20 → 19:35
    v0.2–v0.4RCI, parks, cars, utilities
    Demand meters that modulate speed not survival; a fixed highway as the world-link; power & water as coverage overlays, reversing the toy's "no utilities" thesis.
  4. 20:05
    The vision locks
    FLAGSHIP commercial bet + solo-depth first. Four pillars, a phase-gated roadmap, the $5/mo trading network, and the online mandate, all written the same night.
  5. 20:45 → 23:30
    v0.5–v0.7Supply chain · trains · terrain
    Works→Materials→Factory→Goods→Shops. Then rail and freight trains that export surplus to the highway,"the literal seed of inter-city trade." Then terrain biomes that make some land better at some things.
CH.02

The rename & the systems fortnight

2026-07-06 → 07-09
  1. 07-06
    v0.8–v0.9Named, and wired to a globe
    The naming tournament resolves. A dive from the globe now carries ?lat&lon into the builder: your spot on the shared planet sets your biome mix, your specialisation, and your own saved patch.
  2. 07-06
    Money, tiers, and the tools that gate on them
    A Treasury with build costs, taxes, upkeep, debt and interest, and progression now gated on a banked cash reserve, not just population. Bank, Port, and Tower unlock as you charter tiers.
  3. 07-06 · 17:15
    AI-run cities
    A planCity bot builds real, terrain-aware, visitable cities; an observe mode runs them read-only. The globe's neighbours stop being fake. They're places you can dive into.
  4. 07-08
    Trade partners & a moving world
    Pick up to four AI neighbours whose surplus flows to you over rail; their cities climb a tier every 18–40 hours between visits. The trading network, prototyped entirely client-side.
  5. 07-08 · 07-09
    v7A real world to move around
    A fixed 256×256 world with a camera, minimap, freeway corridors, ghost previews, an Inspect tool, rail as a crossing overlay, and bridges & tunnels for water and mountains.
CH.03

The deep analysis, and the endgame problem

2026-07-10
  1. 02:40
    Six bugs, one honest read
    A full pass against the vision fixes six real bugs, including a 65,536-cell scan running every animation frame, and a reload exploit that could undo debt interest. Verdict: Phase 1 is substantially real.
  2. 06:30
    The RCI meters had no fixed point
    The demand equations were R = 1.1R + 6 (no equilibrium), found when the Operator was sitting on a maxed Megacity with ₵3.7M and nothing to do. Rebuilt on a 2:1:1 balance, and the deeper problem got named: infinite wealth, no endgame.
  3. 07:15
    Progression overhaul: money that bites
    A public-services sink that scales with population (a 197k sprawl bleeds −₵4,293/mo), the tier ladder stretched 6 → 9 (Megacity now 32k people + ₵200k), density and tools earned by charter.
  4. 08:10
    The DAWN pass: solarpunk, and traffic
    Warm chrome, Solar arrays, per-tier tech (Smart Grid, Metro Network, Green Logistics), and Transit versus congestion: a dense city outruns its roads unless it moves people.
CH.04

The hex pivot & specialization

2026-07-11 → 07-13
  1. 07-11 · 07-12
    Contracts, events, policy, a backend
    Rotating civic contracts, five decision-card city events, a tax lever with ordinances, earned landmarks, achievements, a day-night cycle, and a server-authoritative Cloudflare Worker for claims and cloud saves, built and verified but held undeployed.
  2. 07-12 · 18:20
    v9"This is a hex grid game now"
    Globe, backend and builder all move to pointy-top hexagons in a single pass. One hex = one region = one plot; roads, rail and freeway become spokes between centres; the whole sim now walks six neighbours. The ideal substrate, arrived at by pivot.
  3. 07-13 · 06:14
    v10Specialization pressure
    Six raw resources, and every region deterministically gets one near, one medium-far, one very-far, and the rest absent. No map can make everything, so it must trade. The seed of the entire online economy, made mechanical.
  4. 07-13 · 17:45
    The first project to earn its own LLM
    The build workload had become the single largest consumer of the studio's model budget. Code work moved to a dedicated model; design, strategy and record-keeping stayed here.
CH.05

The MVP push: depth, an endgame, and a simulator

2026-07-16 · this session
  1. 00:40
    A cautionary review
    An outside model's "Logistics" contribution didn't parse, broke the Economy panel, and wiped every save with an un-migrated format bump. Discarded, but its ideas were kept, and its mistake made forward-migration a hard rule.
  2. 01:00 →
    v11The endgame depth layer
    Throughput-as-score (sustained Goods + 3× Electronics/tick, best-ever kept). Factory adjacency bonuses. Branching recipes and a nested Electronics chain. Two-way barter (no Goods, no imports), closing the free-inflow flaw. Undo. A live tuning panel. All migrating old saves forward.
  3. later
    A headless simulator, and what it caught
    A tool that runs the real game logic as AI cities, no graphics, and reports stats. It immediately exposed dead supply chains, city-wide gridlock, and insolvent regions. And every fix after it was measured, not guessed (see below).
03 · The engine

Depth from interdependence, not bloat

The 100-hour engine is one idea: a region can't make everything well, so it trades. Terrain hands each region a different slice of six resources; a two-step chain turns raw into finished; and what a region lacks, it must import, or export its own surplus to afford.

🪵 Lumber 🌾 Grain ⛏ Ore 🧱 Stone 🛢 Oil 🐟 Fish
Extract
Works
Pull the resource under them: Ore, Stone, Grain
Refine
Factory
Ore + Stone → Goods · or Goods + Oil → Electronics
Sell & ship
Shops · Rail
Consumed at home, or exported: Electronics at 3×
Endgame score
Throughput
Once cash caps out, optimise output forever

Trade is a real exchange, not free inflow: you barter your Goods reserve for a neighbour's raw surplus, and a region with nothing to sell can import nothing. That single rule is the online market, rehearsed inside one city.

04 · In the build
The game with the throughput lens overlay active: buildings tinted red, green and grey by supply health, with a legend at right.
Throughput lensEvery running building tinted by supply health: starved red, fed green, idle grey. A pure read on data the sim already computes, turning the map into a visible bottleneck puzzle.
The in-game Economy panel, led by a large Output score and per-resource production-versus-consumption blocks.
Economy panelProduction versus consumption for every resource, led by the ⚙ Output banner, the sustained-throughput score that becomes the objective once money stops mattering.
05 · Balance by measurement

A simulator that plays the real game

The hard part of a systemic economy is knowing whether it actually works. So the last stretch built a headless tool that runs the real game logic (no graphics, no reimplementation to drift out of sync) as AI cities across tiers, regions and tuning knobs, and prints stats.

It caught three things a human never would have at a glance: AI cities whose Works sat on the wrong terrain, producing zero finished goods; cities pinned at 100% gridlock because their roads never reached the freeway; and trade-dependent regions quietly going insolvent. Each was then fixed and re-measured: a producing economy, flowing traffic, and towns sized to what their land can sell.

goods regions (A,B) manufacture & export · resource regions (C,D,E) extract & sell raw · every region self-sustaining

06 · The rules it's built by

Four pillars, one mandate

Frictionless surface, systemic depth

Easy to learn, deep to master. Every hour-100 system passes one test: does this add strategic depth, or just clicks? If it's clicks, cut it.

Depth from interdependence

The 100-hour engine is specialisation and trade, not fifty micromanaged meters. Depth and the social hook are the same system.

Cooperative retention, never coercive

Pull, never punishment: your friends' cities thrive when you show up. No timers, no energy meters, no dark patterns.

Never sell power

The subscription buys access, content and convenience, never resources or trade advantage. The integrity of the market is the whole product.

ABOVE THE PILLARS

The online mandate: if there's no online element, it's not worth building at all. Solo depth exists to prove the fun is real before a dollar is spent on infrastructure.

07 · Where it's going

Phase-gated, so the spend follows the fun

Each phase must be validated as fun before the next is funded, especially before any backend. As of this session, the deep solo game is done to MVP: the gate to Phase 2.

The business is a $5/month no-brainer by construction: against a $40 box that goes stale and a $0 game full of timers, an always-growing, never-pay-to-win social builder is an easy yes for a genre fan. The subscription only survives if players stay happy for months, so the whole model points at long-term delight.

Phase 0
Solo prototype
Prove the core loop is satisfying
Shipped
Phase 1
Deep solo
Specialisation, tiers, endgame · free & local
MVP done
Phase 2
Accounts & cloud
Auth, cloud saves, Stripe scaffolding
Next
Phase 3
The trading network
Async trade between friends · premium turns on
Planned
Phase 4
Live-ops & scale
Seasonal events, regional projects, leaderboards
Planned
08 · Standing, today

The solo game holds up end to end, and every AI city already wants to trade.

Cities are solvent in every region, producing where the land allows and trading where it doesn't, with traffic that flows. That's not an accident of tuning. It's what the simulator measured into place. The surpluses and shortfalls the online market needs already exist inside single cities.

  • NEXTPrototype two-way standing trade offers against the AI cities, client-side, to prove the hook is fun before any backend.
  • THENThe Phase-2 spine: real accounts (retiring the device-token model), cloud saves on the v11 schema, Stripe.
  • THE BETPhase 3: the async trading network, where the surplus-and-deficit map becomes a market between real players.