The Wonderland Cell
Although not complete the Cell infrastructure in Wonderland is, I hope, in a reasonable state. What is a cell you ask, well read on.....
A Cell is an area of space in the 3D world bounded by a specified Bounds (usually a Box at the moment). Cells are arranged in a spacial hierarchy which allows efficient searches to locate identify the cells which are relevant to a certain Avatar. Cells can move, and as a result may have multiple parent (or container) Cells. The other key aspect of Cells in Wonderland is that they provide a spacial scope of the Darkstar Channels. Without going into all the details (you can read that on the Darkstar home page) the channel is communication layer of Darkstar. In wonderland I plan to use the Cells to provide scope to the channel and therefore the bandwidth requirements of each client.
As an avatar moves away from a Cell that Cell goes out of scope and the leaves it's channel, therefore no longer receiving packets of data.
I plan to use the Status value in the Cell to further refine this. There are 2 distinct associations of a Cell with an Avatar
1) If the Cell is in the view frustum of the avatar, in other words actually visible (ignoring occlusion) then obviously all the data in the Cell must be upto date and all changes applied in a timely fashion.
2) If the Cell is close to the avatar, but outside the view frustum, then we may not want to keep the geometry updated, but we must still service things like audio.
For example, imagine a virtual Video screen. When the screen is in front of the avatar we obviously have to deliver the video and sound to the clients Cell, however if the video is behind the avatar we can reduce bandwidth by only delivering the audio.
Well thats enough rambling for me for a while, back to writing code....