Jump to content

Client-side prediction

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Awesoken (talk | contribs) at 06:54, 28 October 2006 (fixed historical inaccuracy). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 desynch 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 may have an unfair advantage over lower latency players, since they are more out of synch, and thus at times can, for example, see (and fire at, and damage) players who have already moved out of the way. See also lagger.

As technology evolves, network latencies are getting lower. When/If latencies get so low as to be unnoticeable, client side prediction will not serve a purpose anymore.