Machinations diagrams are a good vehicle to capture and reason about recurrent patterns in the internal economy of games. Below you can find an overview of 13 patterns that have been documented thus far:
Produce a steady flow of resources over time for players to consume or to collect while playing the game. Use a static engine when:
- you want to limit players' actions without complicating the design. A static engine forces players to think how they are going to spend their resources without much need for long-term planning.
A source produces an adjustable flow of resources. Players can invest resources to improve the flow. Use a dynamic engine when:
- you want to introduce a trade-off between long term investment and short-term gains.
Two converters set up in a loop create a surplus of resources that can be used elsewhere in the game. Use a converter engine when:
- you want to create a delicate mechanism to provide the player with resources. It increases the difficulty of the game as the strength and the required investment of the feedback loop are more difficult to asses.
- you need multiple options and mechanics to tune the signature of the feedback loop that drives the engine, and the thereby the stream of resources that flow into the game.
A significant portion of gameplay is dedicated to building up and tuning an engine to create a steady flow of resources. Use engine building when:
- you want to create a game that has a strong focus on building and construction.
- you want to create a game that focuses on long-term strategy and planning.
A drain automatically consumes resources produced by the player. Use static friction when:
- you want to create a mechanism that counters production, but which can eventually be overcome by the players.
- you want to exaggerate the long-term benefits from investing in upgrades for a Dynamic Engine.
A drain automatically consumes resources produced by the player, the consumption rate is affected by the state of other elements in the game. Use dynamic friction when:
- you want to balance games where resources are produced too fast.
- you want to create a mechanism that counters production that automatically scales with players' progress or power.
- you want to reduce the effectiveness of long term strategies created by a dynamic engine in favor for short term strategies.
Reduce the effectiveness of a mechanism every time it is activated. Use a stopping mechanism when:
- you want to prevent players from abusing particular actions.
- you want to counter dominant strategies.
- you want to reduce the effectiveness of a positive feedback mechanism.
Players actively steal or destroy resources of other players that they need for other actions in the game. Use attrition when:
- you want to allow direct and strategic interaction between multiple players.
- you want to introduce feedback into a system which nature is determined by the strategic preferences or whims of the players.
Other Patterns (no categories yet)
By applying slow, positive, constructive feedback on player actions, the game gradually adapts to the player’s preferred playing style. Use Playing Style Reinforcement when:
- you want players to make a long-term investment in the game that spans multiple sessions.
- you want to reward players for building, planning ahead, and developing personal strategies.
- you want players to grow into a specific role or strategy.
Players act against growing complexity, trying to keep the game under control until positive feedback grows to strong and the accumulated complexity makes them loose. Use escalating complexity when:
- you aim for an addictive, skill based game.
Player progress towards a goal increases the difficulty of further progression. Ues ecalating complications when
- you want to create a fast-paced games based on player skill where the game needs to adjust quickly to the player's skill level.
A single gameplay mechanism feeds into multiple feedback mechanisms, each with a different signature. Use multiple feedback to:
- increase a game's difficulty.
- emphasize the player’s ability to read the current game state.