Reliable Delta Compressed VS Unreliable

I’m having trouble understanding state synchronization methods. From what I have read is that “Unreliable” is constantly sending data via OnSerializeNetworkView() function. “Reliable Delta Compressed” on the other hand only sends it via OnSerializeNetworkView() function if the data you are serializing has changed. So should you basically always be using “Reliable Delta Compressed”?

Here are the differences between reliable delta compressed and unreliable:

  • If there is no packet loss, Reliable Delta Compress will use a lot less bandwidth then Unreliable (as it only sends changes).
  • If there is packet loss, Unreliable will deliver the data faster then Reliable Delta Compressed (as it doesn’t buffer things on the receiver to make sure it is delivered in order)

So what this means is: If you have a game which can tolerate large latency (turn-based, RTS games, puzzle games, mostly) Reliable Delta Compressed is better. But if you have a game where you need fast delivery of the latest data, Unreliable is better (FPS games, Action RPGs, Fighting Games, etc.). Especially if you are on mobile where packet loss is very common, Reliable Delta Compressed will most likely be far slower.

7 Likes

Ah makes sense, thanks for the great response!