Tick Engine and PER Cycle
Tick Engine and PER Cycle
The combat clock is a global discrete tick, not real time. Player-paced: the world advances only when the player commits an action or explicitly waits. "Whenever it's time for the user to enter something, everything stops."
Granularity
- Ticks are deliberately tiny: roughly 10 ticks per foot on even terrain. Integer tick durations everywhere.
- Fine granularity minimizes same-tick ties between actors (though ties still happen - see Resolution).
The PER Cycle
Every action - attacks, spells, movement, cancels, reactions - is modeled identically:
| Phase | Meaning |
|---|---|
| Prep | Wind-up: gathering reagents, mental focus, shifting grip. The action has not started. This is the readable, interruptible window - only intelligent/experienced observers can read prep as an intention. |
| Exec | The action is active: casting, swinging. You can't do anything else. May include zone windows (e.g. a whirlwind that slices anyone entering range). The action can be mitigated here, but it cannot be cancelled. |
| Recover | The action is done; the actor is winding down - regaining footing, recovering balance. Nothing can affect the completed action at this point, but enemies can take advantage of the window while the actor is not fully recovered. |
- Zero phases allowed: a fighter feat can zero prep/recover on light attacks to enable combos. Readability and anti-spam live in the prep window, not recover.
- One action state machine: every entity in the sim runs the same Action state machine - PREP, then EXEC, then RECOVER. Attacks, spells, movement, cancels, and reactions are all instances of one Action type; they differ only in parameters (phase durations, exec windows, completion effects), never in code path. A cancel or a reaction is itself an action with its own PER cycle, so the same rules compose.
Movement is an action
Movement uses the same PER model; terrain is paid at the borders (see Movement and Terrain).
No comments to display
No comments to display