[sldev] Re: Deltas and ACK

Jake Simpson jake at lindenlab.com
Thu Jul 24 03:11:28 PDT 2008


Boroondas Gupte wrote:
> Jake Simpson schrieb:
>> Your idea of only sending delta's is a good one - it's what Quake 
>> uses in fact. However you can extend that further so that when a 
>> client ack's a delta packet, the simulator then updates it's default 
>> state which it uses as the control state (ie that which it derives 
>> the delta packet from, by comparing this state with the current 
>> object state) since it knows that the client now has a copy of that 
>> latest state, since the delta packet was acked. The client of course, 
>> does the same thing internally.
> What if the ACK is lost (or just delayed)? Would the client  interpret 
> following deltas relative to the just ACKed state while the server 
> would have created them still relative to some earlier state?
>
> Boroondas
If the ack is lost, the server operates against the last actually acked 
packet. When a delta packet is sent down to the client it contains the 
packet count number of the packet it is built against so the client can 
always know "this packet is delta-ed against packet X - where is my list 
of states for packet X - oh, here they are. Right, so that's what I am 
delta-ing against".

If an ack is lost, then the packet X count is not incremented, and the 
client operates against an older one.


More information about the SLDev mailing list