Hey Casey,
Thanks for your response!
The reason for this is that I fin...er a constant update each frame.
I find this interesting, since variable-step is the only solution that actually sims the game world up to the current frame boundary (when VSYNC is on). The only source of jitter I can see in this case, is if the update->display
latency is changing. But I don't think fixed-steps address this (in fact, is probably adds variance since may be doing a variable number of simulations)? (Somewhat aside as its not directly related to update time-steps, but how
can we control this latency? For example with 60Hz display, our game update may complete in 10ms, but how can we know whether or not our submitted render commands to the driver will make their way to the GPU, be processed, and rendered into the back buffer before the next buffer swap? We really only control the first part, and a change in 10ms -> 11ms could cause latency to increase by 1/60s).
With fixed-step, in order to render a representation of the game world at some time, we will have to either interpolate or extrapolate results from our sims. I've never tried this myself, but I can imagine visual artifacts when this is done with relatively fast moving objects undergoing non-constant acceleration. Or, going the route of Mr. Blow, do tiny non-gameplay sims to fill the time gap and "catch-up" - but then throw those simulations away.
Perhaps I'll have to wait until we do a round-trip to the platform layer, but how do we plan to deal with the "self-propagating-frame-miss" problem if we go fixed-step? I.e. If we have VSYNC on, and miss a frame, then we potentially have to do 2 simulations after the next VSYNC. But having to do 2 simulations takes x2 time to compute then 1 sim, and so we miss the next frame, ect.
-Zach