Types of Actions

Framework Actions

Metacosm's interaction engine provides a set of primitive Actions that provide game developers with a sort of assembly language to create new Actions without having to write code. See Dynamic Actions for more details. Framework Actions are closely tied to the implementation of the framework since they provide the basic facilities to act on Entities. They are coded directly in Java.

Instance Actions

Instance Actions are Actions that have been coded in Java and then compiled. They are made available to the interaction engine via dynamic loading. At the implementation level, they are really close to framework Actions since both are compiled code. However, framework Actions are part of the framework and provide, most of the time, means of interacting on Entities that would otherwise be impossible. Instance Actions are Metacosm instance specific even though it is possible to envision that really useful instance Actions could mature to the point of becoming framework Actions.

Dynamic Actions

Dynamic Actions are Actions that are NOT compiled and that don't need to be written in Java to be used in Metacosm. They are the means via which game developers can create new Actions without knowing how to program in Java. More precisely, they can be defined via a graphic editor that allows the chaining of already defined Actions (whether those are framework, dynamic or instance Actions) to create new and/or more complex Actions. They could also be automatically generated (without human input) as well. We can imagine that dynamic Actions could be re-written in Java over time to improve efficiency when a programmer is available. However, such an operation shouldn't be needed to enjoy Metacosm and create new Actions. Moreover, dynamic Actions are the only (current) possibility for the interaction engine to create new Actions on the fly when so needed.

Automatic Actions

It is pretty difficult to find an adequate system for hard-time constraints Interactions. A more elegant solution than this problem would be to enable Actions to be made automatically  when a request cannot arrive in due time or has been  lost. This solution has the advantage to be relatively simple and efficient. Metacosm's Interaction engine could automatically provide default Actions. It could however be  more gratifying for users if they were able to define which Action to be undertaken in case they cannot respond in a short enough time to maintain tight timing constraints.      

Inside the Game, Automatic actions can be seen as the Reflexes of an Entity. As regular actions, Automatic actions are defined by Influences. Additionnaly, they can be parametred by the controller (ie the player for a player Entity) and activate themselves when the context requires it. More precisely, Automatic Actions are actions with a minimal AI code which is able to activate the Action automatically.

Practically it means that controlled Characters will be able to defend themselves spontaneously to attacks even if their controller do not react in time.