beyond-all-reason / beyond-all-reason/RecoilEngine

GameID: check if it needs the "send later" thing

Open
#1,400 0 comments 0 reactions 0 assignees View on GitHub
enhancement refactor
Dominant language
C++
Stars
679
Forks
290
Avg merge
3d 2h
Merged PRs (30d)
40

Description

Right now gameID seems to be sent at some point (IIRC on game start, i.e. after everybody placed startpoint) via the `NETMSG_GAMEID` network packet. I believe there was historically some reason to do it this way which also affected synced RNG seed. But synced RNG is now available immediately so maybe gameID can too.

Remarks:
* check if the generation method relies on the current behaviour in some way. In particular IIRC the delay between exe start and the game start was used as an extra source of entropy. Check if the ID has enough entropy for its needs after the change.
* deprecate `wupget:GameID(id)` though don't immediately remove
* add some sort of `Game.gameID` or `Spring.GetGameID()`.

Contributor guide

Open the contributing guide

Research direction

Trace the NETMSG_GAMEID packet and the GameID generation method first, checking how synced RNG and startup timing affect entropy. Review the existing wupget:GameID(id) usage and the proposed Game.gameID or Spring.GetGameID() exposure. Done means the timing dependency is resolved, compatibility is addressed, and the new access path is defined and tested.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.