Application Protocol
Goals
- Network clients manipulate virtual world
- Equipotent clients
- Persistence
- State consistency
Paradigm
- Message/Event based
- Universal sequencing, reliable delivery
- Event type, event streams
- State available on the wire
Clients maintain state of interest
- Environment composed of objects
Objects have multiple components
Clients own components
- Lock, modify, release model (distributed database)
- Clients responsible for honoring ownership
Example
Client wishing to move an object in the virtual world
- Broadcast ownership request for the object's transformation matrix component
- ... Possibly wait for ownership request to return
- Broadcast new transformation matrices for object (set transformation request)
- Release object's transformation matrix
All clients interested in this object's position
- Receive ownership request
- Assign ownership only if it is not already owned
- ...
- Receive set transformation request
- Set object's transformation only if this message is from the owner