Game Design & Development · Browser-Based · 2026

Sim
Glasgow

A persistent city economy on a real map of Glasgow. Buy land, build, collect yield, and vote on the rules everyone plays by.

Type

Multiplayer Browser Game

Stack

HTML · CSS · JS → Node.js · PostgreSQL

Status

MVP Prototype — v6

Started

2026 — Ongoing

I wanted to make a game that used Glasgow's actual geography as the playing field. Not a fictional city — Glasgow, geographically accurate, abstracted into a grid. You buy land on a real map of the city. You build on it. You collect yield every five minutes. And you vote on the economic rules that everyone plays by.

That last part is what makes it interesting. It's not just a property game. The tax rate and mortgage rate that govern every player's income aren't set by the system — they're set by the players, democratically, through a monthly election. Your neighbour can vote for higher taxes to fund public works. You can vote them down. The economy is live, the politics are live, and both affect the other.

The design started from a question: what happens when you put real economic mechanics — land scarcity, yield, interest rates, eminent domain — into a browser game? The answer is still being worked out. That's why it's interesting.

Sim Glasgow v8 dashboard — full UI showing portfolio, map view, and player milestones

The whole game runs on three interlocking pillars. If you pull on one, the other two have to respond. That's the system design, a combination of economic, social, and political mechanics. Bringing together the best bits of city building games but making them work with politics and a multiplayer environment.

01

Pillar One — Property

The Land

300 plots. Fixed supply. Scarcity is the whole point. The map is divided into five concentric rings — Outskirts to Luxury Core — with inner rings locked behind economic milestones. Everyone starts on the edge. Getting to George Square takes time, money, and the right political conditions.

02

Pillar Two — Industry

The Yield

Every plot generates income. Players decide how. A global server tick fires every five minutes and calculates earnings for all 300 plots simultaneously — based on building level, zone, tax rate, and active policy. You collect manually, which means the game rewards engagement without punishing absence too hard. Upgrade buildings from Level 1 to Level 5 and the 3D model on the map changes to match.

03

Pillar Three — Politics

The Democracy

One player, one vote. An election runs every game month. Whoever wins controls the Commercial Tax Rate and the Base Interest Rate — the two levers that shape every other player's income and expansion costs. High tax, full city treasury, stunted private growth. Low tax, everyone expands faster, nothing gets funded. It's a political argument with economic stakes.

500

Total MVP plots — fixed supply

5min

Global server tick — yield calculation

5

Concentric rings — outskirts to core

1v1

One player, one vote — real democracy

Sim Glasgow dashboard — property plots showing George Square, Merchant City, Blythswood Hill with hourly yields Properties View
Sim Glasgow map view — satellite image of Glasgow city centre with player-owned plots marked Live Map — Glasgow City Centre
Sim Glasgow politics view — live voting on mortgage interest rate and Gorbals regeneration zone Politics — Live Votes

The dashboard went through nine major iterations. Early versions were heavy on chrome and panels — too many at-a-glance numbers competing for attention. By v7 the property and politics screens were split into their own routes, freeing the dashboard to do one thing well. v9 introduced the relation diagram that maps how the three pillars affect each other in real time.

Sim Glasgow v0 dashboard — earliest UI iteration before the three-pillar split v0 — first dashboard
Sim Glasgow v2 dashboard — iteration exploring information density and hierarchy v2 — density iteration
Sim Glasgow v0 politics screen — first pass at the voting interface v0 — politics first pass
Sim Glasgow v7 — property data UX, plot stats laid out as a structured table v7 — property data UX
Sim Glasgow v7 — property purchase flow, second iteration with clearer confirmation step v7 — purchase flow
Sim Glasgow v9 — bank screen showing player finances and interest rate exposure v9 — bank screen
Sim Glasgow — relation diagram mapping how property, yield, and politics affect each other System map — pillar interactions
Sim Glasgow v9 — property portfolio view, owned plots and yield breakdown v9 — property folio

The concentric ring model is the core tension of the game. Outer rings are cheap — anyone can afford a plot in the Outskirts on day one. But the inner rings are locked. They don't unlock by time — they unlock by collective economic milestones. The whole city has to grow before the Core opens up.

