This cost can be reduced using a number of methods:
- IP multicast reduces the load on the network and means that updates need only be transmitted once, but participants still receive typically many more updates than they need. Furthermore, IP multicast is not a reliable protocol.
- Partitioning the environment into zones can help prevent the unecessary propagation of updates. Reliable multicast or unicast can then be used within these zones to transmit information. However, there are still problems due to delays in joining zones, and participants may still receive updates in which they have no interest.
- Dead reckoning can be used to predict the behaviour of an object in the virtual world in the absense of updates concerning it. This is an established technique that works well for predictable events such as those concerning an object's location, but there exist many kinds of events for which it cannot be used.
Rather than advocating any particular subset of the above (or other) techniques I am examining the properties they share in an attempt to more formally categorise the problems posed by SVEs. This analysis has made possible the design of an SVE application framework with the following features:
- Automatic code generation from a very simple description of an SVE entity. This code can easily be customised to handle cases where the default behaviour is undesirable.
- High level specification of interest: participants tell the system "I intend to carry out this action", rather than "I want to be notified of these events".
- Multiple event delivery channels allow events to be delivered reliably and with low latency to participants whose intents indicate they are interested while saving network traffic by using best-effort, bandwidth-limited communication for others.
Work is ongoing on a number of example SVEs to evaluate how successful this approach to SVE development has been.