Continuing a phone conversation on the mailing list, this is my current 
understanding of the status of object updates in OpenSim:

1) Each object update is a single packet. No aggregation is done by combining 
multiple ObjectUpdate.ObjectData blocks into a single packet, or combining 
ImprovedTerseObjectUpdate.ObjectData blocks
2) Object updates are sent in the same order to all clients, with no 
prioritization (using distance from camera/avatar, frustum culling, etc)
3) OpenSim uses two packet types for sending object updates, ObjectUpdate and 
ImprovedTerseObjectUpdate. Different code paths arrive at each of these packets 
being sent, and no logic is used to determine the smallest object update packet 
possible to carry the modified data. This excludes the ObjectUpdateCompressed 
packet from being used
4) Full scene information is streamed to each client as it connects. 
ObjectUpdateCached packets are not used in cases where the simulator might 
suspect a cache hit


None of these are trivial to implement, but #1 would require the least amount 
of work and would be the least invasive change. #2, #3, and #4 require a 
stronger concept of an interest list in OpenSim, and a careful balance between 
cpu load, memory usage from state management, and network load.

John
_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev

Reply via email to