Skip to content

feat(lobby): Tune the mesh check window and stop re-signalling connections that are still forming - #65

Merged
x64-dev merged 5 commits into
GeneralsOnlineDevelopmentTeam:mainfrom
tintinhamans:arctic/feat/mesh-tuning
Sep 25, 2026
Merged

x64-dev merged 5 commits into
GeneralsOnlineDevelopmentTeam:mainfrom
tintinhamans:arctic/feat/mesh-tuning

Conversation

@tintinhamans

Copy link
Copy Markdown
Contributor

Members reply to a mesh check with a snapshot of their current connections, so an attempt used to be judged within milliseconds. Any connection still being negotiated was re-signalled, which throws away the negotiation, and the 5s window only mattered when a reply went missing. Attempts now re-poll snapshots every second until the mesh is complete or the window closes. Only then are missing pairs re-signalled, and pairs a member reports as still connecting (connecting_map) are left alone. Checks are judged on current members only, so a player who leaves mid-check no longer produces false gaps or stalls the attempt. Members who haven't replied are re-polled, which recovers replies lost to a reconnect.

The window, poll interval, retry delay and attempt count are tunable under Core (full_mesh_check_*, defaults 8000/1000/3000/2), and each judged attempt is logged with its duration and missing pairs so the window can be tuned from real data. Setup progress now carries countdown_ms so clients no longer infer the start countdown from timeout_ms. The mesh-check timeout stays at 10s or more, so older clients can't mistake it for the countdown. Older clients without connecting_map behave as before.

Pairs with the GameClient mesh tuning PR.

@x64-dev
x64-dev merged commit 76cff94 into GeneralsOnlineDevelopmentTeam:main Sep 25, 2026
16 checks passed
@tintinhamans
tintinhamans deleted the arctic/feat/mesh-tuning branch September 25, 2026 23:22
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.

2 participants