How are timing in games usually achieved? By that I mean in more professional games, not the pong thingy everyone makes first. I used to do do a dummy loop and use timing functions to see when it's time for updating. This however eats CPU, though giving a reliable FPS. Lately I started using the WM_TIMER. This has several advantages, however it is incredibly inaccurate and unreliable (lesser priority than other messages I've heard). If you tell it to fire 40 times/second it actually only fires 30 times/second or so. How are timing best made?