Module ggez::timer

source ·
Expand description

Timing and measurement functions.

ggez does not try to do any framerate limitation by default. If you want to run at anything other than full-bore max speed all the time, call thread::yield_now() (or timer::yield_now() which does the same thing) to yield to the OS so it has a chance to breathe before continuing with your game. This should prevent it from using 100% CPU as much unless it really needs to. Enabling vsync by setting conf.window_setup.vsync in your Conf object is generally the best way to cap your displayed framerate.

For a more detailed tutorial in how to handle frame timings in games, see


  • A structure that contains our time-tracking state.


  • average_deltaDeprecated
    Gets the average time of a frame, averaged over the last 200 frames.
  • Check whether or not the desired amount of time has elapsed since the last frame.
  • deltaDeprecated
    Get the time between the start of the last frame and the current one; in other words, the length of the last frame.
  • fpsDeprecated
    Gets the FPS of the game, averaged over the last 200 frames.
  • Returns the fractional amount of a frame not consumed by check_update_time(). For example, if the desired update frame time is 40 ms (25 fps), and 45 ms have passed since the last frame, check_update_time() will return true and remaining_update_time() will return 5 ms – the amount of time “overflowing” from one frame to the next.
  • Pauses the current thread for the target duration. Just calls std::thread::sleep() so it’s as accurate as that is (which is usually not very).
  • ticksDeprecated
    Gets the number of times the game has gone through its event loop.
  • Returns the time since the game was initialized, as reported by the system clock.
  • Yields the current timeslice to the OS.