<aside> ℹ️ Visual notation, resource flow, economies, simulation, balancing

</aside>

Game Design Tools – Main Page

Game Design Patterns

A Deck of Lenses

Machinations


Description

Machinations is a visual language for diagramming game economies, and a tool for drawing, and above all, simulating them without writing code (Adams & Dormans, 2012b, p. 1).

Machinations' diagramming system affords the precise notation of both high and low level game loops and mechanics, where the diagrams can also be simulated to observe the flow of tokens. The simulations can be interacted with in real-time, while charts offer to plot and visualize variables over time. As such, Machinations doubles as a powerful balancing and prototyping tool.

Originally developed by Joris Dormans in 2009 as a Petri-net inspired software tool extending the "resource flow" model (Rollings & Adams, 2003), it has since spawned the company Machinations S.àr.l, hosting and continuously updating the software tool online at Machinations.io.

Example

Screenshot from Intro Tutorial: Step 4 of 5 (https://my.machinations.io/)

Screenshot from Intro Tutorial: Step 4 of 5 (https://my.machinations.io/)

This diagram represents an endless runner game. The player is awarded increasing amounts of coins for the distance passed, but hitting an obstacle results in game over.

From the Sprint source node, five resources flow towards the Distance pool with every step. Depending on the amount of resources stored in Distance (aka distance passed), the condition of one of the three connectors below is true, adding one, two, or three resources towards the Coins pool.

On the left side of the diagram, the Difficulty Factor pool is increased by one every two steps. When the Difficulty Factor exceeds one (after three steps), the Obstacles source feeds one resource into the Chance of Error gate with every step. As the gate is randomized, on a chance of 10% a resource is transferred to the Player Crashes pool, which then triggers the Game Over end condition, ending the simulation as the player has accumulated seven coins.

Application

Design Notation

Machinations provides a clear and standardised syntax of nine nodes, two connection and five resource types that can be simultaneously edited by multiple users. As demonstrated in the example, resources are not restricted to money, but can be used to represent any measurable unit in games, such as ammunition, health, experience, skill points, player skill, etc. As such, Machinations diagrams can display systems ranging from the exemplary endless runner game to entire crafting systems, gotcha mechanics, idle games, skill trees and more.

Simulation

The simulation of a diagram offers the observation of a resource flow in real-time with variable play speeds and allows simultaneous user interaction and plotting of selected values via charts. In addition to that, it enables the server sided stochastic simulation of player journeys and Monte Carlo sampling. These serve as a powerful aid for prototyping and balancing systems. Furthermore, design parameters and simulation outcomes can be exported to spreadsheet tools for further analysis, while an engine-agnostic API provided the opportunity of syncing game and diagrams seamlessly.

Knowledge base

With 160 freely available diagram templates, Machinations also serves as a knowledge base of game systems. The book Game mechanics: Advanced Game Design (Adams & Dormans, 2012a) also doubles as an advanced game design textbook as well as an introduction into the Machinations framework with a library of patterns.