Jump to Navigation

SceneMaker

SceneMaker is based on state machines and uses a graphical user interface in its authoring tool. Basically the story progresses by reaching certain states (activating certain state nodes). These nodes are connected by transitions. The nodes and transitions are representing in that way also the branched structure of the story. More complexity is reached by the possibility to use hierarchical nodes and parallel processing.

Conditions are represented by special transitions (arrows) which can be seen in the figure below, a screenshot from the authoring tool.

SceneMaker01

The meaning of this graph is the following:

IF ( mWatchOutConvinced == true ) THEN
      ACTION: 
            GOTO_node_named_Convinced
ELSE 
      IF ( mWatchOutConvinced == false ) THEN
            ACTION:
                 GOTO_node_named_Sceptical

Taking a closer look at the condition itself, shows that it follows the already known structure (see figure below).

SceneMaker02

In the previous graph no final ELSE is present, because there is no need for it, the variable mWatchOutConvinced can only be true or false because it is Boolean. But an ELSE branch can be added, resulting in the figure below, in which the grey arrow represents the ELSE and leads to a node named Error.

SceneMaker03

Effects are commands that are connected to a state/node. In the figure below, the operaction mChanceOfSuccess := mChanceOfSuccess + 1 is executed, what means that the value of the variable mChanceOfSuccess was raised by 1.

SceneMaker04

A closer look at the effect shows also the already known structure (see figure below).

SceneMaker05

The fact that the same variable (mChanceOfSuccess) is found on both sides of the equation means that the old value of the variable is taken, added to 1 and then saved into the variable, overriding the former value.

The SceneMaker system can use different kinds of variables as conditions. Because of its modular architecture it is also possible to directly use system variables or variables from other modules, for example the results of a speech recognition. For the same reason it can call operations from other modules as effects, for example triggering the playing of a video by an external player component.

SceneMaker offers authors a visual feedback for different kinds of conditions. For example unconditioned transitions are grey and typical ones are yellow. But there are also green ones that are probabilistic and can switch to certain nodes randomly. Authors can define the probabilities themselves by a percentage value. Brown transitions are timeout conditions, which are progressing to the next node after a certain amount of time authors can set. And there are also red transitions that can interrupt everything inside in a super node if a certain condition is met.




by Dr. Radut.