Files
psxrecomp/docs/NETPLAY_TOPOLOGY.md
T
2026-08-03 18:18:18 -04:00

34 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Netplay topology (locked decisions)
| Decision | Choice |
|----------|--------|
| Online transport | Lobby UDP **SFU star** (`recomp-net-server` input relay) |
| Mesh | **No** — peers never dial each other online |
| Sim authority | Pad **slot 0** = session host (`START`, state xfer) |
| Seat moves | Guests rearrange among seats **1..N−1**; host stays at 0 |
| Seat ceiling | **8** (`RNET_MAX_SLOTS`, lobby `MAX_SLOTS`, PSX dual multitap) |
## Paths
```text
Online (WebSocket lobby)
every peer ──UDP──► lobby SFU ──fan-out──► other seats
WS still carries lobby JSON + ICE signaling (ICE unused for match data)
LAN / Direct IP (no WS start)
2P: P2P UDP
3+: host-as-relay LAN hub (local star; game host fans out)
```
## Per-title players
- Framework / UI / net library ceiling: **8**
- `game.toml` `players` / `MAX_PLAYERS` may be lower (MotK=2, Bomberman=5)
- `PSX_MAX_PLAYERS == 8` enables dual SCPH-1070 (ports 1+2 → pads 0–7)
- Single multitap (5–7) keeps `multitap_port` (Bomberman Port 2)
## Follow-ups (not in this pass)
- N-way `hash_confirm` / FRAME_COMMIT agreement for rollback at N>2
- Validate 5P Bomberman over SFU + rollback host facade parity with MotK