Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Buffout packet receive inconsistencies #449

Open
OfficialLambdax opened this issue Dec 16, 2023 · 2 comments · Fixed by #448 · May be fixed by #486
Open

[Bug] Buffout packet receive inconsistencies #449

OfficialLambdax opened this issue Dec 16, 2023 · 2 comments · Fixed by #448 · May be fixed by #486
Assignees
Labels
enhancement New feature or request investigating This is being investigated currently.

Comments

@OfficialLambdax
Copy link
Collaborator

OfficialLambdax commented Dec 16, 2023

timeline

Unstable connections lead to inconsistent positional packet executions. Which lead to visible vehicle warping. Vehicles warp back, forth and side ways. While i dont know how to fix the third case, i think we can buffout the second, by offsetting when to execute a pos update when it is received early or late.

Demonstrative Example from Leviathan of the BeamTC community
https://github.com/BeamMP/BeamMP/assets/91626975/51ab4ee2-9e8e-4991-891f-bcc0768950cf

@OfficialLambdax
Copy link
Collaborator Author

Reopening, as the current solution is a experimental

@OfficialLambdax OfficialLambdax self-assigned this Dec 31, 2023
@OfficialLambdax
Copy link
Collaborator Author

OfficialLambdax commented Jan 2, 2024

Effect of the current experimental solution from #448

  • Left is the default. Right the experimental code
  • Each row represent a playerid
  • Each number the time in milliseconds since how long ago the last positional update was executed for the player vehicle of each row
    291034555-a05c2d4b-c794-4b37-9370-b7f934609179

Atm this code tries to tick each vehicles positional updates based on their median interval of the 10 recent positional updates, while also discarding positional updates that are outdated (UDP issue), and those who arrive before the next execution overwrite the non executed. This prevents multi executions from simultaneously received packets while making sure that the later smoothing code that predicts and interpolates vehicle movement doesnt trigger short teleports or to hard forces.

This code cannot solve the issue of positional updates coming in in huge distances to each other (300 ms etc)

@OfficialLambdax OfficialLambdax linked a pull request Jan 5, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request investigating This is being investigated currently.
Projects
Status: Done
1 participant