Claypool

Courses

Publications

Students

Projects

Service

Downloads

Misc


A Taxonomy of Peer-Reviewed Latency Compensation Papers

Latency Compensation Taxonomy

SpeculativeExecutionLatency CompensationWorldAdjustmentControlAssistanceTimeWarp Latency ConcealmentPredictionSelf-PredictionOtherPredictionInterpolationExtrapolationTimeDelayIncomingDelayFeedbackLatencyExposureTimeManipulationAttributeScalingClientEitherServerOutgoingDelay

[Home]


Time Warp

Time Warp rolls back the game state to when the player action occurred on the client, applies the action, then rolls the game state forward to the current time.

The below figure~ depicts an example of time warp. The figure shows the game world for a shooter game on a Client and the Server, with time advancing from top to bottom. The player on the client is shooting at a green avatar that is moving right to left, with the "plus" sign in the middle representing a weapon reticle. At time t0 at the client, the green avatar is to the right of the reticle, moving into the reticle at time t1 where the player pulls the trigger, and that action is sent to the server arriving just after time t2. Meanwhile, on the server, the green avatar moves past the reticle at time t1 and has continued right at time t2$. When the action arrives at the server, the server "warps" time back to when the action occurred at the client at time t1, applying the action to the world representation at that time.

However, resolving an event in the past and rolling it forward may cause already rendered client game states to be inconsistent with the new game state. This is a well-known artifact of some shooting games, and can result in "shot around the corner" as it's known by players, shown in the figure below. At time t1, at the blue avatar's client, the green avatar is in sight and the blue player fires. However, by time t2 when the server receives the update, the green avatar has reached a safe position around the corner from the blue player and cannot be targeted. However, with time warp, the server, upon receiving the blue player's action at time t2, rolls back time to the green avatar's position at time t1 and applies the action. This hits the green avatar. Rolling the game world forward to the present time, with the green avatar hurt or killed, may feel like being "shot around the corner" for the green player.

Time warp is often called, somewhat confusingly, latency compensation or lag compensation in some papers and, more often, in online blogs and player posts. It is also sometimes simply called rollback. Also somewhat confusing, some image warping techniques are called time warp whereas we classify them as latency concealment.

Peer-reviewed Papers

  1. David Jefferson, 1985. Virtual Time

  2. Martin Mauve, 2000. How to Keep a Dead Man from Shooting

  3. Martin Mauve, 2000. Consistency in Replicated Continuous Interactive Media

  4. Martin Mauve, Jurgen Vogel, Volker Hilt and Wolfgang Effelsberg, 2004. Local-Lag and Timewarp: Providing Consistency for Replicated Continuous Applications

  5. Xinbo Jiang, Farzad Safaei and Paul Boustead, 2006. Latency and Scalability: A Survey of Issues and Techniques for Supporting Networked Games

  6. Dingliang Liang and Paul Boustead, 2006. Using Local Lag and Timewarp to Improve Performance for Real Life Multi-Player Online Games

  7. Wai-Kiu Lee and Rocky Chang, 2015. Evaluation of Lag-Related Configurations in First-Person Shooter Games

  8. Steven Lee and Rocky Chang, 2017. On Shot Around a Corner in First-Person Shooter Games

  9. Steven Lee and Rocky Chang, 2018. Enhancing the Experience of Multiplayer Shooter Games via Advanced Lag Compensation

  10. Jiawei Sun and Mark Claypool, 2019. Evaluating Streaming and Latency Compensation in a Cloud-based Game

Commercial

  1. Yahn Bernier, 2001. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization

  2. Tony Cannon, 2012. Fight the Lag! The Trick Behind GGPO's Low-latency Netcode

  3. Tim Ford and Philip Orwig, 2016. Developer Update - Let's Talk Netcode

  4. Neema Teymory, 2016. Why Making Multiplayer Games is Hard: Lag Compensating Weapons in MechWarrior Online

  5. Valve Developer Community, 2017. Source Multiplayer Networking

  6. Michael Stallone, 2018. 8 Frames in 16ms: Rollback Networking in 'Mortal Kombat' and 'Injustice 2'

  7. Peter Andreasen, 2018. Deep Dive into Networking for Unity's FPS Sample Game

  8. Ricky Pusch, 2019. Explaining How Fighting Games Use Delay-Based and Rollback Netcode

  9. David Straily and Dave Heironymus, 2020. Netcode and 128-Servers // Dev Diaries - Valorant

  10. Brent Randall, 2020. Valorant's 128-Tick Servers


Reference

Shengmei Liu, Xiaokun Xu and Mark Claypool. A Survey and Taxonomy of Latency Compensation Techniques for Network Computer Games, ACM Computing Surveys, Article 243, Volume 54, Issue 11S, DOI https://doi.org/10.1145/3519023, September 9, 2022. Online at: http://www.cs.wpi.edu/~claypool/papers/lag-taxonomy/


Copyright 2022 Mark Claypool (claypool@cs.wpi.edu) and WPI. All rights reserved.