Thinking in Systems

Books, Video Games

Book cover of Thinking in Systems: A Primer by Donella Meadows

There is a certain class of books (Understanding Comics, The Design of Everyday Things) that aren’t ostensibly about video games, but have still found their way into the informal game design canon. Having recently read Thinking in Systems: A Primer by Donella Meadows, I believe it also deserves a spot on that list. The book covers a wide range of tools and methods for systems thinking, but I’d like to focus on one technique in particular and how it could apply to game design.

Stock-and-flow diagrams are used to model the interconnections between elements of a system. As the name suggests, they define systems in terms of stocks and flows. Stocks are “the elements of a system that you can see, feel, count, or measure at any given time”; they are shown as boxes.

Flows are what cause stocks to change over time. Inflows and outflows are depicted as thick grey arrows (going to or coming from a stock, respectively). The rate of a flow is represented by a faucet, because it can be adjusted higher or lower.

No SVG support

If the rate of a flow changes based on the level of a stock, then this creates a feedback loop. There are two types of feedback loops. Balancing loops seek to maintain equilibrium and resist change within a system (in game design this is often called negative feedback). Reinforcing loops are the opposite; they enhance any direction of change imposed on the system (positive feedback). In stock-and-flow diagrams, feedback loops are represented by thin curved lines.

Clouds represent the boundary of the system. The boundary is an intentional choice of what is considered inside and outside the system for the purpose of analysis and conversation. In reality, “there are no separate systems. The world is a continuum.” The boundary only exists in our mental model, and thus it must occasionally be reevaluated to suit the problem at hand.

Here’s a simple real-world example as given in the book.

No SVG support

In this example, the temperature in a room is a stock. Heat flows into the room from the furnace, and the rate of inflow is determined by the thermostat. It turns the flow on/off based on the difference between the temperature in the room and the goal temperature setting. Heat also flows out to the air outside. The rate of outflow is determined by the discrepancy between the indoor and outdoor temperatures. The rates of inflow and outflow are both affected by the current level of the temperature stock, which indicates that we have two feedback loops (both balancing).

Like the real world, video games are also built out of many complex systems. We can use stock-and-flow diagrams as a tool to better understand the structure of these systems.

Of course, gameplay systems are not always visible from the player’s point of view. Jennifer Scheurle explored this topic in her 2018 GDC talk entitled “Good Game Design is like a Magic Trick”. Mechanics are sometimes intentionally obfuscated to create a specific aesthetic effect for the player. For instance, consider the health system in Assassin’s Creed Origins as discussed in her talk.

No SVG support

From the player’s perspective the system is fairly straightforward. Their health is divided into three equal segments. Unless they have recently taken damage, it will regenerate over time up to the maximum of the current segment. This dynamic encourages the player to fight tactically, dancing in and out of combat.

However, game director Ashraf Ismail revealed that the player’s health is also affected by hidden “safety belt mechanics”.

No SVG support

There are two hidden systems that modulate the amount of damage taken. If the player’s health is above 66% (two full segments), then they cannot be taken below 7% health in one blow. This is true even if the attack would have outright killed them. The purpose of this mechanic is to provide a buffer against the negative emotion of perceived “cheap shots”. Given the chaos of battle, it feels subjectively unfair to be taken down suddenly from high health. A similar system exists for enemies with firearms. The first shot from offscreen is forced to miss, which gives the player a “fair” warning and an opportunity to react.

We know that the player’s health regenerates in combat after not taking damage for a few seconds. However, the rate of regeneration is secretly increased when recovering the final segment of health. Furthermore, the last sliver of health shown in the UI represents more actual health points than its appearance would proportionately suggest.

Ashraf (as quoted in the GDC talk) explains that these mechanics exist “to make every fight tense & interesting. We want to nudge the system to have players lose health more quickly at the start of the combat segment, and employ safety mechanics further down the track to generate an experience to make players feel like they are escaping this combat situation by the skin of their teeth.”

Another example of a hidden feedback system is the inventory balance system in Bioshock.

No SVG support

Paul Hellquist explains that “Bioshock tries to make players […] constantly be hungry for key resources such as ammo and health.” However, this is difficult to achieve given the wide range of player skill levels. Without perfect balance, one player might overflow with supplies while another can hardly keep their gun loaded. Neither player would be having the intended aesthetic experience of operating on the “ragged edge”.

To achieve the desired inventory balance, Bioshock modulates the item drop rate based on the player’s current inventory. For example, novice players are less accurate with their weapons and take more damage from enemies, thus consuming ammo and health kits at a greater rate. This outflow of consumed items reduces the level of the inventory stock. The system reacts with balancing feedback, increasing the item drop rate to replenish the stock.

No SVG support

We developed a similar balancing feedback system for the dynamic difficulty in Uncharted 4. When a player dies repeatedly in combat, the system starts making small adjustments to the combat tuning variables. Enemies get a bit more inaccurate and drop more ammo. Buddies provide more assistance, and mid-combat checkpoints happen more frequently. As the player gets unblocked and makes progress, the system slowly moves the tuning back to its original values.

Jennifer Scheurle highlights another feedback example from Uncharted 4, as related by lead designer Kurt Margenau.

No SVG support

In a scripted climbing sequence, the player lands on a rock that begins slowly coming loose. They must scramble to the top of the rock and jump off before it collapses down the cliff face. The goal is to have Nathan Drake barely make the jump, regardless of the player’s skill level. To achieve this, the designer uses perfect climbing input as a baseline (tracking progression along a spline vs time). If the player falls behind that baseline, then the animation speed of the falling rock is dynamically slowed. Less skilled players will have a more forgiving climb while maintaining that “skin of your teeth” feeling.

While the previous examples show how feedback loops in action-adventure games are often hidden from the player, what about games that make systemic complexity the star of the show?

No SVG support

Banished is city-building strategy game, which means that it’s fundamentally a game about managing the complex interactions between dozens of stocks and flows. The town’s population affects both the birth rate (reinforcing loop) and the death rate (balancing loop). Having more farmers increases the food supply (reinforcing loop), but also the food consumption (balancing loop). Food demonstrates how stocks can act as “shock absorbers” in a system; the village doesn’t immediately starve when the inflow of food is severely reduced in the wintertime.

Figure 7 shows the particular interactions between population and food stocks, but Banished features dozens of stocks (clothing, tools, housing, etc.) that follow similar dynamics. The goal of the game is to keep all of these interactions in balance. Otherwise, a cascading failure could destroy the integrity of the entire system (i.e. everyone dies).

Connecting this back to the real world, I wonder: what do we learn when we play video games? Eric Zimmerman notes that:

“Playing games requires a kind of systems literacy that no other medium demands – to understand rules and patterns, and to learn them on the fly. After all, unlike other forms of games, video games do not display their entire ruleset (if indeed any of it) up front; instead, the player has to play with the world and infer the system behind it.”

Games require us to grapple with multiple complex systems (even when they’re hidden). Playing a game involves observing the behaviour of systems, making a mental model of them, and predicting how they will react to new input. They embody what Donella Meadows calls the “central insight of systems theory”: systems behave according to their structure and reveal their structure through their behaviour.

Systems thinking in turn makes us better equipped to understand the world around us. It can help us to make more informed decisions about ecology, finance, politics, etc. “You can’t navigate well in an interconnected, feedback-dominated world unless you take your eyes off short-term events and look for long term behaviour and structure.” Systems thinking is an antidote to a world that fixates on individual events, rather than “seeing in their history clues to the structures from which behaviour and events flow.”

To give a quick concrete example of this, consider the argument that Greek economist Yanis Varoufakis makes against government austerity. He points out that some politicians compare a national budget with a household budget. If an individual is deeply in debt, the financially responsible course of action is to decrease spending to reduce that debt. The same should therefore apply to indebted nations; reduce government spending to pay off the national debt.

No SVG support

However, Yanis points out that, as individuals, our income is independent of our spending. This is not the case in a national budget, where government spending is a component of the national income. If a decrease in private spending (recession) causes a decrease public spending at the same time (austerity), then the national income will decrease. Since the government’s inflow of tax revenue is a percentage of the national income, this causes a runaway reinforcing feedback loop (depression).

Yanis makes the case that belt-tightening is effective on an individual level, but not a national level. The diagram above illustrates that they are structurally different systems, and systems thinking teaches us that systems behave according to their structure. Austerity advocates therefore cannot reasonably argue that both systems will react to change in the same way.

Regardless of whether or not Yanis’s argument is economically correct, systems thinking gives us tools to better understand the arguments being made in economics and politics. If video games as a medium have a unique benefit to offer the world, it might be systems literacy.

Stock-and-flow diagrams are a useful tool for modelling game systems for discussion and analysis. Of course, this is just one small topic in Thinking in Systems. The rest of the book uses this notation to explore further topics, such as a taxonomy of common systemic problems and where to apply change in order to have the biggest effect on a system. It’s all extremely relevant and practical for game design, and I highly recommend picking up a copy.

→ 2 CommentsTags: ·  · 

2 Responses to “Thinking in Systems”

  1. Calvin French Says:
    July 10th, 2018 at 12:12 am

    Really wonderful read; thank you for the great explanation of stock-and-flow diagrams and the clearly-conceived examples. Much appreciated!

  2. CJGeringer Says:
    July 10th, 2018 at 7:40 am

    That is a great book.

    I believe Machination Drawings are a good way of visualising this.

© 2007-2020 Matthew Gallant. Powered by Wordpress. Privacy Policy.