When I built a game engine, the most important thing I learned was to use the same dt every time for the physics. So, your physics update might run multiple times within a single game loop iteration and you need interpolation to deal with any leftover time. Glenn taught me this: