Every frame. Both games.
Arena’s online matches now use rollback netcode. Your game no longer waits for your opponent: it plays on, and corrects itself the moment their real input arrives. Your input delay is set once, at the start of every match, from your ping.
Set at the start of every match from your ping — then it stays fixed.
When a match starts, Arena measures the ping between the two players and picks each player’s input delay from their own one-way time: as small as the connection allows, from 1 to 5 frames. It then stays the same for the whole match, so your timing never shifts mid-match.
| Round-trip ping | Input delay |
|---|---|
| 20 ms | 1 frame |
| 40–64 ms | 1–2 frames |
| 135 ms | 4 frames |
| 150–200 ms | 5 frames (maximum) |
- input delay, set from your ping at the start of each match — then fixed
- 1–5 frames
- rewind window of saved snapshots
- 7 frames
- target: a normal frame takes 16.7 ms
- 60 fps
- IP addresses exposed: relay only
- 0
Play now, correct instantly.
Each game runs with only a small, fixed input delay. Instead of waiting for the other player, it predicts their input and keeps going. When the real input arrives and differs from the prediction, the game goes back, replays with the right input and catches up — all in the time of one frame.
- 01
A small, fixed delay
Inputs are applied a few frames later on both games. The delay is set from the ping at the start of the match and stays fixed. That small delay hides most of the trip across the network.
- 02
Predict the opponent
When the opponent’s input for a frame has not arrived yet, the game predicts it and keeps playing instead of stopping.
- 03
Roll back and replay
If the real input differs, the game loads a saved state from a ring of snapshots of the last 7 frames, re-runs those frames with the right inputs and continues — in the time of one frame.
- 04
Always identical
A checksum of every frame keeps both games identical, frame by frame.
A rollback, frame by frame (simplified)
- 1: Confirmed
- 2: Confirmed
- 3: Confirmed
- 4: Predicted
- 5: Predicted
- 6: Predicted
The real input for frame 4 arrives, and it differs
- 3: Load the saved state
- 4: Replayed
- 5: Replayed
- 6: Replayed
- 7: Confirmed
One server. No exposed addresses.
All match traffic goes through the Arena server in the EU (Germany). There are no direct connections between players, so no player ever sees another player’s IP address.
Your IP address stays private
Players only talk to the Arena server, never directly to each other.
No hole punching
No direct connection to negotiate between two homes: the server carries every packet.
Why not connect players directly?
Hole punching is the trick that lets two games connect straight to each other, peer to peer. Arena deliberately doesn’t use it.
A direct connection reveals your address
When two games connect directly, each player necessarily learns the other’s public IP address. A stranger could then target it: flooding your connection during a match (DDoS, “booting”), looking up your rough location and internet provider, or harassing you.
Some routers block it
Routers and NATs that block hole punching would make matches fail, or fall back to a relay anyway.
The server sees every match
With relay only, every packet goes through the Arena server: nobody ever sees another player’s address, and the server can also enforce accounts and match tickets.
The trade-off
The relay adds the path through the server: the ping is player → server → player instead of player → player. That is why the input delay is chosen from the measured round trip.
Rollback vs the original online play.
The game’s original netcode is delay-based, in lockstep: each game waits for the other player’s input before it moves on. Lag becomes input delay and slowdowns. Rollback trades that waiting for brief corrections.
| Aspect | Original netcode | Arena rollback |
|---|---|---|
| How it works | Delay-based lockstep: each game waits for the other player’s input. | Each game plays on with a predicted input and corrects itself when the real one arrives. |
| When there is lag | It becomes input delay and slowdowns — for both players. | A small delay, set from the ping at the start of the match and then fixed; the rest shows up as brief corrections. |
| A late or lost packet | Both games wait for the missing input: a stutter or slowdown. | The game keeps going on its prediction and corrects those frames when the input arrives. |
| Keeping both games in step | Neither game moves on without both inputs. | Frames are re-run from a saved state; a checksum of every frame keeps both games identical. |
| Connection and privacy | Not part of the netcode itself: it depends on how the connection is made. | Relay only, through the Arena server (EU, Germany): no direct connections, no player sees another’s IP address. |