Closed MustacheMan2 closed 1 year ago
I think adding proper rubber banding is unlikely, given the complexity of the topic and the limited information available. That said, it'd be interesting to see how it'd react if we bump the fps the game runs at server-side to be 120 fps, rather than 60.
so uh, it has nothing to do with tick rate. Our serialization was just wrong and wrong :) I have found and am working on the fix
Now as far as the powerups fading away too slowly, theres nothing we can really do about that. The client only sends information so often in regards to how often they move, so a faster server tick rate wouldn't even do anything. There is nothing we can do do make things like tight racing better aside from serializing the latency as the PR that will close this issue does. That should help clients predict where players are a bit better, but the powerups will still fade at the same frequency.
from my testing in the next PR, there is no way to be inside another racer mid race? regardless of anything, tests will need to be done to see what that PR fixes and doesnt fix in regards to the requested improvements here.
Now as far as the powerups fading away too slowly, theres nothing we can really do about that. The client only sends information so often in regards to how often they move, so a faster server tick rate wouldn't even do anything. There is nothing we can do do make things like tight racing better aside from serializing the latency as the PR that will close this issue does. That should help clients predict where players are a bit better, but the powerups will still fade at the same frequency.
from my testing in the next PR, there is no way to be inside another racer mid race? regardless of anything, tests will need to be done to see what that PR fixes and doesnt fix in regards to the requested improvements here.
I figured the case was that the powerups faded at around the appropriate time, but the other players being in different positions than they actually were made things not add up at all, but I might be entirely wrong. As for being inside other players, maybe it's also a matter of wrong placements just being really confusing; there's been a lot of cases where I was sure they couldn't have been where they were without fading through me but lack of proper sync could have been the only issue. Guess we'll have to see what this fix brings.
Played on the latest commit as of now. I'm very impressed, the sync is very very good; not perfect but a real improvement. It seems that the powerups disappear at the appropriate time when other vehicles are seen driving over them, however the vehicles aren't perfectly synced sometimes, so they might be seen as driving beside the powerups when they are actually picking them up. If there's more possible fixes, that'd be cool, but if not, no biggie :)
there may be more fixed in the future with regard to the ping prediction we tell the client to run its physics at, but outside of that I dont think there will be many more at the moment unless research finds more details
Make sure you've done the following:
[X] I have checked that this issue has not already been reported.
[X] I have validated that this issue is not a syntax error of either MySQL or SQLite.
[X] I have pulled the latest version of the main branch of DarkflameServer and have confirmed that the issue exists there.
DarkflameServer Version
500b788
Issue Description
An issue as old as time. When racing anywhere with any amount of players (2+), the movement sync in other players is not optimal. It's amusing at first to see cars lift off but it becomes a burden when you drive through powerups only to see them fade as your opponent suddenly appears in front of you. Shoving is also near impossible.
https://youtu.be/HYUaSjADx7o?t=2238
Reproduction Steps
Race with other players and make sure they are in viewing range. Observe.
Expected Behavior
Phasing through other cars and watching them do front flips while floating just shouldn't be happening to the extent it currently is. Desync during live happened sometimes but was minimal.
Environment
ubuntu server