SyncField buffering: expanded docs, simplified code flow, and improved UX
#533
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.
Best reviewed commit-by-commit. Only the last two commits introduce functional changes. All previous commits are non-functional - they focus on improving documentation, renaming for clarity, and simplifying the code flow.
As for the functional changes they are meant to improve user UX and avoid input jerkiness. See below videos for comparison of the actual effect (host is on the left side; a 50ms artificial latency is applied between host and client). At the beginning of each video I demonstrate the effects of delaying syncing until 200ms have passed without any further user input using the ingredient radius slider. In the second part I show the effect of buffering
SyncBillProduction. In both videos, the click speed was approximately the same. However, in the "before" video, some of the clicks were lost, whereas the "after" behavior ensures the user input is correctly handled.Before:
Buffering-Before-2.mp4
After:
Buffering-After-1.mp4