I'm kind of glad to see someone else has come up with the exact same solution I have for my game engine's time step.

Daniel Borgman: Fixed Time Step With Interpolation

To quickly sum up how you would do fixed time step with interpolation:

- You determine how many times you want your logic to run per second.
- Use an accumulator (time bank) to save how much time has passed.
- Run your logic when you have enough time saved up to make a withdraw.
- Keep running the logic over and over until you can't make a withdraw anymore.
- Run your rendering code every time you get a chance but pass in a delta of the time elapsed since you last ran your logic code, and interpolate your graphics with the delta.

The downside with fixed time step & interpolation is that your graphics are always going to be delayed, but all of your animations will be as smooth as the fps.

You can decide to only render after a set of updates has happened, but this will result in a more 'choppy' fps.

Another article that goes into more detail about fixed time steps: