Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.


Game Timer

This topic is 6853 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Im Working on a 2D "DeathMatch" Game (My Teachers From School is the characters ) and i want to insert a timer to my game that when the game run on slow computer the game will speed himself up and when its run on fast computer the game will slow himself plz help me , where to begin and how to do it. Thanks a lot roy

Share this post

Link to post
Share on other sites
Perhaps this is a programming issue, but anyway

You can calculate the time the computer needed to draw a frame and scale the movement of objects by that value, ex.

If the computer took 2 seconds to draw a frame, your player is moved 2 units forward,
if it took only 1/2 second, your player is moved 0.5 units.

You can use GetTickCount() which returns the number of milliseconds (1/1000th seconds) passed since the computer was turned on. Most games use a timer running at 100 up to 200 Hz (ticks per second). Here''s how to do it:

long LastTickCount, Ticks;

// my main loop
LastTickCount = GetTickCount();
while(game_runs) {
  Ticks = (GetTickCount() - LastTickCount) / 10;
  LastTickCount += Ticks * 10;
  if(Ticks > 100) { // Limit lag to 1 second
    Ticks = 100;
    // If we were Quake1 display a little turle
  while(Ticks) {
    // Movement code here

There''s one line you may find strange:
LastTickCount += Ticks * 10;
Why not just set it GetTickCount() ? Well, this is a simple way to correct rounding errors, the time rounded away is automatically kept for the next frame. Without this is would run a littlebit faster on fast machines

There''s also another way of doing it, calculate a delta value (just GetTickCount() - LastTickCount) and multiply any movements by this (nearer at the example explained above).
This requires less execution time, but will cause problems on some things (ex. collision detection).

A last word on GetTickCount(), this is not the best function to use, because it can go slower and then get jumpy to balance it out. Search in the VC help for HighPerformanceCounter, that''s what games should use


Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!