Diff states fix for missing first full state#267
Closed
TheYellowArchitect wants to merge 16 commits intofoxssake:mainfrom
Closed
Diff states fix for missing first full state#267TheYellowArchitect wants to merge 16 commits intofoxssake:mainfrom
TheYellowArchitect wants to merge 16 commits intofoxssake:mainfrom
Conversation
…d in future godot version and makes the code cleaner (saves 2 typecasts)
…on) and deserialization for received input properties.
…dded that logic to state synchronizer.
Contributor
Author
|
Closing in favour of #278 because this has some bug + its code is far less readable than that PR (custom serialization plays a big role) |
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.
This is a draft of a possible solution to fix the rare use-case bug of the packet of the first diff state being lost in #264 (has #266 merged), see the code changes of exclusively the fix in this 1 commit afaec89
To synopsize the code structure. If diffs are disabled, send full states, unreliable.
If diffs are enabled, check if we have sent a reliable full state to that peer id. If not, send that reliable full state.
Then send diff states as usual. Now in the side of the received player, if he receives unreliable diff state without having received the initial/full state (via reliable RPC), he simply caches it for later, and processes it when the initial/full state arrives.
Always bugs with disabled
input_broadcast(#268), though I need to test further because I think there are more bugs with this specific PR.