logo
Published on

How I Balanced a City Builder with Run Exports

Authors
  • avatar
    Name
    Alberto Montalesi
    Twitter
This article was written with the assistance of AI.

You don't play a mayor in ARCOLOGY. You play a district operator. Buildings generate credits, population, and data; infrastructure coverage throttles how much they actually produce; and three rival factions slowly push their meters around whether you like it or not. The long-term goal is to grow the district all the way up to the Arcology itself, a city-within-a-city megastructure that ends the campaign and unlocks endless play. It's a browser-based cyberpunk city builder made with Three.js, no download and no install.

ARCOLOGY gameplay at night, with neon buildings, traffic, and weather

Balancing the economy with exported run telemetry

The single technique I'm proudest of in ARCOLOGY has nothing to do with graphics: I balanced the game's economy by exporting every run as JSON and tuning against the data, instead of guessing.

The export records credits earned, faction meters over time, pressure spikes, and the point where a run collapsed. My balancing loop was simple: play a short run, export it, find the point where a faction meter ran away or the economy stalled, change a constant, then play again. It was not a replacement for playtesting. It gave me a way to check whether a frustrating run was a genuine balance problem or just one bad decision.

What is in the game

There's more content here than "browser game" usually implies.

SystemDetail
Structures38, across four tiers: power/network infrastructure, residential, commercial, decorative
Infrastructure simulationPower, workforce, and bandwidth coverage; placement actually matters
Factions3 (Corpos, Citizens, Syndicate), each can win or destroy your run if their meter hits 0 or 100
Story cards35
Timed city events12
Disaster types3 (fire, earthquake, flood)
PersistenceAutosave plus JSON import/export

Under the surface, ARCOLOGY is a small economy simulation wrapped in a card game, built around three pressures that constantly pull against each other:

  • Exploit vs sustain: a profitable city still collapses if your citizens or factions spiral.
  • Spend vs earn: land, roads, upgrades, and infrastructure all compete for the same cash.
  • React vs plan: city events, disasters, and story cards keep interrupting whatever tidy build order you had in mind.
ARCOLOGY district during the dayARCOLOGY district at dusk

Every building you place is a small procedural Three.js mesh, and the preview art in the game's manual is rendered from those same in-game models, so the catalog always matches what you actually see on the map.

Shanty buildingNightclub buildingMega Corp Tower buildingThe Arcology megastructure

The stack, and where AI actually helped

The stack is deliberately lightweight: Three.js for rendering, procedural building meshes, lighting, traffic, and weather; Vite + TypeScript for the dev server, build, and strict typing; vanilla ES modules with a small event bus instead of a runtime framework; Vitest for logic regression tests; Biome for formatting and linting. There is no backend. The entire simulation runs client-side, so it starts quickly and works offline once loaded, like Battle Tanks.

I used AI coding tools for Three.js scaffolding, procedural mesh builders, and parts of the simulation. The three competing pressures, faction conditions, and balance decisions came from repeated playtests and the run exports. AI made the scope manageable; it did not make the game fun by itself.

No download or install is required. Play ARCOLOGY or play it on itch.io. Reaching the Arcology megastructure ends the campaign; endless mode continues after that.

Did you find this useful?

0 readers found this helpful