for a full fixed timestep algo you need two parts:
update:
accumulator += ET
while (accumulator >= DT)
{
// do one update
accumulator -= DT
}
you have to store both current and previous location for objects. IE where they are now, and where they were before the last update.
render:
draw_location = lerp of accumulator from 0 to DT, mapped to the range old through new position.
so whatever % from 0 to DT the accumulator is (say 17% of the way), that's how far you draw the object between the previous and current locations (17% of the distance). so in essence, you're always drawing about half an update (on average) behind where things really are. but given a DT of 100ms or less, this "temporal aliasing" is negligible.
there is another alternative - a framerate limiter. instead of running render as fast as possible and updating every DT seconds, and storing both current and previous locations, and tweening between previous and current location for drawing, you just add this to the end of the main game loop:
while (elapsedtime for this iteration of the main loop < desired_frametime) { // do nothing }.
say you want to run at 60 fps. set your desired frame time to 16.6666 ms.
pros: easier to implement. degrades gracefully under heavy load.
cons: can't run quite as fast as fix your timestep algo. these days the differences in speed are really negligible though. you only need a solid 15 fps to be sufficiently responsive to be playable. once you hit 30 or so, your animation is smooth and your responsiveness is quite snappy. anything more is just smoother animation eye candy. turns out that lower framerates (within reason) aren't bad, variable frames rates are bad.