Skip to content

Search

Tilbake

A deterministic engine for rollback multiplayer

Same inputs, same outputs on every machine: a fixed 60 Hz tick, input recording with the network included, replay and rollback. Free, MIT.

For multiplayer games — the Physics workspace.

A fixed 60 Hz tick, input recording with the network included, replay and rollback.

Open examples/angrynerds → · Determinism manual →

The Physics workspace on examples/angrynerds: collider overlays over the scene, the Bird's body2d in the inspector

Features

  • A fixed tick. Physics and animation step on one 60 Hz tick.
  • Record sessions. A recording holds each tick's input, network arrivals and events. Easy to replay if needed.
  • Rollback. The rollback module predicts missing inputs and re-simulates when the data lands.
  • Networking that replays. HTTP, WebSockets and WebTransport, recorded so the session replays.

Record, replay and verify

balaur run my-game --fixed-tick --record session.blr

balaur replay session.blr --verify

The engine measures its own determinism:

  • Physics are deterministic using the Rapier physics library.
  • Transcendentals (sin, cos and the rest) use libm.
  • At fixed step, a per-tick digest is computed of every node and component.

Record on one machine, replay on another.

The editor

Play, record and replay in one screen.

  • Play. When you play a game, the session is recorded automatically.
  • Sessions. Record and replay from the editor, all in one view.
  • Once per tick. Input and network arrive as one snapshot per tick. A replay reuses those instead of doing them again.

Compare

Determinism and physics features compared to other multiplayer game engines.

Photon Quantum Balaur
Determinism 100% deterministic, predict/rollback 100% deterministic, predict/rollback
Bandwidth Input only Input only
What A Unity SDK The Balaur engine
Cost Licensed, per CCU, starts at $100 Free, MIT
Maturity More than a decade Very new

View the examples or read the docs.

Open examples/angrynerds → · Determinism manual →