Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 1.19 KB

File metadata and controls

33 lines (25 loc) · 1.19 KB

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

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