Client-side prediction
From Wikipedia, the free encyclopedia
Client-side prediction is a networking technique used in many modern first-person shooters.
Client-side prediction refers to the process of having the client predict the results of user input before the server has acknowledged the input and updated the game state. So, instead of the client only sending control input to the server and waiting for an updated game state in return, the client also, in parallel with this, predicts the game state locally, and gives the user feedback without awaiting an updated game state from the server.
The earliest first-person shooter to use this technique was Duke Nukem 3D, released in January of 1996. Later that year, it was implemented in QuakeWorld, the popular add-on to Quake. While network play was included in the original Quake game, it was optimized mainly for LAN play. Having all had high-speed home connections (a rarity at the time), Quake's designers overlooked their assumptions of high bandwidth and low ping times that made playing online frustrating for dial-up users. After a series of experiments in a long private beta, id software released QuakeWorld with a new predictive model that proved popular with both high and low latency players.
This reduces latency problems, since there no longer will be a delay between input and feedback due to network ping times. However, it also introduces a desynchronization of the client and server game states, which needs to be handled to keep the game playable. Usually, the desync is corrected when the client receives the updated game state, but as instantaneous correction would lead to "snapping", there are usually some "smoothing" algorithms involved.
Another problem, that was highlighted when Half-Life modification Team Fortress Classic was modified to use client-side prediction, is that players with higher latency will introduce inconsistencies into the game, since they are more out of sync, and thus at times can, for example, see (and fire at, and damage) players who (from their view of the game) have already moved behind a wall. See also lagger.