I'm developing a game using fixed time step, and so far I haven't been using XNA's GameTime class in my code. What uses does the class have, and should I definitely use it in my game, or can I ignore it?
You can ignore it if you want. Just be aware that XNA on Xbox and PC defaults to a fixed time-step of 60FPS, but Windows Phone defaults to 30FPS. By using
It can also make your code clearer if you work in seconds or milliseconds (but please not both!). For example you might be specifying that an action lasts "30 frames", but it might be clearer to specify it as "0.5 seconds".
Just be aware that only
If you ever disable the fixed frame rate, then using
One very good reason you might want to disable it - at least during development - is for profiling. Possibly using a profiler (like the guy in this recent question) so that profiling time isn't spent waiting for the next frame. But also just to do simple frame-rate comparison profiling: maybe you get 100FPS normally and make some change - you get 90FPS afterwards, so it was a bad change. This is not possible if your frame rate is capped at 60FPS.
XNA (in fixed time mode) will try to call you 60 times per second, but that doesn't mean that the calls are always 1/60th of a second apart. GameTime will tell you how much time has elapsed since the last call, and you should use that to feed into any time-sensitive calculations.