Quote Originally Posted by WILL
Though I completely agree with that point of view. There is a single obstacle when you are enabling vsync. If you're game's main run cycle is frame based then you will be restricted to 60 game cycles. (or whatever else your monitor runs at)
Well, technically restricted by whatever refresh rate the user has it set to - which could be anywhere from 43hz to 120hz. (though I doubt anyone actually still runs 43hz interlaced...)

It's a bad timer to use because you have no idea what the users refresh rate is - and should your render time take LONGER than the refresh rate, your game will slow down not 'keeping up' with realtime.

Which is why most games scale their movement and responses to a system timer (WM_Timer good as always) independant of the rendering engine. You render where it is at the start of the rendering process - you don't update where it is at the same time, you use a separate timer event for that... therin if the frame rate drops because the scene is too complex, the game keeps going at the same speed

That and the fact you could make the physics/movement a separate thread, making better use of all these modern multi-core processors.