Files
CosmicClash/multiplayer-next.md
T
2026-08-21 18:56:02 +01:00

2.1 KiB

Multiplayer — next work

Short, current checklist for online multiplayer. Historical design decisions, implementation evidence, and completed work stay in multiplayer-todo.md.

Release blockers

  • Phase 4 playtest: a human playtest at roughly 100 ms RTT. Confirm that ship and ball interaction feel local and contact corrections feel like bumps rather than glitches.
  • Phase 5 session: complete a real 3v3 match with a mid-match disconnect and late joiner.
  • Phase 6 external check: run the exported Docker server and clients from separate machines over the internet, then play a full match. Keep this controlled-only until Steam identity is complete.

Phase 7 — Steam, identity, discovery

  • Obtain the pinned GodotSteam client/server builds and Steamworks SDK access described in STEAM.md.
  • Run make verify-steam-templates with the custom executables and fix any custom-template failures.
  • Validate a two-account Steam SDR host/join using the existing explicit NetworkManager Steam transport. ENet direct-IP must keep passing its smoke test.
  • Build the Steam server browser: internet, LAN, favourites, and history.
  • Add Steam auth tickets, verified Steam identity in the roster, and a persistent ban list. This fixes the slot-reclaim security issue below.

Known issues to resolve before public hosting

  • Slot reclaim is currently keyed by display name, so someone can take a disconnected player's reserved slot. Do not expose public servers before verified Steam identity lands.
  • Investigate occasional input loss during a long server stall; the existing sequence resync recovers it, but transport delivery is variable.
  • Fix the remaining _broadcast_snapshot packet-send stderr race.

Decide after the latency playtest

  • Decide whether client-only, contact-cohort shadow physics is worthwhile for the remaining prediction weakness.

Explicitly deferred

120 Hz simulation, latency-gap measurement, audio hooks, and split-screen are not part of the current multiplayer release path.