Skip to main content
The live game

Not translated yet — showing English.

Showing Other Players

Nobody predicts other players — they are displayed. You receive their state at intervals and draw something in between. A mistake here costs a visible jerk rather than a life, which is why it carries its own declarations instead of sharing prediction's.

The display mode is declared

For entities that are not yours, the room declares how to fill the gap between the states that arrive: interpolate between the states you have, or extrapolate past the newest one. That is a declaration on the entity, so the answer is the same on every client and does not vary with whoever implemented the renderer.

Interpolation delay is declared too. Showing other players smoothly means showing them slightly late, by a declared amount. You tune that number for your genre.

Extrapolation stops instead of inventing

WHAT ARRIVES their state, at intervals WHAT YOU DRAW a smooth path through what arrived, held a little behind carried on stopped not invented
States arrive at intervals; you draw a smooth path between them, and when the next one doesn't come the motion stops

The extrapolation window is declared, and past it the entity stops being shown as moving rather than continuing on a guess. Extrapolating indefinitely puts a player on a target that was never there, and the player cannot tell it is happening — a visible freeze is the recoverable failure.

Why this is separate from predicting your own

The three prediction mechanisms have different authorities and different failure modes, and one word for all three means tuning one silently changes the other two.

MechanismRuns onWhen it is wrong
predicting your ownthe clienta correction, replayed and smoothed
showing other playersthe clienta visible jerk
lag compensationthe serversomebody dies unfairly

That split is also why an observer preset exists carrying this mechanism and nothing else: a spectator has no input of its own to predict, so prediction settings would configure something it does not do.