Tick
In one line: one iteration of the runtime's loop — a single step of your simulation (a game frame). Each tick runs every system once, then advances.
The runtime drives a metronome: it fires a tick at a fixed rate (60 Hz by default) on a dedicated thread, runs your systems over the world, and repeats — the classic game/simulation loop, but with the transaction plumbing handled for you. ctx.DeltaTime is the seconds elapsed since the previous tick; multiply rates by it and your logic runs at the same speed regardless of tick rate.
The fixed cadence is a choice. For pure parallel computation (no real-time pacing) you run ticks as fast as the work completes — each tick is simply "one parallel pass" over your systems. Either way, a tick is the atomic unit of progress.
Within a tick, the runtime enforces a discipline you don't have to write:
- One Unit of Work per tick, flushed at tick end — so all of a tick's commits share one durability cycle.
- One transaction per system, created on its worker thread and committed by the scheduler. Each successive system gets a higher TSN, so a later system sees an earlier one's committed writes — visibility advances across systems within the tick.
- At tick end, the tick fence makes
SingleVersionwrites durable (≤ 1 tick loss) just before the UoW flushes.
💡 The side-transaction escape hatch. "One UoW per tick" is the default, not a cage: for a write that must be durable right now — a purchase, a trade — call
ctx.CreateSideTransaction(DurabilityMode.Immediate)to commit a transaction you own, independently of the tick. See Unit of Work and Durability.
How it relates
- Typhon runtime — drives the tick loop and its cadence.
- System — every system runs once per tick.
- Unit of Work — exactly one opened and flushed per tick.
- Tick fence — the durability boundary that closes each tick.
- Snapshot isolation — visibility advances system-to-system as TSNs increase within the tick.
- TickContext — the object each system's
Executereceives to touch the world this tick.
In the API
TickContext— what a system'sExecutereceives (DeltaTime,TickNumber,Transaction,Accessor,Entities,CreateSideTransaction).TyphonRuntime—Start/Shutdown/CurrentTickNumber;RuntimeOptions.BaseTickRatesets the cadence.
Learn & use
- Narrative: Guide ch.5 — systems & the tick loop
- Feature detail: tick lifecycle · tick execution engine · side transactions