Descriptive Problem Summary:
If you set both client.glide_size and mob.glide_size to 0, and move the mob in a variable rate, (say between 4 and 4-world.tick_lag ds (lag compensation, forgiving up to 1 world.tick_lag of delay from when they could move again to when we get a move command from them)) the client will start to fall behind the mob, catch up, repeat and basically jitter the moment byond misses a tick from overrun. a few seconds later they sync again.
It seems to happen if you manually set glide_size too, but its less noticeable, harder to trigger or pinpoint and only on fractional glide sizes.
It seems client.glide_size doesn't have issues if a tick is missed, but mob.glide_size does.
Right now all of /tg/station's code sets glide_size to 8px, I'm hoping to refactor movement code to get rid of that so we can toy around with more fps rates.
Ideally, there should be a way to just have the client follow it's eye mob's gliding, so they don't get out of sync, kinda like SYNC_STEPS but for the client. I figured this is what client.glide_size 0 does, or at least, should do.
ID:2024478
Jan 25 2016, 1:30 pm (Edited on Jan 25 2016, 2:23 pm)
|
|||||||||||||
| |||||||||||||
I'll put this high on my look-at list. If you have any suggestions for ways I can easily force a missed tick, that'd help.
|
In response to Lummox JR
|
|
Lummox JR wrote:
If you have any suggestions for ways I can easily force a missed tick, that'd help. world That being said, I modified my sight check test case to showcase it: https://tgstation13.org/msoshit/sightcheck.zip Just move around in the box changing directions until it happens |
and it happens mainly when switching from south to west as movement direction