
272 V GameEngineDesign
The engine aspects must be aware of and react to such changes in the simu-
lation state. While this could be performed by aspects continuously inspecting
elements of the scene for change, it would be prohibitively slow. A more efficient
solution is to maintain a queue of events describing such changes that each as-
pect can review during its update, ignoring any events that are not relevant to
its function.
Events use a similarly flexible definition to the rest of the engine. Each event
has an identifier describing the nature of the event and can provide two pointers
to either nodes or data within specific nodes. This is sufficient to ...