Skip to main content

For multiplayer and simulationPhysics persona

Same inputs, same bits, on every machine.

A fixed 60 Hz tick, a digest per tick, recording of inputs only with the network included, replay and rollback — determinism as an engine guarantee you can verify, not a discipline you have to enforce.

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

What you get

A fixed tick, and proof

Physics and animation step on one 60 Hz accumulator, never the frame delta. Every tick has a digest, and balaur replay --verify stops at the first tick two runs disagree on.

Record inputs only

A session is each tick's input, network arrivals and events — not the world they produced — so it is small, and it replays by re-running the game against the same input.

Rollback

The rollback module decides each tick's inputs before the tick runs: the real one where it has arrived, a prediction where it has not, and re-simulates when the truth lands.

Networking that replays

HTTP, websockets and QUIC complete on worker threads and enter the simulation once per tick, at its start, recorded in the snapshot; a Gamend backend adds login, rooms and server hooks.

How it works

Three commands: trace, record, verify.

The engine measures its own determinism rather than asserting it: Rapier's enhanced-determinism feature in both worlds, transcendentals on the libm crate instead of the platform's math library, a fixed step, and a per-tick digest of every node and component.

Record a session on one machine, replay it on another, and the digests either match or the replay names the tick and the node that differ.

the command line
balaur run my-game --fixed-tick --trace-digest run-a.txt

balaur run my-game --fixed-tick --record session.blr
balaur replay session.blr --verify          # stops at the first tick that disagrees
balaur replay session.blr --entries-at 25   # that tick, one digest per node and component

In the editor

The Physics persona draws what the simulation sees; the Session dock records it.

Physics persona

Every body's collider and centre of mass drawn over the scene; show colliders, sleep bodies, step.

Session dock

Record and replay from the editor; its own recordings listed, replayable with the network included.

Once per tick

Input and network are one snapshot per tick; the Input overlay shows what the tick saw.

Next to Photon Quantum

Quantum is the deterministic multiplayer engine people know; Balaur makes the same promise at the engine level, without the platform around it.

Photon QuantumBalaur
Determinism100% deterministic, predict/rollbackBit-exact across platforms, verified by digest; a rollback module
BandwidthInput onlyInput only — sessions are inputs, not state
Where it runsA Unity SDK and Photon's cloudThe engine itself; any backend, Gamend included
CostLicensed, per CCUFree, MIT
MaturityShipped e-sport titlesWeeks old; rollback is new

Record a session, replay it, watch the digests agree.

angrynerds records itself from the Session dock; balaur replay --verify does the rest.