Delta timing
Delta time or delta timing is a concept used amongst programmers in relation to hardware and network responsiveness.[1] In graphics programming, the term is usually used for variably updating scenery based on the elapsed time since the game last updated,[2] (i.e. the previous "frame") which will vary depending on the speed of the computer, and how much work needs to be done in the program at any given time. This also allows graphics to be calculated separately if graphics are being multi-threaded.
In network programming, due to the unpredictable nature of internet connections, Delta Timing is used in a similar way to variably update the movement information received via the computer network, regardless of how long it took to receive the next data packet of movement information.[3]
It is done by calling a timer every frame per second that holds the time between now and last call in milliseconds.[1] Thereafter the resulting number (Delta Time) is used to calculate how far, for instance, a video game character would have travelled during that time. The result is, the character will take the same amount of real world time to move across the screen regardless of the rate of update, whether the delay be caused by lack of processing power, or a slow internet connection.
In graphics programming, this avoids the gameplay slowing down or speeding up depending on the complexity of what is happening at any given time, which would make for an inconsistent, jarring experience (e.g. time slowing down the more characters walk onto the screen, or running too fast because only one character is on screen). In network programming, this keeps the game world of each computer in sync with the others, by making sure each client eventually sees the same activity at the same time, even if more time has passed since the last update for some clients than others.
Big enough delays will eventually negatively affect the gameplay experience, but using Delta Time keeps the gameplay consistent so long as the computer and internet connection meet the minimum hardware requirements of the game.
Delta timing is also used in motorsport. The use of delta timing in motorsport allows drivers to see how much time they've gained or lost.
See also
References
- https://www.scirra.com/tutorials/67/delta-time-and-framerate-independence
- https://viget.com/extend/time-based-animation
- Cook, Shane (2012-12-28). CUDA Programming: A Developer's Guide to Parallel Computing with GPUs. Newnes. ISBN 978-0-12-415988-4.