Simulation tick
How a simulation divides its work into steps, and how the speed setting maps to them.
On this page
A simulation tick is one step of a game’s world model. SimCity spreads its work over a 16-step cycle: one step advances the clock, eight scan the map in strips, one takes the census and tax, one decays traffic and sends messages, and the last five rebuild the overlay maps and roll for disasters1. Speed sets how many of the interface’s calls run a step2.
Games
| Game | Year | How | Note |
|---|---|---|---|
| SimCity | 1989 | a 16-step cycle: one step for the clock and demand, eight for the map, one for census and tax, one for traffic decay, and five for the overlay maps and disasters |
Every claim about this mechanic, by game (4)
References
- ^ abThe simulation runs as a 16-step cycle, one phase per step (
Fcycle & 15). Phase 0 advances the city clock and, every second cycle, recomputes the demand valves; phases 1 to 8 each process one eighth of the 120 map columns; phase 9 takes the census every 4 clock ticks and collects tax every 48; phase 10 decays traffic; phases 11 to 14 rebuild the power, pollution and land value, crime, and population density maps; phase 15 rebuilds fire coverage and rolls for disasters.CodeMicropolis (SimHacker/micropolis)How we know
108 Simulate(Fcycle & 15);micropolis-activity/src/sim/s_sim.c line 108 at c98f6b0 · upstream ↗ 134 if (!(Scycle & 1)) SetValves();micropolis-activity/src/sim/s_sim.c lines 126–138 at c98f6b0 · upstream ↗ 165 if (!(CityTime % TAXFREQ)) {micropolis-activity/src/sim/s_sim.c lines 158–172 at c98f6b0 · upstream ↗ 200 DoDisasters();micropolis-activity/src/sim/s_sim.c lines 182–201 at c98f6b0 · upstream ↗ 156#define SimWidth 120micropolis-activity/src/sim/headers/sim.h lines 156–157 at c98f6b0 · upstream ↗ 223#define TAXFREQ 48micropolis-activity/src/sim/headers/sim.h lines 222–223 at c98f6b0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^ ab
SimFrameruns one step of the simulation on every call at speed 3, on every third call at speed 2, and on every fifth call at speed 1; at speed 0 (paused) it runs none.CodeMicropolis (SimHacker/micropolis)How we know
100 if (SimSpeed == 1 && Spdcycle % 5)micropolis-activity/src/sim/s_sim.c lines 94–108 at c98f6b0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^The map rebuilds in phases 11 to 15 skip cycles at higher speeds. At speed 1, power and pollution run every second cycle and crime, population density, and fire coverage every cycle; at speed 2, every 4th, 7th, 8th, 9th, and 10th cycle; at speed 3, every 5th, 17th, 18th, 19th, and 20th. The disaster roll in phase 15 runs every cycle.CodeMicropolis (SimHacker/micropolis)
How we know
116 static short SpdPtl[4] = { 1, 2, 7, 17 };micropolis-activity/src/sim/s_sim.c lines 115–123 at c98f6b0 · upstream ↗ 199 if (!(Scycle % SpdFir[x])) FireAnalysis();micropolis-activity/src/sim/s_sim.c lines 182–201 at c98f6b0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^The city clock advances once per 16-step cycle, and the date shown divides it by 4 for the month and by 48 for the year, so a month is 64 steps.CodeMicropolis (SimHacker/micropolis)
How we know
132 CityTime++;micropolis-activity/src/sim/s_sim.c lines 126–132 at c98f6b0 · upstream ↗ 711 int month = (CityTime / 4) % 12;micropolis-activity/src/sim/w_graph.c lines 710–711 at c98f6b0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
Sources
Code
- Wright, Will, Don Hopkins, and Electronic Arts. 2026. “Micropolis: the GPL release of the SimCity engine (SimHacker/micropolis).” Commit c98f6b0. SimHacker/micropolis @ c98f6b0 · licence, all uses