moves / game dev / delta time movement

Frame-rate independent movement

Speeds should be per second, not per frame. Moving 4 px every frame means a 144 Hz player moves 2.4× faster than a 60 Hz one. Multiply by the elapsed time (delta time) instead. Good enough for simple games; use a fixed timestep when collisions or physics must be consistent.

#delta-time#movement#game-loop
ts
const SPEED = 240; // pixels per SECOND
let last = performance.now();

function frame(now: number) {
  const dt = Math.min((now - last) / 1000, 0.1); // seconds, clamped
  last = now;

  player.x += player.dirX * SPEED * dt;
  player.y += player.dirY * SPEED * dt;

  render();
  requestAnimationFrame(frame);
}

requestAnimationFrame(frame);

Related

WWADD — Moves. Stacks. Judgment calls.

FREE REFERENCE · NO LOGIN · NO TRACKING