/rbrb

Write robust rollback networked games

Primary LanguageRust

rbrb

A library for building RoBust RollBack-based networked games.

rbrb is heavily inspired by GGPO and GGRS, but aims to be more reliable and capable.

Assumptions

This library assumes your game is a deterministic Fn(&State, Set<Input>) -> State. We (will) have an additional testing mode that will spend extra cycles on checking that the state is consitent between players and deterministic on the same logical update.

Roadmap

Core Functionality

  • Multi-party sync
  • Consistent disconnection
  • Reconnect disconnected player

Robustness

  • Determinism checks
  • Checksum propagation
  • Debugging failed checks
  • Fake a bad network
  • Confirmation state

Features

  • In-game replays
  • Out of game replays
    • Headless
  • Spectators
    • Drop in/out
  • Multiple local players

Performance

  • Sparse inputs
  • Input delta encoding
  • Hub and spoke network

License: MIT