At its core, the Machinations framework is based on:
All game systems consist of elements in a constant flow of Resources.
Resources can be anything from money and property in Monopoly, ammo and HP in an FPS, or XP and equipment in an RPG.
🔧 Below is an example of how Sources, Pools and Drains work. Notice the Nodes are linked together by Resource Connections (arrows) with a Label representing the rule by which the Resources will flow between Nodes.
The Source, once clicked, produces 3 Resources which will be transferred to the Pool
The Drain consumes 3 Resources from the Pool
The Random Source randomly produces between 1 and 6 Resources each time it's clicked. The D6 Label notation stands for "Die 6". To establish the flow rate for each step, Machinations simulates the throw of a 6-faces die and the Source produces the resulted number of Resources
The Drain All Drain consumes all Resources in the Pool
📖 More on:
🔧 Here's a visual of how Converters and Traders work.
The Converter transmutes 3 Resources from the origin Pool into 1 other Resource
The Trader exchanges 2 Coins for 3 Wood and moves these Resources into their respective repository: Coins to Pocket; Wood to Woodshed
📖 Dive into:
🔧 Gates are more complex Nodes, but the basic is that they redistribute Resources deterministically or probabilistically.
The Deterministic Gate redistributes 9 Resources from the origin Pool and transfers them to each of the target Pool, according to the Labels, which in this case represent the weights of the outcomes
The Probabilistic Gate redistributes the 10 Resources from the origin Pool and transfers them to each of the target Pools according to the probability on their Labels
📖 Further reading:
All the examples above feature Resource Connections. Full arrows that determine the way in which Resources flow through the diagram. More on this:
🔧 State Connections, on the other hand, modify the state of an element. Here's how:
In the example above, the State Connection modifies the Label on the Resource Connection, and alters the flow of Resources function to the number of Resources in the Pool. As such, it adds to the initial Label parameter (1) the number of Resources stored by the Pool after each Time Step.
There's more to State Connections than this, tough. They can modify Nodes' state and act like triggers or activators.
📖 More on: