Entity interpolation
Show other players smoothly between network updates.
Servers send positions maybe 10 to 30 times a second, and packets arrive unevenly. Drawing each update as it lands makes other players stutter and teleport. Interpolation renders them a little in the past, smoothly moving between the two snapshots around that time.
Try this: Move on the left. The right shows what a friend sees from 10 updates a second: you teleport between dots. Turn interpolation on and you glide, about 0.1 s behind.
Snapping: updates arrive 10 times a second, so your friend sees you teleport.
Prompt bit
Works for 2D or 3D in any engine (Unity, Unreal, Godot, web). Paste the short one for a quick fix, or the detailed one when you want it done properly.
Interpolate remote entities: buffer timestamped server snapshots, render them about 0.1 s in the past (two update intervals), lerp position and slerp rotation between the two snapshots around that time, and hold the last pose briefly instead of extrapolating far when packets stop.
Add snapshot interpolation for remote entities (2D or 3D, any networking library: Netcode for GameObjects, Mirror, Fish-Net, Godot MultiplayerSynchronizer, Colyseus). For each remote entity keep a buffer of snapshots with server timestamps. Compute renderTime = estimated server time - interpolationDelay, where the delay is about two send intervals plus jitter (default 100 ms at 20 Hz). Find the two snapshots around renderTime and lerp position, slerp rotation, and blend animation parameters. If renderTime is past the newest snapshot (packet loss), extrapolate for at most about 0.25 s, then hold. Adapt the delay to measured jitter. Do not interpolate your own player (use prediction for that) or teleports (mark them and snap). Drop old snapshots.
Where it's used
- Online shooters: other players and projectiles
- Co-op games: teammates and enemies
- MMOs: crowds of remote characters
- Racing games: opponent cars
- Any networked game: smoothing server state
Common mistakes
Rendering snapshots as they arrive (stutter), interpolating toward the newest snapshot so movement lags and rubber-bands, no buffer for jitter, extrapolating forever after packet loss, and interpolating teleports across the map.
Writing this with an AI assistant? See our best AI coding assistants for game developers.
Missing a concept? Request one.



