Pattern Library

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:

Engines
Engines generate resources that may be required by other mechanics in the game.

Static Engine
A static engine produces 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.

Dynamic Engine
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. This pattern gives the player more control over the production rate than a static engine does.

Converter Engine
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 more complex mechanism to provide the player with more resources than a static or dynamic engine provides. (Our example converter engine contains two interactive elements while the dynamic engine contains only one.) It increases the difficulty of the game because the strength and the required investment of the feedback loop are more difficult to assess.


 * You need multiple options and mechanics to tune the profile of the feedback loop that drives the engine and thereby the stream of resources that flows into the game.

Engine Building
With this pattern, 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.

Friction
Friction patterns drain resources out of an economy, reduce its productivity, or both. You can use them to represent loss or inefficiency.

Static Friction
A drain automatically consumes resources produced by the player. Use static friction when:


 * You want to create a mechanism that counters production but that can eventually be overcome by the players.
 * You want to exaggerate the long-term benefits from investing in upgrades for a dynamic engine.

Dynamic Friction
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 and automatically scales with players’ progress or power.
 * You want to reduce the effectiveness of long-term strategies created by a dynamic engine in favor of short-term strategies.

Stopping Mechanism
This pattern reduces 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.

Attrition
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 whose nature is determined by the strategic preferences and/or whims of the players.

Escalation
Escalation patterns put pressure on the player to deal with growing challenges.

Escalating Challenge
Progress toward a goal increases the difficulty of further progression. Use escalating challenge when:


 * You want to create a fast-paced game based on player skill (usually physical skill) in which the game gets harder as the player advances; his ability to complete tasks is inhibited as he goes.
 * You want to create emergent mechanics that (partially) replace predesigned level progression.

Escalating Complexity
Players act against growing complexity, trying to keep the game under control until positive feedback grows too strong and the accumulated complexity makes them lose. Use escalating complexity when:


 * You aim for a high-pressure, skill-based game.
 * You want to create emergent mechanics that (partially) replace predesigned level progression.

Arms Race
Players can invest resources to improve their offensive and defensive capabilities against other players. Use arms race when:


 * You want to create more strategic options for a game that uses the attrition pattern.
 * You want to lengthen the playing time of your game.

Miscellaneous Patterns
The remaining patterns in our library don’t fall into any other category, so we have collected them here.

Playing Style Reinforcement
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.

Multiple Feedback
A single gameplay mechanism feeds into multiple feedback mechanisms, each with a different profile. Use multiple feedback when:


 * You want to increase a game’s difficulty.
 * You want to reward the player’s ability to read the current game state.

Trade
This pattern allows trade between players to introduce multiplayer dynamics and negative, constructive feedback. Use trade when:


 * You want to introduce multiplayer dynamics to the game.
 * You want to introduce negative, constructive feedback.
 * You want to introduce a social mechanic that encourages players to interact with one another via commerce (as opposed to combat).

Worker Placement
The player controls a limited resource she must commit to activate or improve different mechanisms in the game. Use worker placement when:


 * You want to introduce constant micromanagement as a player task.
 * You want to encourage players to adapt to changing circumstances.
 * You want to introduce timing as a crucial factor in successful strategies.
 * You want to create a subtle mechanism for indirect conflict.

Slow Cycle
This is a mechanism that cycles through different states slowly, creating periodic changes to the game’s mechanics. Use a slow cycle when:


 * You want to create more variation by introducing periodic phases to the game.
 * You want to counteract the dominance of a particular strategy.
 * You want to force players to periodically adapt strategies to shifting circumstances.
 * You want to require a longer period of learning before achieving mastery of the game. (Players experience slow cycles less frequently, so have fewer opportunities to learn from them.)
 * You want to introduce subtle, indirect strategic interaction by allowing players to influence the cycle’s period or amplitude.

Meta Pattern
A description of how patterns should be written can be found here