GameMachine

 
GameMachine is a tool specifically designed for visually programming game objects logic and animations.
 
It is based on the concept of Finite State Machine (FSM).
 
A Finite State Machine is a set of States connected by Transitions.
At any moment the FSM is in a state, i.e. it is doing something.
When an Event occurs the FSM passes from the current state to another state, i.e. it stops to do what it was doing and it starts to do something new.
Every state can be connected to a number of other states basing on the specific events that occur.
So if FSM is in state1 and event1 occurs it passes to state2, if event2 occurs it passes to state4, if event3 occurs it passes to state6, etc...
 
This kind of behavoiur can be summarized in the following table:
Current state
Event
Next state
state1
event1
state2
state1
event2
state4
state1
event3
state6
 
Of course tables are only one way for representing a FSM.
Another way to represent a FSM is a node based diagram that is exaclty what GameMachine does.
 
In GameMachine every State is represented as a node of a diagram and, internally, it is a collection of consecutive Actions (i.e. what FSM is doing now?).
Nodes are connected trough lines representing transitions from a state to another, every transition is triggered by an Event.