Skip to main content
Physics playback

Physics playback

· One min read
Balaur

A run records and plays back, two engines run the same game in rollback exchanging only inputs, and a digest per tick catches a desync.

  • A snapshot restores a tick and the deterministic simulation re-runs the same inputs. Node ids are stable across spawns and re-runs, and scripts see rollback::input and rollback::is_resimulating.

  • A peer publishes a tick's hash once every player's input for it has arrived. A desync names the tick.

  • Transport runs over WebSockets, and over QUIC datagrams through balaur_webtransport, where a lost input costs a misprediction. balaur_http, balaur_websocket and balaur_webtransport are one crate each, behind their own features.

  • Delay, jitter and datagram loss can be set on every session link, from the editor's settings.

    The Netcode page of the settings screen: faults, delay, jitter and loss

Networking · Determinism · Balaur for multiplayer