Jump to content

Client-side prediction

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Elonka (talk | contribs) at 22:08, 17 September 2006 (tagging as uncategorized using AWB). 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 technique was pioneered in the QuakeWorld add-on to the highly popular first-person shooter Quake. While network play was included in the original game, it was optimized 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 unnoticable, client side prediction will not serve a purpose anymore.