The suggestion mode: the game's own decider, run on the live state, with the result shown
to the player instead of dispatched. The framework runs decisions as data by design
(AIModule.decide returns an AIDecision; the game applies it), so suggesting is the
same call pointed at a UI instead of at the world - but a hint that recomputed on every
frame would tax the frame budget for something the player reads once, so this owns the
throttle: a frame-count budget, never wall clock, the same rule the rest of the runner
follows (a throttled background tab must not change what is suggested).
The decider must not mutate game state to compute a suggestion; what the player does with
one (accept, ignore, watch) is the game's to decide.
Recompute only every Nth update call, keeping the previous suggestion in between.
1 (the default) recomputes on every update; 30 recomputes about twice a second at
60 fps. The first update always recomputes, so a hint appears immediately.
The suggestion mode: the game's own decider, run on the live state, with the result shown to the player instead of dispatched. The framework runs decisions as data by design (
AIModule.decidereturns anAIDecision; the game applies it), so suggesting is the same call pointed at a UI instead of at the world - but a hint that recomputed on every frame would tax the frame budget for something the player reads once, so this owns the throttle: a frame-count budget, never wall clock, the same rule the rest of the runner follows (a throttled background tab must not change what is suggested).The decider must not mutate game state to compute a suggestion; what the player does with one (accept, ignore, watch) is the game's to decide.