Reimplement host synchronization checks and periodic messages - #223
Open
Krarilotus wants to merge 1 commit into
Open
Reimplement host synchronization checks and periodic messages#223Krarilotus wants to merge 1 commit into
Krarilotus wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reimplements how the host decides that players have gone out of sync and when the game sends its regular synchronization messages. It also adds the unit-buffer hash helper, providing tested C++ counterparts for three native routines used in network and replay investigations.
checkGameSyncwaits for usable samples from participating peers and compares hashes only at equal advertised match times. It preserves the global host/queue receiver, per-instance state, command54, countdown/delay behavior and acknowledgement resets.sendPeriodicSyncMessagespreserves the signed wrapping clock comparisons: packet126 after more than1800ms, the other sync message at180ms, and countdown updates after the send callback.computeSomeHashOnUnitArraydelegates the full unit array to the existing hash resolver. It is distinct from the canonical per-domain multiplayer hash calculation.Validation:
OpenSHC.dllCMake build passed, using MSVC2005 SP1 and a Microsoft-signed Windows SDK manifest tool. The older bundled manifest tool crashes on this machine. No DLL was deployed.reccmpscores: host check 98.02%, periodic sends 92.59%, unit-buffer helper 60.00%. These reflect the actual linked resolver/symbol differences and are separate from native-bound byte matches.tools/validation/README.md.Based on upstream main; existing generated headers and activation flags are unchanged. This does not finish resynchronization, fix the observed TCP hosting hang, or enable multiplayer replay. It complements #222's synchronization command implementation.