Skip to content

feat: Quick match correctness and realtime protocol - #68

Draft
tintinhamans wants to merge 8 commits into
GeneralsOnlineDevelopmentTeam:mainfrom
tintinhamans:arctic/feat/quickmatch-protocol
Draft

tintinhamans wants to merge 8 commits into
GeneralsOnlineDevelopmentTeam:mainfrom
tintinhamans:arctic/feat/quickmatch-protocol

Conversation

@tintinhamans

@tintinhamans tintinhamans commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Quick match could start short of players or with players who weren't connected, clients had no reliable join order, and only the host saw why a start failed.

  • The match is re-verified before the countdown and before start: same players, all connections live, no membership change since the check.
  • Playlists have a min/max range, and maps always have exactly as many slots as players. Players are told when a fallback map or a smaller match is used. Bad playlists are rejected at startup.
  • Custom lobby and quick match connectivity checks are refereed the same way: pass once everyone is connected, fail as soon as a client reports gave_up, 20 s backstop (full_mesh_check_referee_window_ms). A failed custom check re-signals the missing pairs so the next start attempt can pass.
  • Everyone in the lobby sees the connection check and who can't connect to whom.
  • Lobby fixes: a host can't kick themselves, DELETE only leaves the named lobby, creating a lobby no longer deletes one other players are in, a full lobby is rejected before leaving the current one, slots a failed start check closed are reopened, host migration never shows a member twice, stale legacy mesh-check replies are ignored, and a missing has_map no longer fails the join.
  • The search widens the skill range every 10 s (shown as ±N), and searches all skill ranges past ±1500.
  • Additive fields: JoinSequence, the lobby snapshot in "match found", the mesh-check reason, game CRCs on the session (409 on custom-join mismatch), per-player ice_implementation with a tester allowlist.
  • Compatible with the released client.

@tintinhamans
tintinhamans force-pushed the arctic/feat/quickmatch-protocol branch 2 times, most recently from fa934a7 to 03cd444 Compare September 29, 2026 19:58
@tintinhamans
tintinhamans marked this pull request as ready for review September 29, 2026 19:59
@tintinhamans
tintinhamans force-pushed the arctic/feat/quickmatch-protocol branch 2 times, most recently from 4612092 to 14abdf1 Compare September 29, 2026 20:35
@tintinhamans
tintinhamans marked this pull request as draft September 29, 2026 20:38
@tintinhamans
tintinhamans force-pushed the arctic/feat/quickmatch-protocol branch from 14abdf1 to 5329190 Compare September 29, 2026 20:39
@tintinhamans
tintinhamans force-pushed the arctic/feat/quickmatch-protocol branch from cca0792 to 240d63b Compare September 29, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant