Logic Graph idea

image
1. Overview
The entire game can be represented as a single node.
This could be an alternative representation of the Hierarchy view in Unity where the green en blue dots represent top level Game Objects.

This sort of starts from Michelangelo's idea that the sculpture is already present in the block of marble and that all we need to do is find it and expose it. This is very compatible with how Unity starts from a Scene and then allows you to manipulate objects in this scene. In a way you always start with the finished game. All you need to do is add more and more detail.

image
2. Expanding
To edit one of these objects, you drag out its node.
This object has two visible children (properties, components, etc) represented by the red dot and the black dot. It could have more children. Visibility is set in the node's Inspector, so we can ignore everything we don't need to edit.

image
3. Transform exposed
To edit one of the properties (or Components) of this object, you drag out its node.
The Transform node has three children: Position, Rotation and Scale.

image
4. Position child
We can drag out the Position node, while leaving Rotation and Scale alone.

The graph dynamically scales up the nodes that you are working on and scales down the nodes you're not working on.

image
5. Vector addition
The Position node can be turned it into an Operator. Here we see an addition Operator with two Vector nodes as children.
Each Vector node has 3 Float children: x, y and z.

image
6. Collapsing
If we don't need to edit Vector B any further, we can tuck it back into its parent node, for keeping the workspace clean.
All nodes can be tucked back into their parent nodes, up until we arrive at the single node that represents the entire game (as shown in 1.Overview)

image
7. Multiplying with Input
To edit the z Float child of Vector A, we drag it out and turn it into a multiply Operator to mutiply a speed variable (5) with the input of an Axis, for instance.

image
8. Expression
Each Operator node can be set to one of several expressions chosen from a list in its Inspector or it can be an expression typed in by hand, with variables that appear as child nodes of the expression node.