Skip to main content


Joel Dubray: A systems design guide to chess, Pokémon and making tea

Systems design is something of a mystery to a lot of people but there’s an easy way to understand how systems designers think. Better yet, it can help you in your own efforts to deconstruct and analyze competitors’ games or in the creation of new features for your games.

Systems Design: What the heck is it?

In order to understand systems design, we first have to understand what a system is. At its most basic, a system is a combination of game mechanics, parameters, inputs, outputs and dynamics. Here’s a quick definition of each, using the game of chess to illustrate each component:

Mechanics: A core component of a system that, when interacted with, changes the game state, thus providing gameplay. It’s the core of a game and how the game behaves. In chess, a player can move their pieces.

Parameter: The individual values that define the scope and behaviour of mechanics. It can be an individual value, a set of values, or even a function/formula. The value is numerical or measurable. In chess, a knight can move three places in an L-shape.

Input: An operation or action taken by the player or the system itself. The interaction between the player and the game that can be active or passive. In chess, this is the player moving the piece with their hand.

Output: The result that is produced when the game state is changed. The output is generally affected by the combination of mechanics, parameters, and input. In chess, a player moves a pawn and now that pawn is on a new tile.

Dynamic: The run-time game state created by the interaction between game, mechanics, parameters, inputs and outputs. AKA gameplay. In chess, a player moves his pawn onto an already occupied tile and takes over the tile, eliminating the previous occupant.

Let’s get visual!

Systems design takes these components and organizes them into patterns and storytelling. Yes, there’s math involved, but don’t let that give you anxiety! Instead, a focus on patterns helps us to simplify systems design by making it visual.

Patterns provide a rudimentary strategy for deconstructing a game and visualizing its system design. Let’s take Pokémon Go! as an example. It’s great because it meets all our criteria: there is a plethora of mechanics (catching, battling, Pokéstop, spinning, egg hatching, events and quests), parameters (XP, combat power, candy requirements, catch rates, spawn rates, drop rates), inputs (incense, lucky egg, star dust, TMs, balls, berries), and outputs (Pokémon, XP, currency, consumables).

Looking at Pokémon Go! in terms of systems design means taking this information and organizing it visually either as graphs, diagrams, flowcharts, timelines, etc. To do so, you can use Flowcharts, UML, Machinations – or you can make up your own! Here’s one approach to visualizing Pokémon Go:

Start with the game system components:

Give each mechanic an icon and number them, then add a timeline:

Layer in your inputs and outputs:

Colour code your inputs and outputs if you want to help visualize:

Now we’ve successfully visualized the Pokémon Go! story with our own language. BUT wait! This story is not the system, but one path through the system. This is only the first step in organizing the information, but one that should help you flesh out the rest of the system.

There is a one gap in the Pokémon Go! system we’ve diagrammed so far and that is catching candies. How do we catch candies? By catching Pokémon. But how do you catch Pokémon? That takes Pokéballs. And where do you get Pokéballs? From spinning the Pokéstops!

By following these resource connections, we’ve created something we call the “core loop.”

When we layer in the resource connections with our mechanics our system takes shape and you get an overarching idea of the player journey. And you can start to see some of the drawbacks or some of the things that you gain from the decisions you make. The most important part is that when you are deconstructing or mapping or building a new feature is that you understand it and the people around you can understand it at a glance.

Visualizing systems design is the first step to understanding it and thinking like a systems designer. If you want a challenge, try to break down and visualize the system of making coffee or tea. What are the inputs/outputs/mechanics/parameters? You can do the same challenge with other systems in your everyday life to practice your new-found skill.

Joel Dubray
Creative Director