Entity interpolation
So, we need a way to interpolate entities in a way that is smooth and doesn't appear sluggish to the player (for instance, it should appear to accurately replicate another player's actions faithfully). Let's take a look at how this is done in the source game engine by Valve Studios.
By default source sends twenty snapshots per second. Objects only being viewed at these positions would result in approximately 20 FPS animation, not ideal. In Unity Networking the default send rate is 15, so it would look even worse.
The way source solves this is by introducing a constant view delay of 100 ms. By doing so, under normal circumstances there are always two snapshots available to interpolate between even if a snapshot is lost (due to packet loss). So, as long as the networking engine has a concept of network time, you can use the current network time to interpolate between these two snapshots.
This scheme handles dropped packets fairly well. Under normal circumstances, a dropped...