Snapshot Interpolation- Netcode Talk

Snapshot Interpolation can be a skillfully tool for any multiplayer experience. Of course, it can seem daunting to some because it runs over UDP, we could drop packets and get them out of order after all. But that is exactly what Snapshot Interpolation takes care of, if things are out of whack we have a way to straighten them out. Let’s us go take a deeper look at snapshots.

What are Snapshots?

A serialized or saved version of a specific simulation state.

fholm, Creator of Photon Bolt

Here are some more benefits if done right

  • Bandwidth
  • Latency
  • Tick Based

Snapshot Interpolation helps by smoothing the clients world out but can also take less latency and less bandwidth. That’s thanks to utilizing UDP to our advantage and delta snapshots on top of general good data practices. Sometimes no matter what, a packet with just go missing. TCP will make sure it gets there but will take a long time in doing so. With UDP we do not, instead we just deal with it and move on.

One of the first raw test showing. Blue sphere on the left uses snapshot interpolation.

How do you use them?

First you put them into a buffer and have the whole game off by one frame, again it’s not as bad as it sounds.With something like 60hz with low latency you don’t really notice it at all. But, this system is easy to use with Lag Compensation and can make for great FPS play even at 30hz and spiker ping.

So this is one of the first things we tested out for ourselves. We incorporate a variety of these techniques into Sage Towers. Other products like Photon Fusion are coming onto the scene and really opening up the possibility of these systems to everyone. We think these techniques are critical for an effective multiplayer experience in the metaverse.

Special thanks to fholm, Vincenz and Glenn Fiedler

Note: To prevent any confusion on terminology the definitions we use here come from a document made by fholm (Fredrik Holmström) and most of the people I know agree with it. It had this to comment: “I’m sure there will be definitions of various terms and phrases in here that not everyone agrees with, these are the definitions that I use”

Leave a Reply