About

The name exinterp originates from a cvar (console variable) used in the Half-Life video game developed by Valve Corporation.  The ex_interp cvar was used to control how the client guessed (extrapolation and interpolation) values from a server and was shorted from the following two words;  extrapolation and interpolation.

extrapolation: calculation of the value of a function outside the range of known values.

interpolation: to estimate values of (a function) between two known values.  intransitive senses: to make insertions (as of estimated values)

You cannot be perfectly synced with the server at every instant in time because you only receive a finite amount of updates per second. For example:


This graphic depicts a linear interpolation of a circle. As the number of data points (updates) increases, the interpolated figure becomes more accurate. The servers view in this case would be a perfect circle. The client has to interpolate between two true packets.

This is where ex_interp comes in. A small increment of time exists in between each update that is left to half-lifes prediction engine. ex_interp sets the amount of time (in seconds) to interpolate in between each successive update. In the figure above, these small time intervals correspond to the straight edges of the figure. Because interpolation is done client side, it is not perfectly consistent with the servers view of the game.