Flow of Resources

previous: Machinations Framework, next: Flow of information

The Machinations framework utilizes the idea of 'internal economy' (Adams & Rollings, 2007) to model activity, interaction and communication between game parts within the game system. A game's economic system is dominated by the flow of resources. In games resources can be anything: from money and property in Monopoly, via ammo and health in a first person shooter game, to experience points and equipment in a role-playing game. More abstract aspects of games, such as player skill level and strategic position, can also be modeled through the use of resources. A game's internal economy consists of these resources as well as the entities or actions that cause them to be produced, consumed and exchanged. In the case of Risk, territories, armies and cards are the main resources; the player's option to build will produce more armies, while with an attack the player risks armies to gain territories and cards.

Nodes and Resources
In order to model a game's internal economy Machinations diagrams uses several types of nodes, that pull, push, gather and distribute resources. Resource connections determine how resources move between elements and while state connections determine how the current distribution of resources modifies other elements in the diagram. Together, these elements form the essential core of Machinations diagrams. This section explains the basics of resource flow. The next section discusses different types of state connections.

Machinations diagrams represent the flow of resources between different game elements. In this respect, Machinations diagrams are dynamic: just like tokens in a Petri net can move between places, resources in a Machinations diagram can move between nodes. The flow of resources is dictated by resource connections represented as solid arrows connecting the nodes of the diagram. The state of the game corresponds to the distribution of resources over the nodes (see figure below). Thus on one hand, a Machinations diagram represents a single state a game can be in, but on the other it determines subsequent states that are its direct result. The nodes and connections of the diagram visualize the structure that ultimately shapes the probability space of game states. The static version of Machinations diagrams accompanying this text obviously cannot display the state changes over time. The distribution of resources in a static Machinations diagrams always represent a game's initial state, unless stated otherwise.



Node Activation Mode
If in a Machinations diagram the nodes are active: they can fire and by firing they cause resources to be redistributed. A node in a Machinations diagram can be in one of three different activation modes:


 * A node can fire automatically: it fires at intervals determined by the diagram's time mode (see below). All automatic nodes fire simultaneously.
 * A node can be interactive, which means that it represents a player action and fires in response to that action. In the dynamic version of a Machination diagram, interactive nodes fire after users click on them.
 * A node can be passive, which means it can only fire in response to a trigger generated by another element (see flow of information). Passive nodes still accumulate resources.



Machinations Diagram Time Mode
As Machinations diagrams are dynamic it is important to understand how they handle time. There are three different time modes for Machinations diagrams:


 * 1) In synchronous time mode all automatic nodes are activated at regular intervals of arbitrary length specified by the user. All interactive nodes clicked by players fire at the next time step, at the same time when automatic nodes fire. In this mode all actions in one time step take place simultaneously. It is possible to for a user to activate multiple interactive nodes during a time step, but during a time step, each interactive node can only be activated once.
 * 2) In asynchronous time mode automatic nodes in the diagram are still activated at regular intervals of arbitrary length specified by the user. However, players can activate interactive nodes at any time within the intervals and the resulting actions are executed immediately. In this case an interactive node can be activated multiple times during a time step.
 * 3) Alternatively, a Machinations diagram can be in turn-based mode. In this mode time steps do not occur at regular intervals. Instead a new time step occurs after the player has executed a specified number of actions. This is implemented by assigning a number of action points to each interactive node and allotting players a fixed budget of action points each turn. After all action points are used, all automatic nodes fire and a new turn starts.

The flow of resources from node to node is instantaneous: resources simply disappear and reappear at their new location. However, in order to help designers understand how the internal economy works, the Machinations tools can be set to visualize the resource flow by animating the movement of the resources along the resource connections. This is a visual aid only and does not affect the diagram in any way.

Resource Connections
Resource Connections, that dictate how resources are distributed when nodes fire, have a label that determines the flow rate. Many labels are numbers indicating a fixed flow rate, but the Machinations framework also uses simple expressions or icons to represent flow rates based on randomness, skill or other uncertain factors outside the game mechanics. When the label is omitted, the flow rate of a resource connection is considered to be 1.



Pools
The most basic nodes connected by resource connections are pools. They are represented as open circles. A pool collects resources that flow into it. Pools can be used to represent any collection of resources in a game. For example, the money possessed by a player of Monopoly can be represented as a pool, the money in the 'bank' can be represented as another pool. The resources themselves are represented as small dots. Different colors can be used to denote different types of resources. Alternatively, to avoid visual clutter, the number of resources on a pool can be represented as a number. Resource connections that lead into a node are considered to be its inputs while resource connection that lead out of a node are considered to be its outputs.

The activation mode of a pool is indicated by its visual appearance. Passive pools have a single outline, interactive pools have a double outline, automatic pools have a single outline and are marked with a star ('*'). When a pool fires it will try to pull resources through its inputs. The number of resources pulled is determined by the rate of the individual input resource connection. Alternatively, a pool can be set in `push mode'. In this mode, a pool will push resources along its outputs when fired. Again, the number of resources pushed is determined by the flow rate of the output resource connection. A pool in push mode is marked with a 'p'. A pool that has only outputs is always considered to be in push mode, in which case the marker is omitted.



Simultaneous Pulls
It might happen that two pools try to pull resources from the same source simultaneously, while there are not enough resources to serve both pools. For example, in the diagrams below, every time step pool B automatically pulls one resource from A and both C and D attempt to pull one resource from B. This means that after one time step, B will have one resource and C and D will both try to pull it. How this is resolved depends on the the time mode. In synchronous time mode, neither C nor D can pull the resource. After two iterations when B has pulled a second resource, both C and D will pull one resource from B. While the diagram runs, C and D will both pull a resource once every two time steps simultaneously. As A starts with nine resources, after nine time steps C and D will have four resources and one resource will remain on B. The state of the diagram will then no longer change.



In asynchronous or turn-based mode, either C or D will pull a resource one. Which pool has priority is initially random; subsequently, the priority alternates every time step. This means that C and D will both pull one resource from B on alternating time steps and eventually there will be four resources on C and five on D, or vice versa.



previous: Machinations Framework, next: Flow of information