It is talked about a problem that has no conceivable source … I think it’s a bit preemptive to say it is unsolvable if we can’t even pin down what the source of these jitters are.
We know that the client has all the information it needs to perfectly calculate the position of a player that has not changed his course.
The most rudimentary extrapolation method is very simple:
If the information provided by the snapshot is correct and accurate enough and the pilot did nothing in the meantime, it should be a near perfect match.
Even if the pilot did move, it shouldn’t have any more influence on his vector if he’s already moving 100m/s or 100km/s in the absolute frame.
It could be precission. The faster one moves the bigger velocity value gets. If there isn’t enough precission for velocity it could generate floating point errors.
From my test calculation usual floats should be more than precise enough though. Theoretecally.
The direction also plays an important role … although if the positional snapping is mostly back and forth in the velocity direction it should be fine.
I think in other games it’s the actual velocity precision that is the problem. They didn’t design the game for high velocity so maybe decided to use lower precision in order to save bandwidth. Just speculation though. We don’t know what causes stutter in other games …
One thing it could also be is the interpolation/extrapolation algorithm. There can be many situations that it could not be prepared for. What if it the snapshot distance changes? So it sometimes compares snapshots that are 20 ms apart and sometimes snapshots that re 30 ms apart.
Maybe floating point errors are amplified trough the algorithm?
Is there any place where information is lost? Are floating point numbers reduced in precision before they are send over the network?
Is velocity and direction “rasterized”? So if I speed up my ship it isn’t using all the available floating point precision but “step” from one allowed value to the next?
I have the feeling this is quite important.
Ninjad a little … but eh.
I personally also seem to have issues with floating point calculating in my current project … it’s also driving me nuts.