I think the author made a tiny error: `while( GetTickCount() > next_game_tick && loops < MAX_FRAMESKIP)` should be `while( GetTickCount() < next_game_tick && loops < MAX_FRAMESKIP)` That is: as long as it is not yet time to draw our next frame and while we have not skipped as much frames as MAX_FRAMESKIP we should wait. The author also makes another common error > with whatever is left render the game as many times as possible. Instead of trying to render as many times as possible in the time between the update logic and the time till next frame you should only draw once and then just wait. Its useless to let the GPU do extra work and even risk having drawing take to long so that you have to catch up next frame since when nothing is updated, everything stays the same so you are drawing exactly the same thing multiple times. Unfortunately this error is a very common one (even the creators of the XNA framework did this wrong in the first iteration).