Timing In Games
Question submitted by (02 September 1999)

Return to The Archives
  How can i make an in-game animations framerate-independent?  

  Let's take a really simple example of a moving box in a situation where your frame rate might fluctuate between 10 and 30 FPS.

If you simply move the box 7 units forward each frame, it will be tied to the frame rate (moving faster with higher frame rates.) No magic needed here, the solution to this is quite simple.

Rather than specifying your movement in units, specify it in units per second. Consider a situation running at 30Hz. You time each of the frames, and you end up with 0.0333 seconds per frame. You simply multiply this number by the number of units to move per second (in this case, 7) and you end up with the proper number of units to move (0.2333 units.)

Be sure to time each frame, so you know exactly how much time has gone by. This allows you to maintain the time-based animations during highly fluctuating frame rates.

Response provided by Paul Nettle

This article was originally an entry in flipCode's Fountain of Knowledge, an open Question and Answer column that no longer exists.


Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.