I don't get why the stuttering would occur even without any lag and zero latency.
Why does high velocities introduce positional errors?
If the speed of the moving object remains the same during these snapshots why can the predicted position be different from the position that is send in the following snapshot? I would think that this occurs because the game renders the object at the position the snapshot provides, regardless if this snapshot was made a few milliseconds ago and would therefore reset the objects position to a position that is 'old'. If that is the case stuttering would be inevitable because the game is always trying to catch up the objects position and moving it all over the place depending on the timing because it doesn't take into account the fact that the snapshot isn't timed perfectly.
I would think that decoupling the rendered current state of the moving object from the snapshot would resolve this issue. Is the current rendered position of the moving object always the exact position from the snapshot or does the game know when a snapshot is received out of timing and interpolates the actual current position based on the probable real position?
I would imagine it something like his
snapshot 1: position x1 y0 z0, timestamp
snapshot 2: position x2 y0 z0, timestamp +1s
snapshot 3: position x3 y0 z0, timestamp +2s (received out of timing 0.5s, the objects jumps back in the traveled space because the game thinks it is correct and does not account for the out of timing delay)
snapshot 4: position x4 y0 z0, timestamp +3s (the ojects now jumps forth because the delay is now gone and the object is back at its 'real' position)
Now couldn't this just be resolved by the game looking at the timestamp from the server, seeing that the snapshot was received out of timing and taking this information into account? The then rendered position would be based on the snapshot combined with the timestamp and using this information to interpolate the 'real' probable position of the object.
The result would be that predictions on the current positions are not only made when a lag or packet loss happens but also when the snapshot is out of timing.
Or maybe this post is total garbage because I don't know anything about this kinda thing.