Zone residential, commercial, and industrial districts. Balance budget, bonds, ordinances, disasters, and regional growth. Includes scenarios, achievements, multiple save slots, and drive/fly camera modes.
Metropolis 2K is engineer-built, and the city is driven by a single monthly simulation tick rather than scripted growth. Each tick recomputes the utility networks, the pollution / crime / land-value heat maps, and the weather, then tallies your population and jobs, recalculates R/C/I demand, grows or abandons zones, rolls for disasters, and finally settles the budget. Every formula below is taken directly from the simulation source.
Order matters: networks and heat maps are refreshed first so demand and land value react to this month's conditions, not last month's. The engine then sums residential population and commercial/industrial jobs per tier — light vs dense zones, and industrial split into dirty, manufacturing, and hi-tech — because taxes and demand are computed per tier, not in aggregate.
Demand for each zone type is a linear balance of supply, jobs, taxes, and desirability, then clamped to ±300:
7% is the neutral tax rate: below it, demand rises and growth shifts toward that tier; above it, demand falls. Pollution drag is −0.6 × average pollution, crime drag −0.5 × average crime, and land-value lift 0.5 × (average land value − 35). Ordinance and civic-building bonuses (pro-business, tourism, stadiums, seaports) are added after the clamp.
Monthly tax income is computed per tier, using that tier's population or job subtotal, its own tax-rate slider, and a fixed category weight, all scaled by a City Hall bonus:
income = Σ(tier subtotal × tier rate) ÷ 100 × category weight × cityHallMult
| Category | Weight | Tiers taxed separately |
|---|---|---|
| Residential | 4 | light, dense |
| Commercial | 5 | light, dense |
| Industrial | 6 | dirty, manufacturing, hi-tech |
A City Hall reward building grants a +5% intake bonus (and −5% on expenses). Net cash for the month is simply income minus all service, ordinance, and bond expenses.
Bonds are deliberately punishing: each is a fixed $10,000 borrowed instantly, at 7% APR, capped at five outstanding. The model is interest-only — every month you pay bonds × $10,000 × 0.07 ÷ 12 in interest, and the principal never amortizes on its own. You clear a bond only by manually retiring it, which pays the full $10,000 back out of the treasury. This makes bonds genuine emergency cash rather than free money.
Both utilities are modeled as supply-versus-demand with a partial-shortage response. Power demand is summed from zones (scaled by density, economy, and heat) plus services and regional trade. When demand exceeds supply, the shortfall fraction — 1 − supply/demand — of the higher-numbered zones is flagged as a brownout. Water works identically: pumps produce supply, zones and exports consume it, and an unmet fraction of zone tiles loses water. This is a stylized shortfall model, not a per-tile electrical or hydraulic network solve.
These are spatial heat maps rebuilt each tick: point sources are painted radially, then diffused across neighbors (a blur pass), then clipped to 0–100. Coal plants and industry emit pollution (scaled by tier and cut by Clean Air / recycling ordinances); parks and trees scrub it. Crime rises with residential and commercial density but falls with local education and police coverage. Land value builds from terrain, waterfront, and amenities, then is docked by pollution (×0.5), crime (×0.45), and noise, and lifted by education. The map-wide averages of all three feed straight back into next month's demand — the coupling that makes neglected cities spiral.
Sign in with GitHub to share strategies, ask questions, or report a bug.