Delta compression using protocol buffers?

Well you have two choices You can serialize State A and State B and run a diff on result. (As you describe) or You can use knowledge of the structure to find the difference between State A and State B and serialize the structural difference Which comes down to this -- is the structure of the data defined in such a way that taking a delta is faster than running a general purpose diff? I believe it often is.

Lets take a simple example. Our game world defines two items P1 and P2 (they run around the world) at any point of time the game state is defined as P1(x,y,z) and P2(x,y,z). Thus the structural delta is the difference between 6 variables (x,y,z for two players).

Calculating this is quick -- it is 3 math operations. However, who knows how these will serialize -- and then the diff routine will have to do a lot of work (at least one loop) to find the delta of the result But it gets even better than that. Since your game engine knows you care about deltas as things change it can store the deltas in a list and be ready to send the deltas without any calculation (for example everytime a P moves it stores the change).

Well you have two choices. You can serialize State A and State B and run a diff on result. (As you describe).

Or You can use knowledge of the structure to find the difference between State A and State B and serialize the structural difference. Which comes down to this -- is the structure of the data defined in such a way that taking a delta is faster than running a general purpose diff? I believe it often is.

Lets take a simple example. Our game world defines two items P1 and P2 (they run around the world) at any point of time the game state is defined as P1(x,y,z) and P2(x,y,z). Thus the structural delta is the difference between 6 variables (x,y,z for two players).

Calculating this is quick -- it is 3 math operations. However, who knows how these will serialize -- and then the diff routine will have to do a lot of work (at least one loop) to find the delta of the result. But it gets even better than that.

Since your game engine knows you care about deltas as things change it can store the deltas in a list and be ready to send the deltas without any calculation (for example everytime a P moves it stores the change).

I think that while the second example may be faster, it will also be much more complex. I think one reason why Q3 did their delta on the whole object was because of the complexity of their game state. When I think about things from the perspective of a complex data structure, with many properties some of which are complex structures themselves it seems much easier to simply go with choice A – Aaron M Aug 24 at 12:18.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions