Jittery movement from remote Owner-Predicted players

I’ve noticed jittery movement on the moving objects of other remote players that are “owner predicted”. Are these objects supposed to be interpolated by NetCode automatically, or is that something we have to implement ourselves? And if it is interpolated, does the interpolation truly update at the same variable rate as the rendering?

Where should I start looking in the code, if I want to study how network interpolation is implemented?

Owner predicted ghosts are interpolated on all clients who do not own the ghost. You do need to set the correct interpolation mode on the ghost fields you want to interpolate though, or it will clamp to the “before” tick if you need to present between two existing ticks.
Interpolation treats the tick as a “float” so it will advance at a rate tied to the variable rendering rate (but apply a time-scale when needed).

The systems related to this are mostly the GhostUpdateSystem and the NetworkTimeSystem.

There is a bug causing interpolation time to not advance smoothly in netcode 0.6, so that could also be what you are seeing.

3 Likes