loftar wrote:I believe what you're looking at is the fact that time steps on the server are quantized, and movement must complete in a discrete number of timesteps. Given that constraint, there are basically two reasonable options to choose from:
- Divide the whole movement evenly among the timesteps it will take; or
- Use an exact movement delta for each step except the last one, which gets whatever remains of the requested movement.
I've chosen the first option, simply because that allows the client-side interpolation to more precisely model what actually happens server-side. I assumed that, for reasonably long movement requests, the difference in speed isn't so large that it would matter; it amounts to a few percent of difference, which perhaps in some scenarios might matter more than I thought. Indeed on short movement you would get greater variance, but that seems like a bit of a pathological case to me, and I wonder if that actually matters.
The behavior is not so firmly entrenched that I couldn't change to the second mode, but I do wonder if that couldn't yield undesirable unevenness in the interpolation or other unforeseen behavior. That might be less of a problem in these days of the new interpolation protocol format, but I'd have to try to find out.
Thanks for the explanation as that really spells it out now and makes sense as to what is being seen. Knowing the server timestep and the units/s for each speed I can definitely see in testing now how to maximize speeds based off how many timesteps they will end up, and like you said it is much more apparent the closer it is like you mentioned. The variance is also much more noticeable as you get to higher speeds which makes sense.
My one thought right now is with shift+click example where the server runs you in a direction forever, which is nice but usually a slower speed or more so matching the real speed intended, could be overridden by a custom client to instead do it themselves with somewhat perfectly placed clicks in the direction desired but at shorter distances that maximize speed to give them basically a superior shift+click speed-wise to be better than or at least as good s the default. In chases this would be quite an advantage if consistently done over long periods of time, could even save yourself from a KO or catch up and KO the guy you're chasing.
If you do decide to try the alternative method perhaps it can be done on the test server for people to run around in and see if it works better and without mistakes?