Skip to content

High level design

Wybren Kortstra edited this page Mar 3, 2017 · 2 revisions

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.

Drone State

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)

Clone this wiki locally