Multiplayer & Networking
Model
- 2–4 players online co-op, host-based via Mirror; matchmaking and invites through Steam lobbies. Discord integration alongside.
- The server (host) is authoritative for combat: firing, damage, ability execution and enemy AI all run server-side; clients see synced results.
Authority rules (the important ones)
- All game state syncs through the standard channels — session state, wave number and player state are server-owned synced values with client hooks.
- Anything with a real gameplay effect must be a networked object. One object, one pickup — otherwise four clients would each collect their own copy and the effect would fire four times.
- Cosmetic-or-reconciled things may be client-local. Zingthon pickups
deliberately spawn a local copy per client for feel, and counts are
reconciled at wave end (
ClearUp). - Audio that matters is synced through the networked audio path; scene changes go through network-aware loading.
Co-op design consequences
- Difficulty multipliers scale enemy HP/damage/speed and wave time with the lobby (see Mechanics).
- Revives are a class ability (Medic) — death is not necessarily the end of a wave for the team.
- The card phase is shared: all players pick simultaneously during the Break.
🚧 TBD — reconnect/host-migration policy, latency targets, max supported ping, spectating after death, and pause rules in co-op.