What happens if the ring buffer doesn't have a snapshot for the timestamp on the packet?
If a packet arrives claiming a timestamp older than the buffer's oldest snapshot — or if there's clock drift between client and server — the server either rejects the shot as invalid, treats it as a present-time hit test, or uses the oldest available snapshot. Clients with broken clocks or extreme packet delay can have their shots invalidated, which is a safeguard against cheating and connection abuse.
Answered in
Time-Travel Fairness: How Servers Rewind for Lag CompensationWhy lag compensation rewinds the game world to when a shot was fired, and why victims experience the cost.
Read the full analysisOther questions this article answers
- Why does lag compensation exist at all? Can't players just aim for where the enemy is now?
- How does the server know what time the client fired the shot at?
- What happens to the player who gets shot from behind cover? Is that not unfair to them?
- How far back can the server rewind? Can it go back 500ms or 1 second?
More system design questions
- Why doesn't Google just run Dijkstra faster?
- What is a shortcut edge and when is it precomputed?
- How much space do shortcut edges take compared to the original graph?
- Can Contraction Hierarchies handle dynamic graphs like traffic or road closure?
- Why contract low-degree nodes first instead of high-degree ones?
- What is a CRDT and why does it matter for real-time collaboration?
- How do CRDTs handle concurrent edits without a central server referee?
- Why did Figma move from operational transforms to CRDTs?
Every answer on Crashtech is written by the editor of the article it comes from — never auto-summarised. Browse all answers or the System Design beat.