The engineering challenge
Eight very different round types (social deduction, stealth, objective races, a gauntlet) have to share one lobby, one round loop and one set of networking rules, without the round manager turning into a pile of special cases.
Technical decisions
- Contract-driven modes. A generic round state machine (Lobby → Selecting → MapBuild → ModeIntro → Running → Ending → Results) never branches on which mode is running. Each mode implements one shared contract: build its map, start, stop, and report wins and eliminations through the round context.
- Server authority. The server decides wins, eliminations, objectives and roles. Every client message is treated as untrusted and validated for role, phase, range, timing and shape. The one client-trusted input, camera direction, is still bounded server-side by distance, angle and line-of-sight checks.
- Round-scoped cleanup. Every connection, task and object a mode creates is owned by a per-round container that is torn down at round end, so rounds can’t leak into each other.
- Touch controls across all eight modes, so the game plays on mobile.