So I'm writing a delta compression mechanism for my game, and I had a few questions.
1.) Suppose we're compressing floating points and doing the usual thing. Rounding to nth decimal place, quantizing to that decimal place, bit packing, and sending to client. So our normal 32 bit float (example: 1.4839284) becomes 1.48 and then 148 when quantized. All good here. HOWEVER, if our float starts incrementing very slowly for whatever reason, suppose in increments of +- 0.0003, that's far beyond our 2 decimal precision limit and the client isn't going to be receiving those updates. Is there a way to counter this other than raising the precision?
2.) Not related to the previous question. This is just an “in general delta compression" question. Since we're losing some precision no matter what, should the server always resend the full state to each client periodically every few minutes? To prevent values from drifting?
Edit: Or rather the server should probably accumulate the compressed values somewhere for each player, so that it knows exactly what values the client has, and can calculate the drift and the need for full state updates?