-
Notifications
You must be signed in to change notification settings - Fork 2
High level design
We describe the different components of the system. In figure 1 you can see the overview. In the rest of this document, we will further explain the interfaces. The "Engine" is a traditional game engine, for instance, flight simulator. It will be used for game physics and collision detections. The "Game Engine" is a wrapper, containing the "Engine". It will output events such a collisions, position, direction, speed, health, etcetera. It also reads messages send by the drones, such as firing bullets, movement intentions and passes this on to the "Engine".
"Game Drone" contains processing functions for events like collisions, health reduction, payload, etcetera.

The drone state is an object containing the state given by the engine. It contains attributes like position, heading, velocity, velocity heading, acceleration, and acceleration heading. The engine also tells the game engine, that there have been collisions. The drone state can then apply a set of rules to the state given by the engine. On a collision, it can deduce the exact component that has been hit, reduce the health of a component, put the drone to a full stop. After all the rules have been applied, the state of the game has been changed and the state is written back to the engine.
State:
- stateElementAttributes
- getters()
- setters()
- writeValuesToEngine()
- publishValuesToComponents()
EngineWrapper:
- getStateElementAttributes(component)
- publishStateElementAttributes(component)