World state advances on a regular clock independent of player input; player decisions are responses to the advancing simulation rather than real-time reactions.
The world advances on a fixed clock; every tick all cells update at once (Conway's Life).
The world advances on a clock, not on input. A timer fires, all simulation state updates at once, and the player's moves queue for the next tick — they respond to the sim, not the frame.
The heartbeat. Each timeout is one tick; all production, growth, and AI decisions resolve together on that beat, decoupled from frame rate.
$Tick.wait_time = 0.5
$Tick.timeout.connect(advance_sim)A sim manager updates every system in a fixed order per tick — resources, then units, then AI — so the world state is consistent at each step.
func advance_sim():
update_resources()
update_production()
run_ai()
ticked.emit()Emit ticked so the UI redraws once per beat and queued player actions apply on the next tick rather than mid-update.
signal ticked
# player input collected, applied at start of next tickIn short: Timer node fires on_tick(); all simulation state (resources, unit production, AI decisions) updated per tick; player input queues for next tick
13 catalogued game(s) use this mechanic, spanning 1989–1999.
▶ Explore Simulation Tick interactively — see every game + the Godot system