This prevents the first players in from buying George Square on launch day and sitting on it. Everyone races inward as the economy develops. That's the Inner Rush — and it means the political decisions made in the first few weeks actually matter, because they shape when and how fast the city opens up.

Ring Plots Entry Price Yield / hr
Ring 1 — Outskirts 100 £5,000 £25
Ring 2 — Suburban 75 £25,000 £110
Ring 3 — Fringe 75 £120,000 £500
Ring 4 — Core 40 £2,000,000 £7,200
Ring 5 — Luxury 10 £10,000,000 £32,000

Every number in the game has to be balanced against every other number. The yield formula is where that balance lives — it connects the individual player's choices (renovation level, plot zone) to the collective political outcome (tax rate, active policy). You can't fully optimise your income alone. You need the right government.

The 7-day inactivity rule is the anti-squatting mechanic — Eminent Domain. If you don't log in for a week, the system buys your land back at 60% of market value and auctions it to active players. In a city with 300 plots, stagnant ownership kills the whole economy. This keeps land moving.

Yield Formula — per 5-minute tick

Yield = (Base + Renovation) × (1 − Tax) × PolicyMultiplier

Base — static value per ring. Ring 5 yields exponentially more than Ring 1.

Renovation — capital invested by the player. Scales with diminishing returns.

Tax — set by elected council. Range: 1%–29%.

PolicyMultiplier — modified by active political resolutions, e.g. Gorbals Regeneration Bonus.

You can't fully optimise your income alone. You need the right government. — Sim Glasgow Game Design Document, v2.1

The prototype started in vanilla HTML, CSS and JS — the fastest way to test mechanics without committing to a full stack. v6 is playable in a single HTML file. It simulates the tick, the balance, the milestones, and the map. It's a logic test before a real build.

The production architecture I've designed uses Node.js for the backend (the event-driven model suits a game with thousands of concurrent low-latency actions), PostgreSQL as the source of truth with full ACID compliance for transactions, and BullMQ + Redis to manage the 5-minute tick reliably — because a native setInterval drifts under load and you can't have the economy skip a beat.

The 3D map is planned in Three.js via React Three Fiber, rendered with instanced meshes — 100 Ring 1 buildings as a single GPU draw call rather than 100 separate ones. That's the only way to keep it performant in a browser at scale.

01

Prototype — Vanilla HTML/JS

v6 is a fully self-contained single-file prototype. Simulated tick, live balance, map placeholder, milestone tracking. All logic, no backend yet. Currently at this stage.

02

Backend — Supabase + PostgreSQL

Next step is the real server. Authoritative world state, atomic transactions for land purchases, BullMQ scheduling for the tick. Supabase auth for player identity.

03

2D Isometric Map — Isometric Pixel Art

Glasgow city centre abstracted to a 2×2 unit grid. Low-poly building assets per zone and level, rendered with instancing. The map is the interface — ownership visible at a glance.

04

Scale — 500 → 10,000+ plots

MVP is deliberately capped at 500 plots to test economic balance. The architecture is designed to shard by ring_id when the time comes. The modular monolith becomes microservices when it needs to.

Type Persistent multiplayer browser game. City economy simulation.
Prototype v6 — single-file HTML/CSS/JS. Fully playable logic simulation.
Prod Stack React + Three.js (frontend), Node.js (backend), PostgreSQL (database), BullMQ + Redis (tick scheduler), Azure Web PubSub (real-time).
Map Geographically accurate Glasgow city centre. 2×2 unit grid abstraction. Five concentric rings — 500 total plots at MVP.
Economy 5-minute global tick. Yield = (Base + Renovation) × (1 − Tax) × PolicyMultiplier. Exponential cost scaling per building level.
Politics Monthly election. 1 Player = 1 Vote. Elected council sets Commercial Tax Rate (1%–29%) and Base Interest Rate.
Anti-stagnation Eminent Domain — 7-day inactivity triggers forced sell-back at 60% market value. Plots re-enter open auction immediately.
Status MVP prototype in development. Backend build is next.

Next Project

Di Kala Topi