Files
2026-05-27 23:47:53 +01:00

26 KiB

@suaveplan/r3f-networking - R3F-tier multiplayer state synchronisation: interpolation, client-side prediction, snapshot diffing, server reconciliation FSM, React hooks + React-Three-Fiber components. Transport-agnostic — composes any @suaveplan/network Transport.

Summary

R3F-tier multiplayer state-synchronisation for React-Three-Fiber scenes. Composes any @suaveplan/network Transport (canonical: @suaveplan/network-transport-webrtc), @suaveplan/diff for snapshot deltas, @suaveplan/fsm for the reconciliation state machine, and @suaveplan/serialize for the wire codec.

Documentation tree

- [server-authority](./src/authority/server-authority/server-authority.md) — _(no submodules)_- [network-provider](./src/components/network-provider/network-provider.md) — _(no submodules)_- [network-provider-context](./src/components/network-provider/network-provider-context.md) — Module-scope `React.Context` exported as a separate file so consumers can import the context object directly (`useConte…

What this package owns

  • Interpolation — frame-loop smoothing of remote-peer transforms (core/interpolation).
  • Client-side prediction — local input applied immediately, reconciled against authoritative snapshots (core/prediction).
  • Reconciliation FSM — synchronized → diverged → resyncing state machine driven by divergence magnitude (core/reconciliation-fsm).
  • Snapshot diffing — RFC-6902 JSON Patch between authoritative snapshots via @suaveplan/diff (core/snapshot-diff).
  • Wire codec — Zod-validated frame encode/decode via @suaveplan/serialize (core/wire-codec).
  • Entity sync + interest management (sync/entity-sync, sync/interest-manager).
  • Server authority with anti-cheat hooks (authority/server-authority).
  • In-memory transport — deterministic real Transport implementation for integration tests (transport/memory-transport).
  • React hooks — useNetworkSync, useNetworkedEntity, useNetworkPredict.
  • R3F components — <NetworkProvider>, <NetworkedEntity>, <NetworkStats>.

Observability

OTel meter @suaveplan/r3f-networking. Histograms r3f_net.snapshot_dispatch_ms and r3f_net.prediction_divergence; counters r3f_net.snapshots_total{outcome} and r3f_net.peer_events_total{event}.

Error registry

defineCodes("R3F_NET", […]) — 8 codes: SNAPSHOT_OUT_OF_ORDER, PEER_DROPPED, PREDICTION_DIVERGED, INVALID_OPTIONS, INVALID_SNAPSHOT, DISPOSED, TRANSPORT_FAILED, ABORTED.

License

MIT