Game middleware
The AGORAS model supports the description of ecosystems, and how several special elements (event types, primitive types, actions, etc.) are instantiated beyond the particular elements specified by the user. The figure below shows the logical view of the AGORAS middleware. Basically, it is divided into three separated layers. Firstly, the Ecosystem Definition layer contains all the definitions and data describing the ecosystem in full, in terms of the meta-model. This Model layer offers services to retrieve all the relevant elements and query the model as needed by the Controller layer.
Secondly, the Ecosystem Simulator layer is responsible for the simulation process. It holds the core functionality to orchestrate the simulation of a stage. Basically the simulator has to take a stage to be simulated from the ecosystem, and all the data from the Model layer. The simulator has an event queue for the event occurrences produced during the simulation. Three types of events are queued: those thrown by the actions when executed in this layer, those being consequence of the physical simulation carried out by the underlying physics engine; and those related to the gestures or interactions of the user on the surface. This queue is regularly consumed by the rule processor, which determines which rule must be triggered, and eventually performs the execution of the action of the matched rules. In this way, the simulator controls the evolution of the stage simulation. Thirdly, the Ecosystem View layer is responsible for visualizing the representation of entities under simulation. It offers a core set of view services that allow us to include entities and change their visual properties.
The implementation of the AGORAS middleware supports the instatiation of models from game specifications. To illustrate and prove its functionality several basic game ecosystems have been specified and tested. They are AGORAS versions of vintage videogames such as Pong, Asteroids and Arkanoid.
[Video: Pong, Asteroids, Arkanoid]
© Alejandro Catalá and the respective copyright holders for specific materials