-
Notifications
You must be signed in to change notification settings - Fork 26
ArbiterClientView
Halcyon contains what is known as a ClientView object that processes messages from the simulator and is responsible for general communication between a client program and the simulator.
To reduce the responsibility of the Halcyon server to perform message fan-out, we will create virtual client instances for each user connected to the simulator via an arbiter. This will require a higher level protocol between the simulator and arbiter that tags the clients that should receive a message as part of the message body.
We will send messages in batches at a specified rate (30 hz?). This will ensure that if there are multiple (even dozens of) clients requiring the same message, they are queued together within the same quantum of time and sent out as a single flatbuffer.
We will begin by supporting the ObjectUpdate (full update), KillObject, and the TerseUpdate (movement) messages. This will allow users to see the objects in a scene being streamed live to their view as well as view objects moving around the scene.
The UDP ObjectUpdate describes nearly the entire state of a primitive object existing inside a simulator. Much of this data is not really required to display an object, and so when we create a flatbuffer serialized version of this message, we will strip out unnecessary fields
Minimally to support conversion to a babylon flatbuffer, we will require the following:
- Home
- Development
- Installation
- Configuration
- Downloads
- Contributing
- Supporting old and new grids
- Reporting a problem
- Documentation
- Future