Rollback Netcode

Rollback netcode is a synchronisation technique where each client immediately simulates the result of all inputs — including guesses about what other players are doing — and rolls back and resimulates when those guesses turn out to be wrong.

It was developed for fighting games, where the 1v1 structure makes it tractable, and where input lag is so noticeable that any added delay is unacceptable. It has since influenced netcode design across genres, though its constraints make it unsuitable for many multiplayer games.

The problem it solves

Traditional delay-based netcode adds artificial input delay so that both players receive each other’s inputs before simulating a frame. On a 100ms connection, you might wait 3–5 frames before your input is processed. This keeps both clients in sync but makes the game feel sluggish — every action is delayed regardless of what you do.

Rollback takes the opposite approach: simulate immediately, correct later.

How rollback works

Each frame, the client executes its own inputs immediately. For inputs it has not yet received from other players, it makes a prediction — usually that the other player is repeating their last known input. The simulation runs ahead with this prediction.

When the actual input from the other player arrives, the client compares it against the prediction. If they match, nothing needs to change. If they differ, the client rolls back to the last confirmed state, replays all inputs with the correct data, and produces the corrected present state — all within a single frame.

The result: your own inputs feel instant, because they are. Other players occasionally snap or briefly flicker when a prediction was wrong and a rollback occurs. On a good connection with low variance inputs, these corrections are imperceptible. On a bad connection with frequent wrong predictions, they become obvious.

Why rollback is primarily used in fighting games

Rollback requires the ability to save and restore complete game state at any frame, and to resimulate quickly from a past state. In a 1v1 fighting game with a small number of characters and no persistent world state, this is manageable — save the positions, velocities, health values, and animation frames for two characters, then replay.

In a 32-player shooter with a persistent world, physics objects, AI, and complex game state, the cost of saving state every frame and replaying 5–10 frames of simulation when a prediction fails is enormous. The mismatch between prediction and reality in a game where many players are moving independently also means rollback corrections would be frequent and visually jarring.

Lag compensation — where the server rewinds game state to validate inputs — serves a similar purpose in server-authoritative multiplayer games, but the two techniques are architecturally different. Rollback is typically peer-to-peer; lag compensation is server-authoritative.

GGPO

GGPO is the most well-known rollback netcode implementation, open-sourced by Tony Cannon of Evo fame. It provides the rollback framework and leaves the game engine responsible for save/load and resimulation. Dozens of fighting games have shipped with GGPO or GGPO-derived implementations, including Street Fighter, Mortal Kombat, and Guilty Gear Strive.

The release of Guilty Gear Strive in 2021 — with highly regarded rollback netcode in a genre previously dominated by poor delay-based implementations — renewed mainstream discussion of rollback and put pressure on other fighting game publishers to retrofit or rebuild their online play.

Rollback in non-fighting games

Real-time strategy games have adopted rollback (or lockstep-with-rollback hybrids) because their deterministic simulation and relatively small input sets make it tractable. StarCraft, Age of Empires, and many mobile strategy games use lockstep synchronisation — all clients simulate identically when given the same inputs — sometimes paired with rollback for fault tolerance.

Some action games have experimented with partial rollback for specific subsystems (physics, animation) while using server authority for game state. The full rollback model, where every client resimulates independently, remains primarily the domain of fighting games and deterministic strategy games.

See also: Client-Side Prediction · Lag Compensation · Netcode · Peer-to-Peer Architecture

Back to Glossary