Tabletop Roleplaying as a Game Design Tool

The goal is to allow the player and their avatar to occupy the same emotional space.

Harrison Pink, Snap to Character: Building Strong Player Attachment Through Narrative

At Graewolv, while exploring the concept of the demon-powered first-person shooter, one question that kept nagging at my brain was who I was actually playing and why it led me to shooting people and interacting with demons in the first place. It bothered me that this didn’t have a straightup answer, or at least an answer that could make it comfortable to “occupy the same emotional space” as the character I played.

Shooting people can be fine in a military shooter. “You’re a soldier following orders” usually works, even if it carries significant historical baggage. But when put in another pair of boots it feels weird. Shooting people becomes murder.

Joel in The Last of Us murders some of the few remaining medical experts in the world in cold blood. He is written well enough — and we get enough time to sympathise with him — that we can still see Joel as the good guy. In any attempt at an objective analysis, he’s a selfish psychopath, but we can understand his motivation and pick his side over that of the nameless doctors in the game. In fact, I’m somewhat bothered by how easily some players can say “I would’ve done the same.” But in the end, we feel like we know Joel, which makes us side with Joel.

I wanted this to be resolved for VEIL too. You commit despicable acts of violence and this needs to be motivated so that the player doesn’t get uncomfortable occupying this emotional space and so that the violence doesn’t become too gratuituous.

These lines of thought made me look at role-playing as a design tool for exploring game concepts further. In this post, I’ll cover how I worked with it. Hopefully it can be interesting to other game designers out there. It’s a tool I still use whenever there’s a chance to do so.

If you’ve done similar experiments, I’d love to hear about it. Write a comment or e-mail me at annander@gmail.com.

Note that some of the stuff I’m about to share in this post is the property of Graewolv and is shared with their kind permission. Special shoutout to the incredible David Brochard, who drew all the concept art.

Wishlist VEIL on Steam: https://store.steampowered.com/app/2436490/VEIL/
Join the VEIL Discord server here: https://discord.com/invite/7JxqcDZ9Pq

Background

I started playing roleplaying games around the age of 10. It’s been my favorite hobby ever since, with a few breaks at times when life got in the way.

My approach has always been somewhat experimental, trying to find new ways of playing or just variations on existing ways, and rarely playing the same thing through more than one campaign. Experiments like building a scenario where all of the information is within the group, putting all conflicts between players, playing with multiple game masters, no game master at all, or playing court intrigues based on the assassination of Gustav III.

This has led me to focus on a number of things that I think make role-playing games unique and that makes them excellent as game design tools beyond being games in their own right.

Roleplay can be empathetic, where you try to imagine how another person thinks or feels and you act it out. You can roleplay an asshole, like playing Cyberpunk 2077 as a Corpo, because there’s a detachment between you personally and the avatar you are playing. It’s engaging to make decisions based not on your own morality, but on your interpretation of this other person’s morality. Real or imagined. This is equally true whether you are a player or a games master. Every participant can engage in empathetic role-play. It also stays true with one character on several players, one character per player, or multiple characters per player — we can still engage in empathetic role-play.

It can be exploratory, where you act out different things and find out what happens. Basically the FAFO (F*ck Around and Find Out) of role-play. Insult your friends. Kill the princess and rescue the dragon. Sail off on a ship instead of going down into the dungeon. Since the only limitation you have in role-playing is your own imagination, this element is one of the most unique that the hobby has to offer. It can also be used for more than just entertainment, such as exploring what may happen in a second Trump presidency. Exploration is related to empathy, but doesn’t have to be. It can also be purely for fun or as a method for pseudoformalised conjecture.

It can be mechanical, where you play through situations using a platform of rules to see where the rules lead. Maybe you want to have rules for detailed mech customization, for realistic firefights or fencing, for exploring the unknown, or for leveling up and unlocking new tools to play with. This is very similar to hex-and-counter wargaming, which incidentally is also where the roots of role-playing games are firmly planted. It’s an effective way to see where the game may need more or fewer choices, or if you may have forgotten something that needs to be designed in more detail.

It can also be narrative, testing or fleshing out the story or world-building. Role-playing games are extremely dynamic and pretty much all of the previously mentioned reasons to role-play clash fundamentally with the idea of a prewritten plot, but as a tool, narrative role-play is great. You can try out different villains to see how they work and see what kinds of interactions players expect, and you can work with language in interesting ways. In one test session a few years ago, the first question that came up in play was, “how do people in this world communicate?” Something the world-builder at the time (me…) had completely overlooked that became obvious through play when the characters needed to talk to each other.

Note that these four forms of role-play are not an attempt to classify or define anything, and they definitely don’t cover the full breadth of the role-playing game hobby. They are often mixed together in different ways and sometimes hard to separate from each other.

These four ways of approaching role-playing are consciously structured to answer relevant questions, and you should hopefully see the interesting space that starts to emerge between them.

Fall of Magic is a very imaginative experience, working with physical props and choice of words to transport you to another world.

Role-Play as a Tool

What the four forms help you do is push the game experience around the table towards empty spaces in your design. It helps you ask interesting questions and provide compelling answers. All of those answers won’t be what you actually use, but as a design process, role-play can be one of the fastest ways to explore your designs. All you really need is imagination.

You will be playing the characters and having the experiences you want your game to offer, without having to finish your game.

We can use empathetic role-play to sample our characters, factions, and conflicts. To figure out ways to make the world we are building or the villains we are introducing more compelling. It can also show us where our world-building may be missing something. If the hero may need a foil, for example, or if the conflicts sound a bit undercooked when put in motion, or become repetitive faster than we had anticipated.

Exploratory role-play allows us to push the boundaries and see what happens. It’s a great opportunity to let developers improvise solutions to the problems or missing designs that may come up, and essentially design the game through participation. When someone decides to kill the main quest giver, for example, that may be something the game needs to solve for. Or when a certain spell or weapon is used in an unconventional way. What’s important here is that you never say no. See where the exploration leads and make decisions after you have talked it through. Take notes, but avoid turning the play session into a meeting. The beauty of the process is that you can just throw stuff out that doesn’t work.

Mechanical role-play is a bit more tricky to make use of as a design tool, since it easily becomes a deep rabbit hole of mechanics design that are then only written for the tool and will never translate into its digital incarnation. Some of this can be worth a lot, since it can explain your intentions at a high level. But avoiding time waste is often a careful balancing act. If you focus on outcomes more than specifics, for example how many options you may choose from in customization, how much gold you make, or how much damage is dealt and taken, it’s still a valuable tool since it can hide large complex systems behind the improvised decisions of your players. You want the mechanics to be similar enough to your intended game to feel like it hits the same structural beats as your digital game would without only becoming a clunky version of it.

Finally, narrative role-play is quite useful as a tool, since it allows you to take a trip through your broad story beats and see how they connect. If something needs a higher pace, clearer clues, or other changes. In some ways, it’s like a script reading session with some additional improv. It can also make use of random generators like tables and cards to help you create a fitting story for your game or even to decide where you want the narrative to connect to procedural elements. It’s particularly useful for filling in gaps between the story beats you already have in mind. Together with empathetic role-play, you may even get to see how the factions and characters in the game interact over time, and you can surmise empathetically how the story should play out in ways that are hard to do with just a word processor.

The Ghost Recon team has shared role-playing versions of both Wildlands and Breakpoint. The latter you can find here.

ROLE-play

Let’s look at how to do this, in practice, by first looking at the roles involved. The avatars whose emotional space we are about to share. The role part.

If you’ve ever studied journalism, interrogation, questioning, or something along those lines, you should be familiar with the 5Ws (or 5W+H). They’re intended as a shorthand for getting to the meat of a story: Who, What, Where, Why, When, and How?

These one-word questions are extremely useful for any form of characterization, regardless of context, since they help you tell a whole story. You don’t need to answer all five at the character level. Some can be answered by the setting or through collaborative improvisation.

You can also consciously leave some of the answers blank in order to figure them out through play.

Some commercial role-playing games, like Fate Core, have rules for collaborative world creation.

Who, of course, asks who was involved. Who did the thing, who was affected by it, and what a third party thinks about it. In journalism, three sources is a kind of golden rule: two people representing the opposite sides, and a third neutral party. Even better if you can have more than just one neutral party. This is a great way to think of scenarios for games too, since the player is often a third party engaging with an external conflict.

This was the trickiest one for VEIL, but the decision was to look at you as an occultist for hire. Someone who solves other people’s demonic woes in exchange for money and power. These “someone” were set as four specific factions in the game world, representing tradition, law, crime, and change. With those pieces in place, there was enough friction to create interesting missions.

What tells you about the thing that happened. Murder? Injury? Theft? Job opportunity? There’s another journalistic axiom that says, “does it bleed?” Because suffering and bleeding traditionally sells stories, so the more violence or trauma — or risk of violence or trauma — you can push into this, the better. Games rarely shy away from violence in the first place so simply making someone bleed won’t catch anyone’s attention. Instead, this goes into the high level activities that you’re going to engage in. Not the verbs of the moment, but the motivations behind them.

You exorcize demons and you take missions connected to that, but you also work for the power players of The City, running their (usually violent) errands. To explore this, a system for generating objectives was created. More on this later.

Where lays out the geography of the matter, so you know if you need to care or not. Closer to home tends to mean higher relevance, which is why local news papers fill a role in journalism: you care because you live there. But fantastic cities and other pure escapism works too, just not on the same instinctual level. Even with fantastical environments, it’s usually good to anchor the where in something recognisable.

The game takes place in The City. It has districts, it has class struggles, it has all the things you’d expect from a modern city but with a slightly gothic overtone. It’s Gotham City, in a way, but if Gotham City had demons from Hell instead of tragic villains with mental issues.

Why is trickier, since motives are not always clear and because opinions may differ. This kid did the crime because they play Dungeons & Dragons says one side, while the other says they were bullied in school. A consulted psychologist chimes in with something about sexual frustration. (Three sources, remember?) What we like the least is when there’s no explanation whatsoever, even if it can also make us run wild with speculation. Cliffhangers exist, after all. But we tend to more easily reach for the obvious explanation. Figuring out why is trickier in real life than for game design, because in game design we already tend to obsess over motivation. The trick is to connect this motivation to the motivation of the characters in the game world.

You’re a selfish sort of person that happens to do good by coincidence. An antihero. The reasoning behind this is that a player in an action video game of the VEIL kind, is inherently selfish. They want to get the next reward, collect the loot, finish the level, etc., and going back to Harrison Pink’s point on the avatar and player occupying the same emotional space this fits well with the goal. You pick your employers. You solve your problems. You get your rewards. The rest are a means to an end.

When isn’t fifth in relevance, it’s just how I’ve taught myself to remember these words (Who, What, Where, Why, When). It’s the time and the place, in history or the present. When can be very broad, such as “19th century Paris” or “Middle-earth in the Second Age.” It can be extremely specific; “At 03:45 last night.” If a major plot beat in your game is the assassination of a king, then when can also inform you whether something is happening before, during, or after this assassination. You can also leave when blank and figure it out through play, in case it’s one of the issues you want to resolve.

It’s not a flashback. It’s not the future. It’s the fictional world’s present, in a noirish gloomy perpetual fall season where it seems to never stop raining. (Because modern game engines obsess over real-time ray tracing, which makes reflections a thing.)

How will be the verbs. Your players’ inputs and intentions as supplied to the systems of the game, and what kinds of outputs they generate. What’s important if you want to make something interesting is to examine this at multiple levels. Your video game will more effectively demonstrate the second-to-second or micro loop of your game; shooting, jumping, taking cover, etc. But what the role-play tool can do is explore the minute-to-minute or macro loop, and potentially even the hour-to-hour or meta loop.

Shooting, summoning demons, completing objectives, failing objectives, working for the factions, introducing factions, revealing secrets, collecting ritual materials, getting tricked, etc.

The three compulsion loops of a game. From my book, The Game Design Toolbox.

role-PLAY

Now that we know the roles we will take on, we need to know how to play the actual game intended to explore them. At their core, role-playing games are formalized conversations. You talk, respond to what others are saying, and you may use some rules to generate outcomes that steer the conversation in unexpected directions.

The key differences between role-playing systems isn’t which polyhedral dice you roll or whether they take place in Narnia or Night City. It’s how truth is established and which parts of the conversation that we influence with mechanics.

Truth

Some variants of role-play use a referee, often called a game or dungeon master, that acts as a rules moderator and comes up with parts of or even the entire plot or story of the game you are playing. Others eschew this in favor of collaborative storytelling.

The key difference this makes is how truth is established.

  • Authoritative truth. The game’s referee has the final say on what is true. Usually combined with one or more of the other forms of truth. In some games, the authoritative role can rotate between players or players can have authority over specific parts of the truth. Truth is established by the person(s) with authority.
  • Pre-established truth. Lore. Whole geographies, histories, anthropologies, astrologies, and otheries. Can be your favorite IP, something you’ve written yourself, or what your favorite author came up with and published. Truth is established by what is written before play.
  • Procedural truth. Often in the form of tables, charts, or dice rolls used to generate random outcomes, but it can also be the direct consequence of other forms of mechanics. Any entry or combination of entries could become true by rolling them at the point of generation, but you can’t know what the truth is until it’s put into motion. Truth is established by combining components in a given moment.
  • Relational truth. Using relationships between people, places, or events, to establish what’s true. A hates B loves C trades with D; there’s the basis for our truth. The mechanics will typically push things, challenge things, and cause or handle conflicts of interest, but the relationships are still what are most important. If the king has an agenda, this agenda will affect what the king decides to do, for example. The agenda is true, but what the agenda makes the king do can only be decided in the moment. This is the primary vehicle for empathetic role-play. Truth is established in the moment, based on how things are related to each other.
  • Situational truth. Where we don’t know what’s true in a certain situation until the situation plays out. A combat system won’t tell you who was injured until the dust (and dice) settle, just like we won’t know how casting a certain spell plays out until we’ve cast it and described its effects. We go through the motions, then we know what actually happened. Truth is established after the fact.
  • Unreliable truth. Any variant of truth where the outcome can change after the fact. Maybe you roll to change it, or you collaborate, or you spend some kind of currency, or you rewind time because nah, that’s not what happened. Truth is established only after all unreliable steps have played out.
Matt Mercer’s DM style is like a combination of authoritative and situational truth, geared towards entertaining an audience.

Mechanics

As mentioned previously, mechanical role-play is always at risk of wasting time if you write complex throwaway rules. Writing a deep combat system for a game that’ll ultimately be a first-person shooter is probably a waste, for example, because you are not actually solving any problems by doing so that you are not already tackling in your game engine.

For most role-playing games as tools, you need to touch on some or all of the following elements in your mechanics:

  • Situations means rules for the kinds of scenarios you expect (or want) to happen in play. This can be very broad and may include genre expectations for your game, such as survival, firefights, construction projects, and so on. What’s important is to leave the potential outcomes open. A situation is the cause, it’s not the effect. It can represent the food shortage, but it won’t present for where to find food.
  • Abilities describe characters. What they can or can’t do, but also as description. This doesn’t have to be detailed, but it can be. One project may need detailed lists or decks of cards that describe different capabilities, while others can use abstractions. This is the toolbox you are providing your characters with.
  • Conflict doesn’t have to be armed and dangerous. It can be anything where there is a clear stake involved. Conversation, bartering, seeking aid, etc. One side wants to gain something and the other side stands in their way or needs convincing, cajoling, seducing, or other methods for changing their outlook. Role-playing games benefit from clear statements or triggers to tell you when a conflict has occured. When the first shot is fired, when the intent is stated; something to tell everyone playing that this is in fact a conflict. The clearer you can make this trigger, the better. But you can also skip this entirely, the way some screenwrights will just say “fight happens,” and then it’s up to the choreographers on the film to make it compelling.
  • Scene is the moment of play, and may change key dynamics. This is where you can apply permissions, restrictions, and conditions in systemic terms. If the situation is a firefight, this is where you can add pouring rain, a particularly tough enemy, or other changes. If the situation presents the shortage, this is where you can collect the resources to solve it and where some other party may stand in your way. The scene is where it all comes together.

There are some practical ways you can approach making your test rules faster:

  • Generic Mechanics. You can always start from a set of generic rules, such as Chaosium’s percentage-based Basic Role-Playing, Steve Jackson Games’ Generic Universal Role-Playing System (GURPS), Evil Hat’s Fate Core system, or Fantasy Flight Games’ Genesys. The simpler and more accessible the choice of rule system is, the better. Just like you don’t want to waste time building complex systems, you don’t want to waste time teaching them either.
  • Proxy Mechanics. A lightweight version of using a generic system is to use proxy mechanics. This is when you take something like the combat system from Risk to represent battles, and perhaps use the cards from the board game Root to add some flavor. Using a proxy mechanic works best if it’s one that all participants already know.
  • Focused Mechanics. You can also make extremely specific rules intended to model things that are unique about your game. Perhaps character customization is important to your game, and you decide to represent all the different parts with cards that let players have fun with the main ideas of this concept. Or you want to have a suppression system that allows you to force enemy AI to keep their heads down, so you model a simple rule system for only that rather than combat as a full simulation. Picking one or two things to turn into mechanics can be very effective, and lets you zoom in on exactly the things you want to explore while skipping everything else.
  • Generators. Whether using decks of cards, random tables, or online generators, making use of random generators is a very powerful tool since you can construct them in such a way that they leave interesting blanks for you to fill during play.
Fantasy Flight Games’ Genesys role-playing system provides a framework for generic mechanics.

Oathbreaker

The following example of a role-playing game as a design tool is from work I did for Graewolv on the upcoming first-person shooter VEIL. I served as Design Director for the project for about a year, in 2020-’21, and during that time it fell on me to explore the design in whatever ways I could while working on the early prototypes for the game.

It was an incredibly useful tool for me, that helped flesh out the different factions and missions in the game, and it was the key inspiration for this post even if it’s a tool I’ve used several times since.

The cover image for Oathbreaker.

Goals

Oathbreaker was written specifically to figure a few things out. As a foray into systemic design (of course), many of its more interactive elements worked better in digital form and were never included. But the playful ideas around changing reality and affecting things through the use of demonic powers were definitely included.

My design goals were:

  • Figuring out who the player’s avatar is, what motivates them, and how they are connected to the world they live in. Empathetic role-play, considering what motivations the world provides based on the key “demon-powered” elements of the setting and making it plausible enough not to cause dissonance.
  • What kinds of factions and different interests could exist in this world based on the player and how to generate conflict from the player’s goals. More narrative than empathetic, but one of the most effective parts of the tests when I look back at it today.
  • Experimenting with missions, objectives, success, and failure. Mechanical role-play, as a way to figure out which kinds of missions felt more compelling than others, but also narrative role-play since it implied what kinds of story beats we’d be interested in pursuing if we took a more narrative direction with the game.

Some things were also actively avoided, since they didn’t really help the game’s design:

  • Combat was largely ignored, because it would be designed in the first-person shooter in some detail and Oathbreaker couldn’t really solve any issues.
  • Enemy design was also ignored, except as exploratory role-play to find inspiration on what kinds of opposition could be encountered in The City based on the factions involved.
From the mini-comic “Promotion” that explained how you became an Oathbreaker.

Truth

Most of Oathbreaker is a conversation engine. We can set up some scenes and talk through how they play out. Because of this, it doesn’t use any authoritative truth but relies instead on procedural truth via random tables combined with situational truth and table consensus.

Cooperative Play

The digital game itself is cooperative, so it made sense to make Oathbreaker mostly cooperative too. We randomise things together, we create and discuss our characters together, and we generate and complete missions together. Each player does play a single selfish character, so sometimes they may not have enough reasons to cooperate, but then we can explain it using the goals and objectives. Discover more reasons for them to cooperate.

Sketch Maps

With an objectives-based game, it can help to think of a map as the sketch for a movie set. We don’t care so much about how it’s related to other sets, as long as it’s believable enough to work and has some measure of internal consistency. We should also have a good concept of how it looks like, as descriptive adjectives.

Role-playing games may refer to the areas on maps like this as “zones,” and the trick to making it interesting is to have enough of them.

In the below example, there’s just Mansion, Parking Lot, and Guard House. The mansion itself could just as easily have been subdivided into Kitchen, Atrium, Gym, Entrance Hall, and so on. How detailed we make it is up to us.

My gaming group often jokes about my mapping prowess (or lack thereof).

Mission Generator

The beating heart of Oathbreaker is a set of random tables that creates missions. It generates this in a number of steps.

First, a Goal is set, which gives you the reward you will be given if you complete the mission. You also figure out which Faction you are working for, and which faction you are working against.

Second, a very broad Location is determined. A Faction Claim, since it has to have ties to one of the power groups of the setting. It’s one of six districts of The City and provides some ideas on what you could find there.

Third, and illustrated in the screen grab below, you find out what the Mission Structure is, and then generate the objectives this requires.

Once all three steps have been completed, you have a mission to play.

Part of the Oathbreaker mission generator.

Mechanics

For Oathbreaker, the focused mechanics approach fit quite well. It has mechanics for creating characters, playing objectives, changing reality, and making demonic pacts. No other mechanics are necessary.

Character Creation

Each character is a selfish individual that managed to gain access to the Veiled Path but chose to break their oath and leave as an oathbreaker. When characters are created, each player rolls to find out first who recruited them, what they did for the Veiled Path, who made them leave, and who they tried to find after leaving.

Each of these tables only has six entries, so that it’s fairly likely that some characters will share one or more of these. The idea is then that they also know each other and that these connections can be good or bad. This is good grounding for empathetic role-play. Maybe the recruiter was my brother, but also your lover. Or we had the same employer inside the Veiled Path, but left for different reasons. This creates situations where we may not trust each other and where we will automatically start to dig deeper into the game’s world.

It’s also great grounds for quickly generating a number of faces that can represent characters we’d encounter in our world. If we missed something at this stage, it will usually be obvious.

A character sheet from Oathbreaker.

Soul

Soul is measured in dice placed on your character sheet or on the notes representing specific threats at a location. There was never a hard rule for how many of these dice you would start with, or if you should start with any at all. If someone opposed you when you tried to use magick, you’d roll dice from your Soul.

Sometimes, only creatures or characters with ties to demons have Soul. At other times, everyone has Soul. It’s a simple dial to turn..

Path

There are two paths in magical tradition. The right- and left-hand paths. Simplified, the saying is that “the right hand giveth, and the left hand taketh away.” What you would see as black magic follows the left-hand path.

For this system, which was just a paragraph or two long, the taketh and giveth was used literally. With the right-hand path, you could give someone dice from your Soul; with the left-hand path you could take dice from someone else’s Soul.

This way, dice can also be rolled to oppose such an attempt, or to transform into resources, damage, or something else, either for yourself or someone else. It’s an extremely high level abstraction since it made it possible to not commit to anything in particular.

Pact

Pacts are measured in debts that must be paid off with Soul. If you look at the character sheet above, each of Annie’s two pacts (the one with Tchort and the one with Naamah) has three diamond boxes where none are checked. Each time the demon’s quite considerable power is activated, the player needs to either spend one Soul by discarding a die or check a single box that must then be paid off with Soul later. (The observant reader will also see that you can use the left-hand path to take Soul from someone else to pay this cost.)

There was never a hard rule for when a demon’s drawback would trigger, since that was part of what was being explored.

Making a pact with Naamah sounds great, until you can’t hear sound anymore at all.

Using This Tool

As a final note, let’s go over how you can use this tool yourself. This is by no means a checklist of things you must do. In fact, you should only do exactly what’s needed for your specific project and nothing more.

Goals

If your game has empathetic, mechanical, situational, or narrative components, you may benefit from playing a role-playing game that explores it. But before you do, consider what you want to get out of it. Set up some concrete goals, like what was done for Oathbreaker.

Characters

Use the 5W+H questions, as many of them as needed, and look at them through the lens of the following.

  1. Theme. Start with a central theme stated as cleanly as possible. There are demons beyond the veil that are powerful enough to control reality.
  2. Agendas. Move on to the different agendas that the theme provides. Wanting to control the demons. Wanting to serve the demons. Wanting to hide the demons.
  3. Groups. Connect groups to the agendas, whether they are for, against, or neutral towards them. Law enforcement; those who want to hide the demons and maintain the status quo.
  4. Individuals. Populate the groups with individual characters. Emmet the Corrupt Cop, working for those who want to keep everyone in the dark.
The Badges are the law enforcement faction of Oathbreaker.

Rules

You can skip this step entirely, or you can put extra effort into it at any level of detail that you want. One of my current spare time projects uses a fairly in-depth board game element to test full-scale combat, even though it won’t translate into its digital form. This has been written because I enjoyed it, an element that is certainly more important for hobby projects.

  1. Authority. Decide what kind of authority you want. The default tends to be a referee, but it’s not necessary, and for a more collaborative team of designers you shouldn’t have authority that is too centralised or bottlenecked to a single person.
  2. Mechanics. Use proxies, think about situations and abilities, and dig into what characters can and can’t do, as well as the role of luck in the mechanics. Randomisation can be important to a game in order to generate tension through uncertainty, but in role-play as a tool, it can actually distract you from the conversation. Only add randomisation, success, failure, and so on, if it’s important as a representation of what your game is about.
  3. Modularity. Since systemic design is my jam, and in many cases this benefits from a modular approach. If you can take any system and decide whether it’s active or not in a playthrough, this can help you zoom in or out as you need to. Oathbreaker does this in several ways, not least of all by making some of the concept’s core elements entirely narrative, such as the magick.
With great power comes great blood loss from all the cutting.

Play!

With just a page or two, maybe some dice, bring your team together and get to it. There’s no point to any of this if you don’t make use of it. Building a role-playing tool like this can definitely be an interesting intellectual exercise in itself, but the real magic won’t happen until you gather some other people around a table, friends or coworkers, and start exploring your game.

Contents of my convention box printout of Bargains & Bloodshed. Originally written to explore sword & sorcery world-building.

Challenges to Systemic Design

Systemic design comes down to making objects and rules and inviting the player to interact with them. This sometimes clashes with game design at large or the expectations of external stakeholders. This post is dedicated to some challenges that are facing systemic game design right now.

It won’t go into broader problems like financing or marketing — not in this post. This one is focused on design.

I would also love to hear about the challenges you are facing, as a comment or to annander@gmail.com.

Overcoming Recency Bias

Indie game developer Mike Bithell once tweeted that game design tends to favor the past five years’ most prominent hits. I’ve tried to put this in context in the past, writing about different broad “eras” of game design, but this is a considerable challenge for game design overall. Maybe the biggest one. Recency bias is one of the root causes for many of the other challenges described in this post.

The only way to overcome recency bias and broaden your personal references for games is to play games from different eras. To push yourself out of the five-year recency bias. Playing games from genres you don’t normally play and engaging with games and gaming positively rather than through hearsay or preferences.

Play lots of games and you will find both gems and turds along the way. Over time, this will make you a better game designer. Allegedly, Quentin Tarantino used to watch around 200 movies per year. Maybe as a designer you should take 30 minutes every morning to just try a game you wouldn’t normally play. Like a concept artist doing warmup sketches. Eventually, you’ll at least try as many games as Tarantino watched movies, and this will broaden your frame of reference.

Mimics are not a Dark Souls thing, they are a Dungeons & Dragons thing.

Avoiding Reductionism

Call of Duty, which is a first-person shooter, has a sprint button that boosts your movement speed; therefore a game cannot be a first-person shooter without a sprint button.

This line of reasoning is design reductionism. Portraying a thing as represented by a specific part, thereby reducing the thing to this part. You can extend the same kind of argument to almost any genre or game, and sadly this is very common.

Many discussions on definitions in game design become reductionism. Not always intentionally, but whenever we say “X is not a Y because it doesn’t Z,” we’re falling into this particular trap.

Two ways where reductionism become game design obstacles are as denial and as obligation. X doesn’t have the feature, so we shouldn’t have it either; or, X has the feature, so we must have it too.

One way to avoid reductionism is to remember the Mechanics, Dynamics, Aesthetics (MDA) framework and its conceptual division and to categorize what you may be reducing accordingly.

If you look at sprint in Call of Duty (CoD) as a mechanic, for example, the running for cover to regenerate your health is the dynamic it leads to in combination with other mechanics. This means that a game that doesn’t have the regenerating health or even any cover to run for doesn’t benefit as much from a CoD-style sprint mechanic. If you borrowed only the mechanic, expecting the dynamic, you’d be disappointed.

The brilliant DOOM (2016) stood out on release because it didn’t follow the first-person shooter trends of its time.

Playing Less Reference Tennis

Since we don’t really have an established language around game design, and genre definitions lack unanimity, references to other games easily becomes the only common ground we have. But this easily leads to “reference tennis,” where you are bouncing different game references back and forth until someone mentions a game the other party isn’t familiar with, thereby dropping the ball and either ending the conversation or conceding it in some direction. This is not conducive of constructive design work. It’s often the worst possible kind of reductionism, or it’s simply a game developer form of might makes right.

Avoiding reference tennis and designing by reference requires that you move the conversation to your own game. This is where game design pillars, established facts, and a playable game with clear problems that require solving come in.

Actively avoiding references to other games during a game’s earliest design stages is the best way to try to build confidence in your design. Describe the experience, the emotions, the themes and mechanics; just don’t use other games to describe them.

There’s little use in trying to boil something as complex as a video game down into a single hook or elevator pitch line, because this often forces you to say something like “the mechanics of X plus the art style of Y,” and that will have as many interpretations as it will have listeners.

“GTA in Space” has been a way to mock derivative or unfeasible game ideas for as long as I’ve been a game developer.

Disbanding the Design Committee

Designing by committee is where no one dares to have a vision and everyone defers to everyone else. It either leads to no decision-making at all or to decisions that are as vanilla as they can be so that no one in the committee risks feeling sidelined.

As a colleague liked saying, it’s the heat and the pressure that makes the diamonds. Creative discussions, constructive disagreements, making things someone feels strongly about, and scrapping things that didn’t work out even when someone did feel strongly about it. Game development can’t afford fragile egos and also requires a diversity of skills that makes it a poor fit for auteur directors. Put a bunch of experts in a room and let them be experts.

In reality, the only way to disband the design committee is to find people you can talk to and work with in an open and constructive manner. People you trust and who trust you. It also helps to have a clear vision, with the already mentioned pillars, facts, etc.

This isn’t a comedy sketch, this is real life.

Stop Chasing Trends

Making a game that is in one way or another extremely close to something already on the market can be an efficient way to make a buck or two. Not always, of course, but the number of games that carry a World of Warcraft painted aesthetic, make use of extraction shooter mechanics, or strives to be another roguelike, Minecraft, or deckbuilder speaks for itself.

Like reductionism, this often comes from risk aversion. If you see someone else demonstrating the success of a thing, you imagine that you can skip directly to the profits by making a similar thing. This is sometimes called the packaged goods model, where marketing is functionally more important than the product being marketed. Coca Cola vs Pepsi marketing often tries to sell an identity more than a beverage, for example.

But games are not packaged goods. Games are creative products where gamers can express themselves through play or experience something outside of themselves. Gamers are also highly likely to vote with their wallets if you only give them something that is a repackaged version of something else. Some trends die faster than they appear, and it’s hard to know this before you get started.

Considering how much business in game development that is handled by people from packaged goods industries, this issue is probably not going anywhere anytime soon. But please, as a designer, try not to chase trends. You don’t have to make the next extraction shooter survival game.

I didn’t play Concord, but it tried to capitalize on the success of the hero shooters popular when the project began.

Don’t be an IP Tourist

When Kane returned in a coma with that thing clinging to his face, you had no clue what it was. It frightened you nonetheless. Its strangeness, its alienness, frightened you.

But that terror can’t be replicated anymore. We’ve labeled the creature a “facehugger” and made it available as plushies, on mugs, and adorning the jewel cases of the special collector’s edition DVDs we hold on to but haven’t watched for fifteen years.

Yet, more Alien-branded games are made. More scenes with facehuggers are featured, often predictably. It’s no longer a creative choice, it’s a must-have. Something to check off a list when we’re on Alien safari. Android, check. Distress call, check. Facehugger, check. It’s the same when characters in The Mandalorian keep joking about how bad Storm Troopers are at shooting. That was never a joke: it’s something the fans made fun of. To the Storm Troopers, what they are doing is real and most definitely not a joke.

All of this is IP tourism. It adds nothing new, it doesn’t contribute anything. It only repeats the key selling points of a franchise either as fan service or as a lazy attempt to retain an existing audience by using self-referential in-jokes that only the “real fans” will get.

In my opinion, the best games in the Halo franchise were Halo: Reach and Halo 3: O.D.S.T, simply because they did things that weren’t just IP tourism but took the IP to new places and painted the war against the Covenant in a different light. We didn’t need more Master Chief, even if the original games set the stage, and we got the Fall of Reach story and a noirish detective story with Halo framing instead.

If you ever have a chance to work on a cool IP, don’t be an IP tourist. Build a real experience that explores that IP in some way.

“Get away from her you …” predictable IP tourist self-reference.

Make Decisions Matter

The key to Sid Meier’s classic statement on decisions is the word interesting. A game is a series of interesting decisions. If you remove the emphasised word and the player is making decisions that were all created equal or from only partial information, then the player no longer has any meaningful decisions to make, they are just along for a ride.

I always felt that the style of choices you made in series like Mass Effect were this type of choice. You could choose to be altruistic or evil and you’d get an immediate often spectacular response, but the longterm effects were usually not that relevant. From your own intentions, you could end up making a right or wrong choice, but it would often be either completely obvious or entirely opaque and you’d be picking mostly as a gut reaction. Someone dying in a cutscene at the end of the game isn’t the consequence of an interesting decision, it’s just a shallow reminder that a decision was made.

If you are interested in a deeper take on choices and consequences, you can watch Bob Case’s excellent video on the subject. To me, this is where systemic design truly shines, as interacting systems will be restricted more by which inputs and outputs you allow than by content.

Many of the choices in games like Mass Effect 2 are immediate and extreme, and written for effect.

Focus on Art Direction over Fidelity

Remakes have always been a thing in video gaming, ever since the early days. But a trend that may have started with the Halo: Combat Evolved Anniversary Edition remake and that deeply affects game design is to take a game and increase its visual fidelity to a modern standard without considering the core art direction of the original game.

To contextualize this a bit, production pipelines for video game graphics were revolutionized in the early 2000s with the gradual but widespread introduction of Physically-Based Rendering (PBR). The techniques were described in the 1980s, but what set this off for games was partly a book by Matt Pharr, Wenzel Jakob, and Greg Humphreys (link is to the table of contents for the 2023 edition).

Before PBR, much work with textures had to be manually tweaked until it looked right. With PBR, artists could start relying on real world measurements and assign material properties that always provide realistic results.

What many 3D remakes then do is that they take a pre-PBR 3D video game and they remake the visuals for PBR. A realistic look from a purely practical perspective, but also one that doesn’t respect the original often carefully crafted art direction.

In a pre-PBR game, the environment and interactive objects could be designed to read more easily. In remakes with full PBR and high resolution textures, everything looks the same. More often than not, you need to compensate for the loss of art direction, for example by using dabs of contrasting paint to highlight what the player can interact with.

Two things to note is that this in no way means PBR is bad or that it shouldn’t be used, or that this is limited to remakes. All it does is that it shows you how tricky it is to match game design and art direction when all you are doing is making something look “more realistic” by increasing fidelity. Movies, which are filmed in the actual real world, very rarely focus on looking realistic, but will instead use lighting, composition, and other techniques to make sure that the right information comes across.

Allow art direction and game design to inform each other, and please stop letting whoever paints all the yellow paint have all the fun before the hero even gets there.

Because the high resolution version of Resident Evil 4 is much harder to read, yellow paint needs to compensate.

Stop Commodifying Player Imagination

We can look at old school gaming — as far back as hex and counter wargames — as fantasy systems. Our imagination takes the output of dice rolls and table results and conjures up fantastic chains of events. Like how you can imagine the anti-tank crew in a game of Advanced Squad Leader sit there and whisper hoooold to each other in Mel Gibson fashion while you, the player, are hoping that the tank will move one more hex so your chances of hitting are increased before you tell your opponent “I shoot!” All of that tension is a natural and emergent effect of the game’s systems. The actual physical experience of playing the game is just a bunch of cardboard counters and dice.

Player imagination is the most powerful tool in a game designer’s toolbox. Yet, in many types of games, the design doesn’t really allow it. Instead, we sell you the permission to imagine things and actively restrict you to only imagine things we can charge money for. The official experience.

You won’t find freeform customization as often as for-purchase skins of popular characters. The workings of our fantasy systems are paywalled, and there will always be a next purchase for you to make if you want to satisfy that fantasy you had in mind. Be it the all-black gothic armor set or the bladed boomerang or something else that you didn’t actually want or need.

Players are creative anyway, of course. They will always draw penises if you give them half a chance, and some can spend hours in your character creator to imitate their favorite celebrity. But the reason this is a challenge for systemic design is that the official allowed content that we sell is never going to be half as cool as what players can discover on their own if you let them.

Facilitate player imagination, don’t commodify it.

You buy the skin and the voice pack: you are a consumer and not a player.

Use Technology to Solve Problems

Generative AI has been saved for last, because I’m not personally that worried. If people can find inspiration from a ChatGPT chatbot or get past programming obstacles that are hindering them in their work in some way thanks to some flavor of Copilot, then that’s great. Use the tools that make you more effective.

But one thing is problematic: people’s faith in Large Language Models (LLMs) and other black box technologies. How people from outside the industry can come in and tell us that hey, you can use AI to make your enemies smarter or to write dialogue for you. Because yes we can, and we’ve been able to for decades, but we shouldn’t and we won’t. The amount of text that we put into our games has never been the problem, and having to expensively teach our enemies how to do actions we could much more easily build systems for is a bottleneck more than a solution.

To make more dynamic and responsive games, we don’t need a new black box, we need to develop the paradigms around how we think and design. We need to design games in more systemic ways. Complex systems start from simple systems that work — they are not made out of black boxes. LLM technology, Machine Learning, Reinforcement Learning, and much more, are useful algorithms that we should put to good use when they solve problems for us. But only then.

The best stuff we can get out of the LLMs probably hasn’t appeared yet, and it won’t do so until we get past the stage of overhyped excitement that seems to dominate the tech space today.

Solve problems, don’t buy into hype.

Behind the deluge of tech hype, there is a lot of interesting research happening.

Making Money Making Games

There’s a popular joke about money and game development. It goes something like this: To make a small fortune from gamedev, start from a big one.

A key element of gamedev finances is risk. Games are entertainment products, and even when someone has a great time testing your game at a conference or all the reviews come in at 11/10, that still doesn’t mean people will want to give you money. You can have vocal fans demanding a balancing change, or people with 1,000 hours logged that never say a word. Neither ultimately help you pay the bills in the longer term. You’re always building your game with someone — maybe yourself — gambling on its potential. Taking a financial risk.

To provide material for discussion, this post will go over the often unintuitive ways game developers make money.

Enjoy. Or disagree in comments (or to annander@gmail.com).

The Merchant, from Resident Evil 4, seems to get decent traffic. Maybe he can help distribute your game?

Budgeting

Budgeting and cost analysis sounds about as exciting as it is. But if you want to make money making games you need to invest money or at least know how much you will be asking someone else to invest.

By far the biggest cost for digital game development is staffing. Estimates run as high as 90-95% of gamedev budgets (not counting marketing), but it really depends on how you structure your company. When you calculate your budget, the easiest way to start is to list all the roles you want to fill and then multiply that headcount by the number of months they must do their job. You then take this number and multiply it again by a set price per month that covers both expenses and salary. This last number is usually somewhere in the range €5,000 to €15,000 per developer per month, where 5k is an idealistic basement-based indie studio (at least in the west), and 15k just about covers a San Fransisco receptionist working half-time (I jest, but SF is incredibly expensive).

If you are a solo developer, don’t forget to set a rate for your own hours and tally them as a cost, even if that money is taken from some other fulltime job in practice. It’s still a budget; still an investment.

After summing up all staffing costs, add any other costs for software licenses, conferences, marketing, computer hardware, office rent, office cleaning, accounting, etc. Add everything, no matter if it’s €10 or €10,000.

Let’s say you have one artist/designer and one programmer. That’s two “roles.” Let’s say they will work 6 months. That’s 12 months total. Then slap a monthly cost on this, say €8,000. Maybe you’re also accumulating total additional costs that amount to €4,000 for some travel tickets and licenses. All those things added together come out to €100,000.

Once all is summed up like this, you add another 30% on top. Don’t ask why — just thank me later. Adding 30%, our budget amounts to €130,000. This would be the budget for this team of two to make a game in six months.

If you want to read more about game business, I recommend the books The Gamedev Business Handbook and The Gamedev Budgeting Handbook, both by Michael Futter.

Michael Futter’s two books are great primers for the beginning game budgeteer.

Breakeven Formula

A handy formula for calculating how to achieve the following goals is:

Breakeven Sales = Budget / (Unit Price * X)

  • Budget should be the total money that the game costs you to make (plus 30%).
  • Unit Price is what you will be charging your players. In tabletop gaming, the Manufacturer’s Suggested Retail Price (MSRP) is often around five times the cost of production per unit. This would be a tough sell in video games. In digital games, what you charge for your game is much more hotly debated. Also note that “Unit Price” can be replaced by an Average Revenue Per User (ARPU) metric if you have more of a games as a service setup.
  • X is a fraction of 1 that takes sales tax, platform cut, etc., into account and modifies the unit price accordingly. Do some digging into VAT rules for your country, so you can be sure that your revenue per unit is reflected.
  • Breakeven Sales will be the number of units you must sell to make back your budget, in case of unit price, or the number of players you will need in case of ARPU.

Example 1: Total budget of €130,000, Unit Price at €19.99, and X of 0.5. Breakeven sales come out at 13,006 units (130,000 / (19.99 * 0.5)).

Example 2: Same budget, but with a €0.99 ARPU instead of unit price, you’d need 262,626 players to reach breakeven (130,000 / (0.99 * 0.5)).

Business Goal

Contrary to popular belief, the goal of making money as a business isn’t to be able to buy a Ferrari. Rather, there are four quite specific goals you can set out to achieve and anything beyond those goals is a bonus (literally).

Goal: Breaking Even

Your goal may simply be to break even. If you sell those 13,006 units, you’ve made back what you invested and lost nothing. You have a game out in the wild! This is fine as a goal. To see the time and money you put in returned in some form is more than most indies can say about their gamedev adventures.

A word of caution is that you should remember to count all the hours that you put into your project before you consider it breaking even. If you worked two hours every evening for a year, but you only calculated the budget based on money you paid for a sound commission, then “breaking even” won’t actually tell you anything. It’ll be undervalued to the point of meaninglessness. However, don’t put the Ferrari into your budget either. Focus on the cost of doing business.

One factor of breaking even you should also consider is the timeframe. Different strains are put on your finances depending on if you break even in a month, six months, or eight years. Consider a range of scenarios and their consequences before you commit to your project.

Advent Rising was going to be a trilogy, but we only ever got one game that failed to impress games press (and gamers).

Goal: Sustainable Development

On the other hand, you may want to be able to sustainably make your next game. That requires your sales to hit breakeven quickly enough that you are paying for the next game in the meantime.

If you can achieve sustainability, you can keep making your small games as long as you keep making them. It’s the dream goal of many small indies I know, to have Game A pay for Game B pay for Game C, and keep you salaried, stress-free, and happy, along the way. No Ferrari, but the lights are kept on.

With a bit of luck, each project can provide you with passive income for a longer duration and the credibility and following you build over time may provide more stability than only relying on new releases for your income.

Lucas Pope’s Return of the Obra Dinn was financed by the success of Papers, Please.

Goal: Growth

You may also want to get enough money back from your first investment to be able to scale up and build more ambitious projects after. Hire more developers, maybe get a nice office, make a multiplayer version, or deploy your game to more platforms.

It helps to look at money in a business less as money and more as investment capital. By all means, put some money in your own pocket as a reward for a job well done, but then you must account for it as well. Getting a Ferrari may sound amazing, but company capital that turns into private money gets taxed and won’t benefit the company’s long-term growth or short-term needs since it doesn’t exist anymore.

If you aim for growth, you need to put the costs for both Game A and your hoped-for future Game B into the Budget field of the breakeven formula. At that point, the numbers will grow considerably, and you’ll start understanding the complex nature of game finances. Not to mention the reason you will often want someone else to take the financial risk in your stead.

For most game studios that don’t have longterm first-party backing, growth will not be planned for but will happen organically due to Game A doing well enough to support it. You can’t count on it, but should at least be mentally prepared for it if it happens.

Demon’s Souls was allegedly budgeted with a breakeven at 200k units. Starting from realistic expectations is a key element of growth.

Goal: Art

Maybe you don’t actually care about breaking even, getting your money back, or any of it, because you either consider game development something you do for fun or you look at the things you make as a way to express yourself. You’ve probably read the past few sections feeling like you need to spit out the sour taste of capitalism.

If making art is the goal you have, then power to you, and may you find the expression and reach the audience that you seek. The rest of this post will probably not apply to you, but may still be interesting to read (I hope).

When Roger Ebert said games can never be art, for some reason BioShock was the game people suggested he should play.

Revenue Streams

What is generally the most surprising to people when I discuss my job with anyone else, from gamers to people who have no personal experience with games, is that game developers actually rarely make their money from selling games.

It sounds deeply unintuitive, even as I type it, but it’s true.

To explain why this is, let’s talk about sales.

Direct Sales

Probably what most gamers think of as how game developers make money is by selling games to players of games. Putting your game in a store and asking for some money. A first party (the “producer”) sells their product to a second party (the “consumer”). Economy 101.

Unless you put a page up with your own Paypal connected, release your own launcher as the only place to buy your game, or travel to cons to sell physical copies, you are not actually making direct sales. There will almost always be a go-between that’s not just a banking or payment service.

One benefit of direct sales is that you won’t have to pay anyone a percentage. The downside, and why it’s quite uncommon, is that you must make everything yourself, including the server architecture to host your game, support forums, storefront, and so on. Things that will take time away from making the game.

Direct sales will affect your X considerably: it can go from 0,5 to 0,7 or higher since you are only paying taxes, backend costs, transaction fees, etc. and don’t need to pay a cut to any platform holder.

Minecraft is one of few games that achieved its success through direct sales.

Platform Sales

Steam, App Store, Google Play, Good Old Games, PlayStation Store; there are many platforms where players can purchase games. You’ve heard of them, probably used more than one of them yourself as a consumer, and may have worked with them for your own projects.

Here’s the thing with these platforms: they have their own best interests in mind and not yours. When Apple was celebrating the 15th anniversary of the App Store in 2022, they said that “today, the App Store has more than 123 times as many apps — nearly 1.8 million — to choose from, compared to the thousands available on the App Store at the end of 2008.”

This isn’t good for you, the individual developer. It’s only good for the platform owner, who can attract people with the implied software diversity of their platform. In the case of this example, it’s Apple, but the same is true for Google Play, Steam, and all other online stores.

In fact, in the 2010s, some developers were talking about the “race to free,” which is an unfortunate side effect of the growth in competition. With more direct competitors for market attention, you are forced to rely on platform discount campaigns to shift more units. This means that your Unit Price from before is shrunk down by anything from 5-95%. You choose your own discount, of course, but if everyone else has a 95% discount and you provide 5%, this affects what people are likely to buy.

Some can make more money by offering a discount because they find the sweet spot between discount and volume, but the dark side of that moon is that your unit price may shrink so low that it has effects on your sustainability as a business.

Let’s say you used to get €19.99 for one unit before fees, but you discount it down to €4.99 in a Steam sale. Even such a thing as writing an answer to a support e-mail may start costing you more than your take from the sale of that customer’s unit. Meanwhile, the platform keeps getting its 30%.

This “race to free” has been accelerating for some time, and while Steam and Apple revenues soar, there is a shrinking number of developers who can actually sell enough to make a living. Something that gets further exacerbated by a growing number of competitors with a decreasing development time cycle.

Looking at VGInsights.com and its Revenue Distribution, you can see that only about 12% of all purchasable games on Steam made enough money to break even with our budget example from before. A percentage inclusive of all $50k+ brackets, even though the $50k-200k bracket is heavily skewed towards the bottom. So that 12% is likely to be lower in reality.

If you sell your game on Steam, your game must do better than 88% of games on the platform if you want to have a chance to make enough money to break even with a €130k budget.

This doesn’t mean you shouldn’t use Steam or the App Store. You just need to be aware of its caveats and prepare to make less per unit than may actually be sustainable.

Also, don’t kid yourself in this regard. AAA and AAAA may be able to set prices at €70 and beyond per unit, but that’s because of a long-standing direct relationship with their customers. If you, as the theoretical small indie, push prices too high, people simply won’t buy your product. For you, the race to free is real.

Platform sales is more or less the assumption. Your X will be around 0,5 depending on your taxes. But at least some other fees, including transaction fees, are baked into the platform’s cut. You should add unit price discounts into your breakeven sales calculations, because you are very likely to have to do them at some point and you need to know what that means for your numbers.

A snapshot in time, from VGInsights.com.

Third-Party Contracting

A game can’t make any money until it’s actually ready and done. Before then, someone still needs to foot the bills. This is why it’s common that your studio doesn’t make money from selling games but from delivering milestones to someone else who is fronting that money and taking the financial risk.

This can either be third-party contract work delivering a whole game, or it can be what’s referred to as co-development or just codev.

Requests for Proposal

A Request for Proposal (RFP) is a document that asks you to pitch your version of something. Classic examples are spinoff sequels and movie tie-ins, but a RFP can ask for almost anything. If you run a studio known for a certain thing, you may get RFPs asking you to pitch that thing within certain creative boundaries.

I can’t use real world examples for obvious reasons, but RFPs can be anything from a single page asking you to hop onto a call and discuss specifics with the owner of an intellectual property (IP), to giant design bibles asking you to add the flavor on top that your studio is known for. Picture HBO contacting you to make a Game of Thrones-based strategy game, for example. They’d be doing so with a RFP.

I don’t know if Catwoman started as a RFP, but it may have, and it was a precursor for freeflow-style combat.

Unsolicited Pitching

Probably what most people think of as “pitching” isn’t based off a RFP but is the style of pitch that you write yourself and bring to a publisher at a conference or some other gathering. Today, you must usually bring a prototype as well if you want to be seriously considered.

This is particularly common among indie developers, who often strive to sell their creativity more than their credentials, but is actually not as important as you may think. Not in the grander scheme of things.

Be mindful that no one will ever say “no” to you while pitching. They may ask for more details, a bigger prototype, a functional build, or something else, but they will rarely say no. Whatever you do, don’t take a lack of nos to mean yes. Pursue multiple leads, and if things don’t move forward, move on.

No matter how good your pitch is, you are pitching it to someone who listens to pitches for a living.

Milestones

Once your pitch is successful, you agree on a timeline and a budget, and schedule some milestone deliveries. The cadence of milestones varies immensely. Maybe you can have weekly check-ins with your publisher sometimes, while at other times it’s half a year between deliveries. Generally, the longer time you have, the tougher the requirements will be.

Usually, a plan outlines what needs to be achieved at each milestone and once a milestone gets accepted an agreed amount of money shows up in your bank account. There can also be termination clauses built into a contract, where a certain number of failed milestones voids the entire contract. There can be cancellation fees to be paid, or penalties, and so on. How contracts look like is almost as varied as the stars in the night sky.

Milestone payments will cover your running costs, and if you added those 30% I told you to add, they may give you a little bit of margin on top. But they also tie your company’s survival to the consistency of your financer’s payments.

With milestone payments, you don’t need to do the breakeven calculation, because that whole thing is up to your financer. But you will also have to be more specific with your budgeting, and may have to cut some costs that the financer doesn’t think is worth it. Some costs may also be cut because it’s something that the financer can help you with; for example if you are working with a first-party publisher who also owns a platform, like Microsoft or Sony. Then they will be able to help you get your game onto their platforms, among other things.

Allegedly, Grin’s bankruptcy in 2009 was caused at least in part by their publisher reneging on milestone payments.

Bonuses and Royalties

Maybe you are asking yourself how you can possibly reach your goals of growth or sustainability if you are only getting paid for milestone delivery. The answer is generally quite simple: you can’t. But it’s not all doom and gloom either. Many contracts will have various forms of bonuses that can be paid out if a game does particularly well.

A bonus on delivery can be applied. Usually tied to delivering faster or to a higher standard (for example, a better Metacritic score). There can also be penalties to this or reductions to other bonuses if a project gets delayed or fails to achieve agreed-upon goals.

There can also be straight-up royalties. Maybe you get 20% on all revenue that the game accumulates in stores. This is where the concept of “advance on royalties” will often come in and bite you. If you have such a contract, which was probably more common 10+ years ago, your 20% royalty will have to pay back all of those juicy milestone payments you got before you can bank any money towards your sustainability or growth.

In other words, with a 20% advance on royalty, the financer will have to make its costs back five times over before you start seeing any royalties. Chris Taylor, then of Gas Powered Games, once called this a “500% loan.”

The reality of the model described here is that most games either don’t break even at all or barely break even, for the developer, but the financer can still break even. In the meantime, the developer is forced to look for a new project with new milestone payments coming in or they are forced to cut staff or may even go bankrupt. This is one of the reasons you sometimes see studios do massive layoffs right after project delivery: no more milestone money coming in, and uncertainty around royalty profits for anything that isn’t an immediate hit.

Chris Taylor, who likened a 20% advance on royalties deal to a 500% loan.

Codev

Many studios today don’t make their money making their game but solving the problems of bigger or more financially successful studios. This can be to handle porting, localisation, rendering optimisation, bug fixing, testing, or really any other thing that you can specialise in and that another studio may want to pay for.

A codev studio may have the ambition to make its own games on the side, but codev can also be good business in itself. Particularly if you have a solid network of contacts that can provide you with a steady stream of work.

It’s not unusual for experienced developers to found smaller codev studios that then sell their work to previous employers. It allows a bit more independence and flexibility.

Codevs will usually function like any other contractor would, with an agreed-upon fee paid per developer per hour, week, month, or other time unit. As an example, a codev that charges $50/h (plus tax) would be paid around $8,000 per fulltime developer per month (i.e., 50 * 160).

Sprung Studios are celebrating 20 years as a codev studio in 2025, specialised on UX-UI.

Crowd Funding

In 2012, Tim Schafer’s iconic studio Double Fine made games industry history. They launched their “Double Fine Adventure” crowdfunding campaign on Kickstarter, promising to make the kinds of point-and-click adventure games that Schafer used to work on back in his Lucas Arts days. The campaign went on to pull in $3,336,371 from 87,142 backers, while originally asking for $400,000, and demonstrated quite clearly that there was real money to find in crowd funding.

However, before you jump off to work on your crowdfunding page, you must first realise two things. First, that Tim Schafer’s credentials as a developer was already proven and his quirky adventures from the past were games that many remembered fondly. Second, that even three million dollars is actually not all that much money for a mid-sized game project. Remember that just two people working for six months amounted to a €130k budget. Try doing the numbers for 15-20 people working for two years or more, and deduct all the costs to produce and ship the physical rewards you promised to some backers.

Crowd funding can be incredibly successful. Let’s not forget to mention Star Citizen in this context, having made over $800,000,000 selling what Wired once called “doubly virtual” space ships. But the fact is that building a successful crowd funding campaign today is extremely hard and also unlikely to give you enough money to finish your game.

Crowd funding can be used to gauge interest and to get you enough cash to build a prototype to bring to a publisher, but beyond that it’s a massive amount of risk to rely on crowd funding to pay your bills. The draw, of course, is that you’d only pay Kickstarter’s fees and taxes; you get to keep the rest. But if you think milestone penalties sounds like a tough consequence of delays, wait until you see the reactions of your future crowd funders when you tell them that they’ll have to wait another six months.

The Kickstarter campaign that may have started the whole video game crowd funding trend.

Ad Revenue

With the explosion of Roblox and Fortnite, an entirely new revenue stream came to games: advertising revenue. Not just in the form of popup ads, like we’ve seen for years, but pure advertising. Big brands and franchises like Nike or Burger King, with giant treasure chests of advertising money normally transformed into TV commercials and roadside billboards, now want to grab the attention of the hundreds of millions of kids who are playing these insanely popular games.

Of course, games have had instances of this before. It’s not entirely new. The Flash era, Second Life, and the various multimedia enterprises that cropped up to make low (and big) budget FMV games had similar goals and probably similar financing as well. So in a way, the current wave of ad revenue is just a much bigger version of what has come before.

But what it means is that you can certainly make a living from building Roblox experiences or Fortnite levels for big brands.

Wendy’s Feast of Legends TTRPG, which is way cooler than it has any right to be.

Service Games

Though gamers may talk about Games as a Service (GaaS) kind of how the characters in Harry Potter talk about Voldemort, service games are some of the most lucrative games on the market. One reason is that they typically have no spend ceiling. Where the types of sales we based the budget example on earlier have a unit price, a service game’s price range is between €0 and infinity.

Nicholas Lovell, in his book The Curve, refers to customers who pay nothing as freeloaders, but also point out that they are a crucial part of how you get superfans. Customers who can pay you so much money that they can finance your whole studio. Data varies between games, but some GaaS projects will see just 5-10% of players represent 90% of the continuous income.

One key transformation that happens when you start working on a service game is that you have to make business and monetisation part of the whole experience. It’s not unusual for service games to apply various dark patterns in their user experience and to incorporate behavioral sciences in ways that are absent from other types of games.

Just think about how many of World of Warcraft‘s features are built around wasting your time. Be it fighting the same monsters over and over, playing the same raid multiple times, or having to find your way back to your dead remains after getting killed. This ties quite nicely into the fact that you are paying a monthly subscription. For as long as the game can have you waste your time (willingly and lovingly, mind you), the developers keep making money.

Subscriptions is one way to make money from GaaS. This screenshot from World of Warcraft.

Publishers and Investors

On one side of the table you have yourself, a hopeful developer that may or may not run out of money a month from now and that are seated at this particular table maybe once every few years. On the other side, you have a professional negotiator who holds practically all the cards. Your future is in their hands.

If you are going to a publisher or investor hoping that they will pay your budget, you are asking them to take the financial risk and you will have to make some kind of tradeoff for this to be worth it for them.

If you attempt to go the publisher or investor route, you can forget about anything beyond sustainability. No publisher or investor out there will pay you ten times what your current game will cost to make in order to finance your future growth. They will pay you the least amount of money that they can get away with, and the pressure is then on you.

Portfolio

The reasons publishers have for parting with their money in one instance but not in another are sometimes indecipherable to us mere mortals. Some deals can be signed based on timing and how your game fits a financer’s portfolio. This type of deal can have decent terms, but can also come with the strangest of caveats.

If you are a publisher, and maybe for some investors too, what matters sometimes isn’t so much the game you are financing as its place in the larger scheme of things. Maybe you don’t have enough releases to coincide with Christmas, or you haven’t released a contemporary game or fantasy game in a long time and your competitors are about to do so.

If you can find this type of slot with your game, as a developer, it can be a golden opportunity. But it won’t give you the biggest budgets or most generous timelines.

According to its developers, the release of Shank was delayed because its publisher wanted it to release in a certain release window.

Revenue

Probably the most common exchange is to sell parts of your future revenue to a publisher. This is that “advance on royalties” scenario that was mentioned earlier. You get paid up front, usually in milestone arrears, and you then pay everything back once the game launches.

It’s actually not that common for publishers to ask for the big 80% chunk anymore. Today it’s more common with something like 50%. The more risk you take yourself, the better. So a game that has a solid playable prototype that demonstrates both that the game is worth making and that you are the ones who should make it will put you in a better negotiation spot and may allow you to keep a bigger percentage of potential future revenue.

Just remember that the publisher is taking the biggest risk. If your game doesn’t make any money, they will still have lost theirs, while you can just walk away.

Sequels, remakes, and DLC may have more generous royalties. Shot is from Alan Wake Remastered, which I have zero insights into.

Co-ownership

Some investors, and more rarely publishers, will want a percentage of your game company and a proportional role in your business decisions.

There are some tricky things with trading money for equity. For example, if you start at a rate of €1,000 per percent in your company, that caps how much money you can get in and may force you to sell more of your company than you want if you run into delays. It’s also all but impossible to get someone who comes in later to pay more than the previous rate per share, unless something drastic happens to your evaluation.

Another tricky thing is to make sure to rely on what’s called “smart money” in finance. You don’t want partners whose only contribution is money. You want them to know the business, have good contacts, or provide extra value of some other kind. If they don’t, it may not matter how much money they offer, because they are not improving your chances.

The Chinese tech giant Tencent has invested in many game companies across the world.

Exit

During a PocketGamer meetup a few years ago, there was a panel on investment in games and how to build sustainable businesses. One topic that came up was exits. An exit is when someone who owns equity in something sells that something at a higher valuation than it was bought and then leaves (“exits”) the company. When a big-name game company is sold, it’s likely that it’s because some of its investors made an exit on their investment. Sold off all their shares, took the money, moved on.

For years, this was what investors in gaming were after. If you played your money right, you could get returns on investment that were 10-100 times the money you invested. This was one of the reasons that there was so much “free” money to be had. It was simply quite lucrative to invest in games, with the kinds of payoffs that made the risk of losing it all quite worth it.

In that PocketGamer panel, a developer in the crowd asked a question. “What if we really believe in what we do, and we don’t want an exit, can we still find investors?”

Few things illustrate the mentality of some investors better than one panelist’s answer. They laughed, waved their hand dismissively, and said something like, “Why wouldn’t you want an exit? You can take the money and start a new company.”

All of that is to say, if you work with investors who are looking to make a buck on your credibility in this way, you need to be aware of it and in on it. They are not investing in you because they believe in you or your game, but because they believe in the potential to grow the value of their investment. In some cases, this means talking about the game being made to make the market react, and not to actually deliver the game.

It’s an investment strategy and not a creative enterprise. Know if that is what you want before you sign at the dotted line.

Some of the founders and investors of Avalanche exited with their earnings when Nordisk Film bought the studio in 2018.

Full Ownership

One model you may run into is a setup where an external party buys your company outright. Usually paid for with shares in something else, such as the parent company. This can provide a safety net if the organisation is a mature one but also means that you are going from a founder or co-owner role to become what amounts to a glorified employee.

If you can retain some authority over what you are selling, or if all you want is the relative safety of a larger organisation, this can still be worth it. Just be very careful to read the contract terms.

There are many game studio acquisitions through the industry’s history that gamers will shake their fists at.

Making Money Making Games

Many developers I know have a romanticised image of the scrappy indie developer bursting onto the scene and taking home enough money to never have to work again. For several decades, the aspirational image was that of id Software’s DOOM-delivering founders posing with their Ferraris.

But here’s something you need to remember. id Software was an independent company. They didn’t “just” make a good game and then get rich, they owned their intellectual properties, the technology they worked on, and they also experimented with how to sell and distribute games in the early 90s. There was no 30% Steam fee, no publisher taking a 50% cut of revenues (actually, for DOOM retail sales, GT Interactive took 80%…), no advance on royalties; it was all (mostly) theirs.

Every time you give something away, whether it’s stock in your company, future revenues, or IP rights, you’re making a tradeoff that may buy you some security in the short term but will also cost you parts of your independence.

If there’s any single takeaway you can make from this long-winded post on unintuitive ways to make money, it’s that. Consider carefully what you are willing to sacrifice, because you will have to sacrifice something.

If at all possible under your particular circumstances, experiment and prototype with business the same way you would with gameplay.

Don’t assume that you must have a publisher, or that you must use Steam to sell your game. Don’t assume anything.

John Carmack, then of id Software, posing with a Ferrari.

My Game Engine Journey

There, but certainly not back again.

It’s sometime around the late 1980s/early 1990s that some developers start talking about a “game engine” as a thing. Maybe not even using the term “engine” yet, but in the form of C/C++ libraries that can be linked or compiled into your project to provide you with ready-made solutions for problems. Color rendering for a particular screen, perhaps, or handling the input from a third-party joystick you want to support. The two Worlds of Ultima games are built on the Ultima VI: The False Prophet engine, as a decently early example.

When you put a bundle of these ready-made solutions together, it becomes an engine. In those days, the beating heart would usually be a bespoke renderer. Software that transforms data into moving pictures and handles the instruction set of whichever hardware it’s expected to run on.

What id Software perhaps revolutionised, if you are to believe John Romero in his autobiography Doom Guy: Life in First Person (an amazing book), was to make developer tools part of this process. To push for a more data-driven approach where the engine was simply the black box that you’d feed your levels and weapons and graphics into.

This is how we usually look at engines today: as an editor that you put data into and that makes a game happen. To give some context for this, I thought I’d summarise my personal software journey. One stumbling step at a time, and not all of it strictly engines.

QBASIC

When I grew up in the 80s/90s, I was often told that programming was simply too hard for Average Joe poor kids like myself. You had to be a maths genius and you had to have an IQ bordering on Einstein’s. At a minimum, you needed academic parents. If you had none of those, programming wasn’t for you. Sorry.

This is the mindset I adopted and it affected my early days of dabbling profoundly. Where I lived, in rural Sweden, there were no programmer role models to look up to, and there was no Internet brimming with tutorials and motivation either. Not yet. We didn’t have a local store with game-stocked shelves or even ready access to computers at school. Again, not yet.

But eventually, maybe around the age of 10 or so, I ran into QBASIC on the first home PC that was left over from my dad when he upgraded. Changing some values in the game Gorillas to see what happened was my introduction to programming in its most primitive form.

Ultimately, I made some very simple goto-based text adventures and even an attempt at an action game or two, but I didn’t have enough context and no learning resources to speak of, so in many ways this first attempt at dabbling was a deadend.

It’s clear to me today, looking back, that I always wanted to make games, and that I would probably have discovered programming earlier if I had been introduced to it properly.

QBASIC shipped with Gorillas, that I tried to mess around in on my fancy 80286 PC.

Hex Editing

Even if I felt programming was too complicated, I did pull some games apart and attempt to change things under the hood. One way you could do this was by using a hex editor (hex for hexadecimal) to manipulate local files. This is something you can still use for many fun things, but back then hexadecimal was part of how games were packaged on disk. (Maybe it still is and I’m letting my ignorance show.)

The image below is from Ultima VII: The Black Gate seen through a modern (free) hex editor called HxD. As you can see, it shows how content is mapped in the game’s files.

Back then, my friends and I would do things like replace “ghoul” in Ultima VIII with “zombi” (because it has to be the same number of letters), or even attempt to translate some things to Swedish for some reason. (To be fair, the Swedish translation of Dungeon Keeper 2 is in every way superior to the English simply because of how hilariously cheesy it is.)

To grab this screenshot I could still find the file from memory, demonstrating just how spongy and powerful a kid’s brain really is…

A tiny part of Ultima VII: The Black Gate as viewed through a hex editor.

Build Engine

With Duke Nukem 3D, and to a lesser extent DOOM, I discovered level editors. The Build Engine, powering the former, was a place where I spent countless hours. Some of the levels I made, I played with friends. I particularly remember a church level I built that had sneaky pig cops around corners, and how satisfying it was to see my friends get killed when they turned those corners.

How this engine mapped script messages to an unsigned byte, and memorising those tiny message codes and what they meant, were things I studied quite deeply at the time. I fondly remember a big level I downloaded at some point (via 28.8 modem I think) that was some kind of tribute level built to resemble Pompeii at the eruption of Vesuvius. It’s a powerful memory, and I’m quite actively not looking to find that level to get to keep the memory of it instead.

The fact that walls couldn’t overlap because it wasn’t actually a 3D engine were some of the first stumbling steps I took towards seeing how the sausage gets made.

The Build Engine editor that comes with Duke Nukem 3D, as launched through DOS.

Half-Life

Several years after playing around with the Build Editor, I discovered WorldCraft. I built a church here too for some reason, despite being a filthy secular Swede, and tried to work it into a level for the brilliant Wasteland Half-Life mod. This was much harder to do, since it was fully 3D, and you ran into the limitations of the day. The engine could only render about 30,000 polygons at a time, meaning that sightline optimisations and various types of load portals were necessary. Things I learned, but struggled with anyway. Mostly because Internet was still not that great as a resource. Had I been smarter, I would’ve started hanging around in level design forums. But level design never stuck with me the way programming eventually would.

During this time, I also learned a little about tools like 3D Studio Max, but as with programming in the past I thought you had to be much better than I was to actually work on anything. My tip to anyone who is starting out in game development: don’t bring yourself down before you even get started. It can deal lasting damage to your confidence.

WorldCraft was the name of what later became the Hammer editor, used with the Source Engine.

DarkBASIC and DarkBASIC Pro

During the late 90s and early 2000s, something came along that finally “allowed me” to make games, at least in my head. At first it was DarkBASIC, which is a BASIC version with added 3D rendering capabilities produced at the time by the British company The Game Creators.

This discovery was amazing. Suddenly I was building little games and learning how to do things I had only dreamed of in the past. None of it was ever finished, and I always felt like I wasn’t as good as people from the online communities. It’s pretty cool, however, that Rami Ismail hung out in these forums and that I may even have competed against him in a text adventure competition once.

Along the way, I did learn to finish projects however. I made two or three text adventures using the DarkBASIC sequel, DarkBASIC Professional, and even won a text adventure competition all the way back in 2006 with a little game I called The Melody Machine.

Image from the DarkBASIC Pro IDE.

RenderWare Studio

In 2005 I enrolled in a game development education in the town of Falun, Sweden, called Playground Squad. It was the first year that they held their expanded two-year vocational education for aspiring game designers, programmers, and artists. My choice was game design, since I didn’t feel comfortable with art or code.

This was a great learning experience, particularly meeting likeminded individuals, some who are still good friends today. It’s also when I started learning properly how the sausage gets made, and got to use things like RenderWare Studio. An early variant of an editor-focused game engine, where designers, programmers, and artists could cooperate more directly to build out and test games.

It was never a hit the way Unity or the UDK would become, but I remember it as being quite intuitive and fun to play around with. We made one project in it, that was a horde shooter thing. I made the 3D models for it in Maya, which isn’t something I’ve done much since.

Google search for Renderware Studio. Nothing remains from my own adventures in the engine.

SimBin Engine

I don’t remember what SimBin called their engine, but I got to work in two different iterations of it in my first real work at a game studio, as an intern starting in 2006. One engine was made for the older games, like RACE: The WTCC Game that became my first published credit. The other was deployed on consoles and was intended to be the next-generation version of SimBin technology. There I got to work on particle effects and other things, that were all scripted through Lua or XML if I recall correctly. Writing bugs in bug tools while performing light QA duties. To be honest, I’m not sure SimBin knew what they needed any designers for. But I was happy to get my foot in the door.

My best lesson from SimBin was how focused it was on the types of experiences they wanted. They could track the heat on individual brakes, the effects of the slipstream behind a car in front of you, and much more. They also focused their polygon budget on the rear of cars, since that’s the part that you see the most. You typically only see the front of a game model car in the mirror, rendered much smaller than you see the rear of the car in front of you.

This is an example I still use when talking about where to put your focus: consider what the player actually sees the most.

Race: The WTCC Game is my first published game credit.

Unreal Development Kit (UDK)

I did work with the visual scripting tool Kismet (precursor to Blueprint) and Unreal’s then-intermediary scripting language UnrealScript in my spare time in 2006, for a year or so. It had so many strange quirks to it that I just never got into it properly.

First of all, Unreal at the time used a subtractive approach to level editing unlike the additive approach that everyone else was using, which meant that level design took some getting used to. With BSP-based rendering engines, the additive norm meant that you had an infinite void where you added brushes (like cubes, stairs, cones, etc.) and that was your level. In the UDK, the subtractive approach meant that you instead had a filled space (like being underground) where you subtracted brushes to make your level. The results could be the same, and maybe hardcore level designers can tell me why one is better than the other, but for me it just felt inconvenient.

Never got into UDK properly, because I always felt like you had to jump through hoops to get Unreal to do what you wanted it to. With Kismet strictly tied to levels (like a Level Blueprint today), making anything interesting was also quite messy, and you had to strictly adhere to Unreal’s structure.

Visual scripting has its uses, but if I had a Swedish Krona for every time someone said “you don’t need to know programming”

Starbreeze Engine

My longest stint at a single company, still to this day, was with Starbreeze. This is the pre-Payday 2 Starbreeze that made The Chronicles of Riddick: Escape from Butcher Bay and The Darkness. The reason I wanted to go there was the first game, the best movie tie-in I had ever played. A game that really blew my mind when I played it with its clever hybridisation of action, adventure, and story.

Starbreeze was very good at making a particular kind of game. Highly cinematic elements mixed with first-person shooter. If this makes you think of the more recent Indiana Jones and The Great Circle, that’s because Machinegames was founded by some of the same people.

Starbreeze Engine was interesting to work with, with one foot firmly in the brushy BSP shenanigans of the 90s (additive, thankfully), and the other trying to push forward into the future. Its philosophies, including how to render a fully animated character for the player in a first-person game, and how scripting was primarily “target-based” in the words of the original Ogier programmer, Jens Andersson, are things I still carry with me.

But as far as the work goes, I’m happy that we don’t have to recompile our games for 20 minutes after moving a spawnpoint in a level anymore. (Or for 10-24 hours to bake production lighting…)

The 2012 Syndicate game was the last game released using the Starbreeze Engine, to my knowledge.

Nuclear Fusion

During my time at Starbreeze, I finally discovered programming and C++ and learned how to start debugging the Starbreeze Engine. Something that made my job (gameplay scripting) a lot easier and finally introduced me to programming in a more concrete way at the ripe age of 26.

At first, I tried to use the DarkBASIC-derived DarkGDK to build games in my spare time, since I understood the terminology and conventions, but soon enough I found another engine to use that felt more full-featured. It was called Nuclear Fusion. It was made by the American one-man company Nuclear Glory Entertainment Arts, and I spent some money supporting them during that time. Now they seem to be gone off the face of the Earth unfortunately, but I did recently discover some of the older versions of the software on a private laptop from those years.

As far as projects go, I never finished anything in this engine, but I ended up writing the official XInput plugin for some reason. Probably the only thing I ever wrote in plain C++ to be published in any form.

An old promo screenshot from the abandonware Nuclear Fusion game engine.

Unity

Having built many throwaway prototypes by this time, but never quite finished anything, I was still looking for that piece of technology that could bridge the gap between my lower understanding of programming and that coveted finished game project I wanted to make. At this point, I’m almost six years into my career as a game developer and my title is Gameplay Designer.

It’s in 2011-2012 that I discover Unity. On my lunch break and on weekends, I played around with it, and it’s probably the fastest results I’ve ever had in any game engine. The GameObject/Component relationship was the most intuitive thing I had ever seen, and my limited programming experience was an almost perfect match for what Unity required me to know.

Unity became my first introduction to teaching, as well, with some opportunities at game schools in Stockholm that came about because a school founder happened to be at the Starbreeze office on the lunch break one day and saw Unity over my shoulder. “Hey, could you teach that to students?” All of two weeks into using it, my gut response was “yes,” before my rational brain could catch up. But it turned out I just needed to know more than the students, and I had a few more weekends to prepare before course start. Teaching is something I’ve done off and on ever since—not just Unity—and something I love doing. Some of my students have gone on to have brilliant careers all across the globe, despite having the misfortune of getting me as their teacher at some point.

Since 2011, I’ve worked at four different companies using Unity professionally, and I have been both designer and programmer at different points in time, sometimes simultaneously. It’s probably the engine I’m most comfortable using, still to this day, after having been part of everything from gameplay through cross-platform deployment to hardware integration and tools development in it.

You can refer to Unity as a “frontier engine,” meaning that it’s early to adopt new technologies and its structure lends itself very well to adaptation. You set it up to build a “player” for the new target platform, and you’re set.

Today it’s more fragmented than it used to be, with multiple different solutions to the same problems, some of which are mutually exclusive. If you ask me if I think it’s the best engine, my answer would be no, but I’ll be revisiting its strengths and weaknesses in a different post.

One of the many projects my team at Calm Island Sweden was part of delivering. It was called First Step, as you can tell.

Unreal Engine 4

The same person who pulled me in to teach Unity also introduced me to Unreal Engine 4 in the runup to its launch. I was offered an opportunity to help out on some projects, and though I accepted, I didn’t end up doing much work. It coincided with the birth of my first child (in 2013) and therefore didn’t work out as intended. I’ve still used Unreal Engine 4 quite a bit, including working on prototypes at a startup and teaching it to students.

It’s a huge leap forward compared to the UDK, maybe primarily in the form of Blueprint. Blueprint is the UE4 generation of Kismet and introduced the object form of Blueprints that you’d be used to today. Rather than locking the visual scripting to a level, Blueprints can be objects with inheritance. They are C++ behind the scenes and the engine can handle them easily and efficiently using all the performance tricks Unreal is known for.

Funnily enough, if you came from UDK, you can still find many of the Kismet helper classes and various UnrealScript template shenanigans are still there in Blueprint and Unreal C++ but wrapped into helper libraries. It’s clearly an engine with a lot of legacy, and the more of it you know before starting the better.

Unreal Engine 4 had a quirky but fast editor interface.

Toadman Stingray

Autodesk Stingray is an engine that was developed from the Swedish BitSquid engine after Autodesk purchased it and repurposed it for their own grand game engine schemes. BitSquid was a company founded by some of the developers that once made the Diesel engine, that was used at the long-since defunct Grin and later Starbreeze-merged Overkill game studios.

When I worked with it, Autodesk had discontinued the engine, but three studios were still using it and supporting it with internal engine teams. Those three were Arrowhead, Fatshark, and Toadman. I worked at Toadman, as Design Director.

As far as engines go, Stingray has some really interesting ideas. Two things struck me, specifically. The first is that everything in the engine is treated essentially as a plugin, making it incredibly modular. Animation tool? Plugin. Scripting VM? Plugin. The idea of a lightweight engine with high extensibility is solid. Not sure it was ever used that much in practice, but the intention is good.

Another thing I bring with me from those days isn’t strictly about Stingray, but about a fantastic data management tool called Hercules that Toadman used. It allowed you to make bulk changes to data, say doubling the damage of all weapons with a single command, and was an amazing tool for a system designer. It decoupled the data from the game client in ways that are still inspiring me to this day. Sadly, since earlier this year (2025), Toadman is no longer around.

A random screenshot from the main Autodesk Stingray editor.

Unreal Engine 5

The jump between Unreal Engine 4 and Unreal Engine 5 is not huge in terms of what the engine is capable of, even if Epic certainly wants you to think so (Lumen and Nanite come to mind). But there is one big difference and that’s the editor itself. The UE5 editor is much more extensible and powerful than its older sibling, and is both visually and functionally a complete overhaul.

There’s also a distribution of Unreal Engine 5 called Unreal Editor for Fortnite that uses its own custom scripting language called Verse, that is said to eventually be merged into the bigger engine. But I simply have no experience with that side of things. My amateur level designing days are long-since over.

Probably the biggest change between UDK and UE5 is that the latter wants to be a more generic engine. Something that can power any game you want to make. But in reality, the engine’s high end nature means that it’s tricky to use it for more lightweight projects on weaker hardware, and the legacy of Unreal Tournament still lives on in the engine’s core architecture and workflows.

As with Unity, I don’t think it’s the best engine. But I’ll get into what I consider its strengths and weaknesses in a future post. I’ve spent years working with UDK, UE4, and UE5, in large teams and small, but haven’t released any games with them thus far. Projects have been defunded, cancelled, or otherwise simply didn’t release for whatever reason.

Unreal Engine 5 has a much more mature editor and tools extension pipeline than Unreal Engine 4.

Star Stable Engine

Imagine that you release a new update for your game every week, and you’ve been doing so consistently since 2013. This is Star Stable Online—a technical marvel simply for the absolutely insane amounts of data it handles. Not to mention the constant strain on pipelines when they’re always in motion.

My biggest takeaway from working alongside this engine last year (2024) is its brilliant snapshot feature that allows you to to save the game’s state at any moment and replay from that moment whenever you like. Even shared with other developers. This approach saves a ton of time and provides good grounds for testing the tens of thousands of quests that the game has in store for you after its 14 years (and counting) life span.

You may look at its graphics and think, “why don’t they build this in Unreal?”, but let’s just say that Unreal isn’t an engine built to handle such amounts of data. The visuals may improve, but porting it over would be a much larger undertaking than merely switching out the rendering.

A low resolution screenshot of the editor, from the Jorvikipedia.

Arrowhead Stingray

Can’t really talk about it. It’s Stingray, but at Arrowhead, and it powers Helldivers 2. Like the engine’s Fatshark and Toadman variants, it has some features and pipelines that are unique to Arrowhead.

Summary

  • QBASIC (around ’89 or ’90?)
  • Hex Editing (early 90s)
  • Build Engine (early-mid 90s)
  • WorldCraft/Hammer (late 90s, early 00s)
  • DarkBASIC/DarkBASIC Pro (late 90s, early 00s)
  • RenderWare Studio (’05 or ’06)
  • SimBin Engine (’06) First professional work.
  • UDK (’05-’07)
  • Starbreeze Engine (’07-’12)
  • DarkGDK/Nuclear Fusion (’09-’12)
  • Unity (’12-today)
  • Toadman Stingray (’17-’20)
  • UE4 (’14-’21, sporadically)
  • UE5 (’21-today)
  • Star Stable Engine (2024)
  • Arrowhead Stingray (2025-?)

Today

I hope I get to play around with even more engines than I already have. They all teach you something and expand your mind around how game development can be done.

At the end of the day, it doesn’t matter which engine you use, and it’s not often that you can make that decision yourself anyway if you’re not footing the bill.

Like an old colleague phrased it, “there’s no engine worse than the one you’re using right now.”

Fortunately, there’s also no better engine for getting the work done.

A State-Rich Simulation

The object-rich world is crucial for making systemic games. Similarly, the state-space of your game can be used to describe the entirety of your design and to facilitate more holistic game development.

But it’s about time that we talked about data, since it keeps coming up. How to describe the smallest pieces of your simulation and the effects of this choice on your game.

This nicely rounds out the design space for systemic games.

State and Context

One of the key things I have long wanted to solve is how to handle data as an external element to a project to facilitate both modularity and extensibility. The engine will have to interface with the data, but you shouldn’t have to chase down specific objects in a level to modify them.

To better understand why this matters, let’s establish some terminology.

Data

We’ve defined data as almost everything a computer is operating on, and something we tend to bundle up and package as content using various tools. At this level, all data is more or less the same.

  • Everything in a game is data.
  • Data is often bundled up as content.

State

A person’s state of being or state of mind define data in the moment: how you are right now and what you are thinking about or feeling. In computer science, state is remembered data; things that are stored and can be referenced.

  • State is data that is stored and can be referenced.
  • Something’s ‘state’ is its value when checked in the moment.

Context

Context, in computing, is the minimum amount of state that needs to be saved to be able to restore the same state at a later point (where “context-switching” comes from). But for this post’s purposes, it’s more literal.

The local context is an object’s local state at a given moment in the simulation.

  • Local context is an object’s local state at a given moment.
This character is Armed, it’s Grounded, and it’s currently Aiming: those could all be states in its local context.

Once we start introducing more objects to the simulation, their relationships will result in relative context: object-relative state in a given moment. Comparisons expressed as state. For example, whether one object is moving faster or slower than another.

  • Relative context is an object’s state in comparison to other objects.
The middle character is “more armed” than the character to its right, but “as armed” as the one to its left; this is relative context.

State Properties

When you plan out your state, it’s also relevant to consider how and by who it will be used. If you change a value that only exists for a single-player game it’s probably fine to treat it more carelessly. If players decide to go in and change it, this will not amount to cheating since it’ll only change their local gameplay experience. It’ll functionally be modding.

But if you are building a multiplayer game with server-side authority and a network backend, you need to make different considerations and plan your data much more carefully.

  • Hard-coded. Data is “hard-coded” when it’s written directly into program code and compiled, making it impossible to iterate on the data while the game is running and complicating knowledge sharing and tweaking. Initial test data, like move speeds or jump heights, can sometimes be hard-coded to make sure something works.
  • Constant. A named variable that is available throughout a given scope. Pi and the gravitational constant, or your game’s easy mode damage baseline (see later) can be constants.
  • Variable. A variable is a name for data that changes at runtime, or at least can change at runtime. Move speeds, jump heights, and other classics are examples of variables that may be manipulated during play.
  • Tweakable. A number that developers can access readily and that may need several rounds of tweaking. This type of number benefits from templating (see later) and from being externalized from the object(s) it is affecting. Individual values for long lists of items, like the Damage value for all of your 250 guns, or the gold costs for your 1,000 items.
  • Metric. A metric is something that gets sent to a backend and can be used to analyze how players engage with your game. It’s rarely a variable or even a tweakable that gets sent this way. May be something as simple as telling the backend which level is started or the duration of a challenge the player played.
  • Optional. This is data, typically a variable, that is accessed directly by the player. The font scale, color of the UI, music volume, etc.; but it can also go deeper, as with the many customization options you have in a game like Civilization.
  • Persistent. Data is ‘persistent’ when it needs to live across multiple game sessions. You don’t need to make constants persistent, for example, or really anything that is represented by content, but anything that should stay the same between play sessions will have to be persistent. Current health, current level, location of character in the game world, optional settings (like volume), etc., will usually be expected to be persistent.
  • Visible. Whether a number or other point of data is player-facing is a crucial consideration. Anything that is player-facing will usually require filtering (e.g., Imperial vs Metric, or other localization), and needs to be more carefully designed than data that only exists in the simulation. Damage and health numbers, character names, dialogue subtitles, etc.
  • Content. Usually when a game is referred to as data-driven, it’s because files on disk are defining how things get set up. Tweaking this data is about changing it, sometimes through an external tool or suite of tools. A premade level, an enemy with all its key data assigned through a registry file, or a 3D asset.
  • Global. Data that is accessible everywhere in the game is global. This is generally the only scope consideration you need to do when you are designing your state space, since individual scopes are not as relevant or even automatic to the context you are working in. Quest facts, like if you have met Character Y before can be global, and optional and player-facing data is often global.
  • Input. Data that comes from hardware input is a bit different, since you rarely want your game to access it directly. Rather, it’s good practice to use some kind of abstraction between the input and the gameplay action triggered by it. Analogue X/Y stick movement axes, touch gesture events, button presses and releases, etc.
  • Replicated. Data that gets sent to clients across a network to simulate the same game state is said to be replicated. Which data a game replicates is an extremely important design consideration for multiplayer games and is therefore an important property to consider. Input sent to a server, timed events sent across peers in peer-to-peer networking, etc.
  • Fuzzified. Data sets that has variable degrees of membership are referred to as “fuzzified” data, and we get into that later in this post. It’s a technique that can be used to turn tricky numbers into human-readable form and to allow computers to communicate in a way that somewhat resembles human conversation. How ‘warm’ a temperature is, how ‘damaged’ a character is, etc.
  • Partial. If merely to track connections between pieces of data, it can be relevant to flag something as only part of a larger whole. If you separate data into base, attribute, and modifier, for example, noting that the data is partial and how can be very relevant. Any data that needs other data to be functional; maybe Strength is added to Damage and then multiplied by HitLocation; these three are then all partial pieces of data from the damage function.
  • Temporary. Data that has a start and end time during the simulation and that isn’t technically variables. They can still be parts of key functions, but are not something that the developer is actively tweaking. Match points that are tossed out after tallying, score multipliers that are accumulated for just a single second, etc.

State Representation

All games represent state in some way, even if we may not think of it or plan it as such. There will be health numbers, speeds, and all manner of things to represent, and sometimes this grows organically from implementing the features we want.

“Eh,” the designer says to the programmer, “we need to add a Headshot Damage Multiplier to each enemy now that we have the helmeted one.” Additional state gets added, and often to every single object in the game, and not just to the ones that need it.

How we represent this state in our logic is what this section is about. It can be just a flat number in a spreadsheet somewhere; what Michael Sellers would call the “spreadsheet specific” layer of your data. But it can also use one of many existing ways for easy or efficient data representation.

Conceptual Separation

When you work with numbers in games the only thing that is certain is uncertainty. You will change the numbers down the line. But the great risk of any numeric system that changes it that you get cascading effects if you don’t plan for which levers you need beforehand.

To do this, you can separate the numbers up front into Baseline, Attributes, Modifiers, and Functions. You can read more about this in a previous post on gamification.

Spreadsheet Specific

King Arthur may have his Excalibur; as system designers we wield Excel! For many game designers it’s natural to gravitate towards spreadsheet tools for data management. To separate things into rows and columns and make any relevant changes as needed.

Because of this, you will find variations on spreadsheet support for most game engines. It’s quite common to use the comma-separated values (CSV) format to export them from spreadsheets and pull them directly into your game engine.

I use spreadsheets for a lot of things but very rarely for direct authoring of data. This is a preference, of course, but also comes from how spreadsheets represent data. Since it’s natural to simply add another column to represent a new feature for an object, even if it means that there’ll be an additional “0” in that column for every object that doesn’t use it. The risk for bloat is very high.

Some of the procedural implementations of features described in the post on building a systemic gun come from a spreadsheet specific line of thinking and is far more common than you’d expect.

Image of a beautiful spreadsheet, from Entro Games’ tutorial on spreadsheets in board game design.

XML

The Extensible Markup Language (XML) is sometimes used for registry files that can be compiled into game data, and sometimes in portable formats where the XML remains accessible for developers or players to change the values if they want. Variants of XML were extremely common in the past but is something I haven’t personally seen as much in recent years except in its XAML format for UI construction.

XML has a very readable and extensible format, with tags and closing tags that tell the parser what to expect. It can also be generated easily using custom tools.

<gameobject type="Character">
    <name>Goblin</name>
    <class>Fighter</class>
    <str>10</str>
    <hp>4</hp>
    <equipment>
        <item>Dagger</item>
        <item>Letter to home</item>
    </equipment>
</gameobject>

JSON

Probably more common today than XML, the JavaScript Object Notation (JSON) has pretty much the same benefits but is maybe slightly more readable. Which one you prefer, if any, is mostly down to preferences.

JSON is used extensively in web development and database formats, which is probably one of the reasons it’s become more and more common.

{
    "type": "Character",
    "name": "Goblin",
    "str": 10,
    "hp": 4,
    "equipment": [
        "Dagger",
        "Letter to home"
    ]
}

Lookup Tables

A lookup table is an array that contains all potential instances of some piece of data and allows it to be referenced by index. In any situation where you end up copying the same data over and over, potentially into hundreds or even thousands of instances of identical values, this can be a big way to save yourself from headaches (and memory waste).

Imagine a flow field, for example. A space that represents the vector force you’d apply to any unit walking a grid based on which grid cell it’s currently occupying. This could have each cell use its own Vector3D, with three separate floating point numbers per cell, or it could store a single byte with a lookup table index. The Vector3Ds would only be stored in a single place. This shrinks the amount of data you need to use by a lot and makes it easier to plan the data from a design perspective.

Since many types of state will repeat, lookup tables are a good way to represent them and can also provide a single location for developers to tweak values. For example, the damage modifier added from difficulty could live in a difficulty lookup table.

Array<Vector3D> FlowfieldVectors = 
{
    Vector3D::Zero,                                         // 0
    Vector3D::Up,                                           // 1
    Vector3D::Down,                                         // 2
    Vector3D::Left,                                         // 3
    Vector3D::Right,                                        // 4
    Vector3D::Normalize(Vector3D::Up + Vector3D::Right),    // 5
    Vector3D::Normalize(Vector3D::Up + Vector3D::Left),     // 6
    Vector3D::Normalize(Vector3D::Down + Vector3D::Right),  // 7
    Vector3D::Normalize(Vector3D::Down + Vector3D::Left),   // 8
};

Scripting Language

If you want more than just object representation in a serialised format, a good way to achieve it is by using an external scripting language. Where spreadsheets and object notation allow you to populate your game with data, a scripting language allows you to provide logic along with the data.

The below example is taken from the excellent book Programming Game AI by Example, by Mat Buckland, and shows a small Lua script defining a state (State_GoHome) for a state machine. A good example of what you can turn into data-driven parts of your game with a scripting language.

This is often within the realm of what a technical designer would be working with, since it allows behavior to be constructed outside the compiled game client and therefore makes iteration a lot faster.

State_GoHome = {}

State_GoHome["Enter"] = function(miner)
    print ("Walkin home in the hot n' thusty heat of the desert")
end

State_GoHome["Execute"] = function(miner)
    print ("Back at the shack. yer siree!")
    if miner:Fatigued() then
        miner:GetFSM():ChangeState(State_Sleep)
    else
        miner:GetFSM():ChangeState(State_GoToMine)
    end
end
  
State_GoHome["Exit"] = function(miner)
    print ("Puttin' mah boots on n' gettin' ready for a day at the mine")
end

If you push it even further, you can even make the scripting language a player-facing element, but then you’re obviously going into a different realm than data handling.

The quite brilliant Replicube uses Lua for its main gameplay.

Key-Value Pairs

Context the way I refer to it in this post is inspired by Elan Ruskin’s approach to dialog on Left 4 Dead. In his own words (from the book Procedural Storytelling in Games), “A context is a single key-value pair such as PlayerHealth:72 or CurrentMap:Village5. For performance reasons it’s best to use numeric values as much as possible, so for string values such as names, consider internally replacing then with unique symbols or hashes.”

A key-value pair can be represented in many different ways in code and is often used in data structures like maps and dictionaries. You’ve probably already made use of them many times before.

template <typename KEY, typename VALUE>
struct KeyValuePair
{
    KEY key;
    VALUE value;
};

World Properties

Inspired by Jeff Orkin’s world state representation, one way you can represent state is by using a union in C++ or explicit memory layout in C#. Each piece of state will always take up the same amount of memory, you can pool it easily, and you can use it across your game to describe the state of individual objects.

In the case of Goal-Oriented Action Planning (GOAP), this state is used to represent the current setup of the world so that enemy AI can make up a plan to execute. The state is handled as nodes in a graph with the edges represent actions. A goal-first A* algorithm handles the planning.

This way of representing runtime state has other benefits too. One of them is that it can be decoupled from the objects that the data represents and can then be used for other intermediary operations as well.

How it looks in the paper:

struct SWorldProperty 
{    
    GAME_OBJECT_ID hSubjectID;    
    WORLD_PROP_KEY eKey;    

    union value    
    {       
        bool   bValue;       
        float  fValue;       
        int    nValue;       
        ...    
    }; 
};

And here is how the paper demonstrates the use of a world property:

SWorldProperty Prop; 
Prop.hSubjectID = hShooterID; 
Prop.eKey = kTargetIsDead; 
Prop.bValue = true; 

“If the planner is trying to satisfy the KillEnemy goal,” writes Jeff Orkin, “it does not need to know the shooter’s health, current location, or anything else. The planner does not even need to know whom the shooter is trying to kill! It just needs to find a sequence of actions that will lead to this shooter’s target getting killed, whomever that target may be.”

In other words, it’s enough to store exactly what you need right now as world properties, and not treat game state as a runtime database.

Tags

Tags have a lot in common with keywords in card and board game design. It’s the use of a single word or few-word sentence as shorthand for a game rule or exception. Some creatures in Magic: The Gathering deal their damage before other creatures get to deal theirs, for example. A rule effect referred to consistently as “First strike.”

Helpful summary image of all keywords in Magic: The Gathering.

This same principle can be applied to game state too. As a descriptor (“Elf”), for conditional reasons (“Immunity.Fire”), or as a modifier (“Burning”). Consider a concept such as damage types for example. Just a damage number is fine, but you may want to qualify certain types of damage. Maybe a Piercing weapon does less damage to skeletons, or is better protected against by a chainmail armor. Then Piercing can be a tag applied to all three: weapons, enemies, and armor.

Most game engines use tags in one way or another. They may be developer-facing strings that get hashed at compile-time or they can be sent as a stream. Some engines do none of this automatically, however, and may expect you as the developer to not do unnecessary string comparisons or other expensive things at runtime. (As a general rule you should always avoid comparing strings to each other: compare their hash, length, or other cheaper thing instead.)

struct Tag
{
    // A hash of the original string, used for fast comparisons.
    int32 Hash;

    // An index into a single array where all the strings can be found.
#ifdef _DEBUG
    int32 StringIndex;
#endif
};

With a tag specified, and the developer-facing strings present somewhere, you can then create a structure for comparing groups of tags against each other and to test if specific tags are present. Of course, you may want to make the strings player-facing too and expose it completely to the game, but that’s not a requirement.

struct TagCollection
{
    Array<Tag> Tags;

    void AddTags(Array<Tag>& NewTags);

    // Has this specific tag.
    bool HasTag(Tag& Tag);

    // Has any of the tags in the other collection.
    bool Any(TagCollection* Other);

    // Has all of the tags in the other collection.
    bool All(TagCollection* Other);

    // Has exactly the same tags as another collection.
    bool Exact(TagCollection* Other);
};

Maybe you want to do additive trait-matching, and check if an armor has Resistance.Piercing before you deal damage with a sword that has Damage.Piercing. Or you want to collect tags as context before you do fuzzy pattern-matching.

Simply put: tags are extremely useful.

Data Assets and Fuzzy Sets

Many struggle to remember the exact number 9.80665. But if we refer to it as Gravity we don’t have to use the number. We can also change it down the line in a single place if we suddenly want things to behave differently across our game. When we do this, we fuzzify the data. We use words to describe it, as with variables in code.

This can be done in a template (or C# generic), for example:

template <typename T>
class DataAsset
{
    T value;

public:
    DataAsset(T new_value) : value(new_value) {}
    T GetValue() const { return value; }
    void SetValue(T new_value) { value = new_value; }

    // Serialization and other fun stuff!
};

With a template like this, you can easily add saving and loading, comparison checks, and other handy ways of reusing the concept of data across your game. It’ll all just be added to the DataAsset class and you can make all of them live in a single place in memory, on disk, or whatever you want.

DataAsset<float> Gravity = DataAsset<float>(9.80665f);

It’s straightforward to use, even if this variant would still rely on hard-coded numbers, and it’s generally a better idea to use external JSON or other scripting methods that can be changed without having to recompile your code.

The real power of fuzzification is that you can start referring to numbers conceptually and not just as plain numbers. This doesn’t just simplify the conversation, it also means you don’t have to painstakingly change that price point for a gazillion individual items.

struct Prices
{
    DataAsset<int> cheap = DataAsset<int>(5);
    DataAsset<int> ok = DataAsset<int>(150);
    DataAsset<int> costly = DataAsset<int>(2200);
    DataAsset<int> expensive = DataAsset<int>(17000);
};

This same principle can be applied to sets with more than just one point of data. We will then want to define fuzzy sets where your input will have a degree of membership with each value in the set.

struct FuzzyKeyValue
{
    float key;
    float value;

    FuzzyKeyValue(float _key, float _value) 
    { key = _key; value = _value; }
};

template <typename T>
class FuzzySet
{
    T object;
    Array<FuzzyKeyValue> keys;
    
public:
    FuzzySet(T _object, Array<FuzzyKeyValue> _keys)
    {
        object = _object;
        keys = _keys;
    }

    T GetObject() { return object; }

    float Evaluate(float t)
    {
        // Assert that there are at least two keys; pointless if not

        for(auto i = 1; i < Keys.Num(); i++)
        {
            auto a = Keys[i-1];
           auto b = Keys[i];

            if(t >= a.Key && t <= b.Key)
            {
                // Return the 'degree of membership' of the supplied t
                return Lerp(a.Value, b.Value, (t-a.Key) / (b.Key-a.Key));
            }            
        }
    }
};

Let’s grab an example of something fuzzified from the Internet. In this case temperature:

The degree of membership for various temperatures.

To represent this in the simple code from before, it’d look something like this:

// Low
keys_low = {
    new FuzzyKeyValue(1f, 0),
    new FuzzyKeyValue(1f, 10),
    new FuzzyKeyValue(0f, 20)
};

FuzzySet<string>("Low", keys_low);

// Medium
keys_medium = {
    new FuzzyKeyValue(0f, 10),
    new FuzzyKeyValue(1f, 20),
    new FuzzyKeyValue(1f, 30),
    new FuzzyKeyValue(0f, 40),
};

FuzzySet<string>("Medium", keys_medium);

// High
keys_high = {
    new FuzzyKeyValue(0f, 30),
    new FuzzyKeyValue(1f, 35),
    new FuzzyKeyValue(1f, 60)
};

FuzzySet<string>("High", keys_high);

To finally make practical use of this data, we can wrap a number of sets together, like the example below, to find out how warm a certain temperature is.

struct FuzzyTemperature
{
    FuzzySet<string>[] Temperatures =
    {
        FuzzySet<string>("Low", keys_low),
        FuzzySet<string>("Medium", keys_medium),
        FuzzySet<string>("High", keys_high)
    };

    string Evaluate(float t)
    {
        string returnString = "";
        auto evaluation = 0.f;
        
        for(auto set : Temperatures)
        {
            auto eval = set.Evaluate(t);
            if(eval > evaluation)
            {
                evaluation = eval;
                returnString = set.GetObject();
            }
        }

        return returnString;
    }
};

Predicate functions

A predicate function is a function that returns a single boolean true or false from supplied parameters. It’s an excellent way to test the validity of different situations at runtime and graduates state into its relational equivalent, which we can call context.

Many world property unions will effectively do the same thing, such as the kTargetIsDead property example illustrating a desire for the target to be dead. A predicate function is where we learn what is true at runtime.

This can be simple and effectively reusable, for example if you have a resource object that can be reused for any number of resources:

bool ResourceCheck::ResourceBelowThreshold(const float Threshold) const
{
    return PlayerData.ResourcePercentage < Threshold;
}

Since predicates can be used for almost anything it can make a lot of sense to keep a bunch of them around in a gameplay-scope helper library. For the following examples, I was a bit lazy, but you can see how quickly this becomes useful. For example, if InFront and FacingSame are both true at the same time, it would be the contextual requirements for a classic video game stealth takedown.

static bool InFront(Transform* Self, Vector& TargetLocation)
{
    return Self->InverseTransformPosition(TargetLocation).Z > 0.f;
}

static bool Behind(Transform* Self, Vector& TargetLocation)
{
    return Self->InverseTransformPosition(TargetLocation).Z < 0.f;
}

static bool Left(Transform* Self, Vector& TargetLocation)
{
    return Self->InverseTransformPosition(TargetLocation).X < 0.f;
}

static bool Right(Transform* Self, Vector& TargetLocation)
{
    return Self->InverseTransformPosition(TargetLocation).X > 0.f;
}

static bool FacingSame(Transform* Self, Transform* Target)
{
    auto FacingDot = Vector::Dot(Self->Forward(), Target->Forward());
    return FacingDot > .9f;
}

Once you have these helper functions, you can use them in code to generate tags, populate bitmasks or lookup tables, or determine what happens when objects hit each other. You can use them to generate context queries for dialogue or to qualify gameplay interactions.

Bitmasks

A bitmask means using a variable’s individual memory bits as flags. With a byte, you can store 8 bits. With a 32-bit integer, you can surprisingly enough store 32 bits. Many tutorials you’ll find will become shock-full of boolean flags faster than you can blink. A “bool,” though it stores the equivalent of a bit, is still one byte of memory due to the smallest addressable thing in memory having that size. A bitmask is therefore a way to not fill your memory with unnecessary waste while only recording bits anyway.

For the purposes of data, it’s also a convenient way to bundle related information together. A good example is spawn points and spawning in general. If you have, say, five different game modes and you want to be able to support all five using different spawn points, you can use a bitmask to store this information for each spawn point.

enum GameMode
{
    assassinate = 1 << 1,
    infiltrate = 1 << 2,
    steal = 1 << 3,
    defend = 1 << 4,
    horde = 1 << 5
};

int32 CurrentState = assassinate | infiltrate | steal;

// Set a bit
CurrentState  |= 1 << defend;

// Clear a bit
CurrentState &= ~(1 << defend);

// Toggle a bit
CurrentState ^= 1 << defend;

if((CurrentState & GameMode.assassinate) == GameMode.assassinate)
{
    // 'assassinate' mode is supported.
}

Asset Data

Last, but certainly not least, there are many ingenious ways to use asset data to store information. I will mention just a few, to give you some pointers, but suffice it to say that one reason technical artists are in high demand is that clever solutions to pipeline problems can save considerable amounts of time and money even for small projects.

The same principles can be used in many different ways to store systemic data and state.

Keyframes

Animation keyframes are used to store the positions, rotations, and scales of bones that are weighted to skinned meshes. This doesn’t have to be an animated character but can just as easily be a piece of cloth or parchment, or even a whole level.

The latter was a way for Legacy of Kain: Soul Reaver to represent the two different worlds that the player could shift between. One keyframe per world (out of two).

Using the Shift Glyph in Legacy of Kain: Soul Reaver shifts the world between one of two keyframes.

Vertex Colors

Using vertex colors to paint objects is tried and true, but when you texture your objects you may no longer need it for this purpose. This opens up countless other opportunities to store data in your mesh objects. For example, Vagrant Story used vertex colors to store its baked lighting. A technique that worked quite well at the resolutions for that game.

The PlayStation classic Vagrant Story used vertex colors to store radiosity. From Dreamboum’s thread on Twitter.

Most game engines have support for one full RGB vertex color per vertex. It’s possible to store more than one vertex color per vertex too, such as is the case in The Last of Us Part 1, where the different vertex color channels are used as mask values for things like mould, dirt, and cracks.

Procedural tools like Substance Designer in combination with vertex color masking, from The Last of Us Part 1.

Furthermore, vertex colors can be accessed at runtime as well, and can then be used for updated live information. Say, the heat or magnetism generated by an object. I don’t know that this is how Splinter Cell does its heat vision, but it could be.

One way to represent heat information is to store it in vertex colors. Screenshot from Splinter Cell.

U-Dimensions

Something that has been mentioned before is how Neon Giant used the “U-dimension” (UDim) workflow not as a means to map more textures to an object but as a way to create masks simply by the act of UV-mapping a mesh.

This technique is quite clever and relies on mesh UVs (which are simply coordinates; “XY” was taken) using normalised values as a standard. I.e., values between 0 and 1. So by storing coordinates at higher values, like 1-2 or 2-3, you can map more than one set of UVs to the same object.

You can use this for anything where you’d use a mask or map more than one texture to the same object. It could be the albedo and metallic of a PBR material, as for Neon Giant, or you could map it to other properties such as bounciness or Resistance.Piercing.

Using UDims in Blender.

Which One?

When you pick which way to represent your data, you need to consider four factors:

  • Which tools pipeline you are already familiar with. Using UDims and other mesh techniques only make sense if you feel at home in a 3D suite, working with meshes. Similarly, you should only use CSVs and spreadsheets if you’re already comfortable with them or want to learn.
  • Which problems you are solving. If your game is tied to a backend, JSON makes a lot of practical sense since it’s already speaking the language of the web. But if you want players to customize your game, it may make more sense to use a scripting language.
  • Which levers you will need for testing and balancing. This is the most important, and the one that requires most design and planning. If you need to go back to an external tool every time something must be changed, whether that’s Excel or Blender, some changes may become too cumbersome to test.
  • How the data will be communicated. Both internally, between objects in your game, and towards the player. Some things will be developer-facing only, others will be player-facing. Making sure to have one source of truth is extremely important.

Hopefully those pointers can help you at least consider how to represent your data. There are many ways that these things are tied together ultimately. Objects, data, state-spaces, etc., and there are more ways than can ever be summarised in a post like this.

I will come back to this post to extend it when new things crop up. So if you have any suggestions for clever data representations, please send them to annander@gmail.com and I’ll consider adding them along with a thank you.

Combat as Drama

This post is the last post in a series on combat design.

There has been many attempts to classify storytelling. Georges Polti suggested The Thirty-Six Dramatic Situations in 1895. Vladimir Propp used a selection of 31 functions to illustrate similar things in the 1920s. There’s also the widely misused monomyth of Joseph Campbell, originally published in his book The Hero With a Thousand Faces in 1949. Stepping forward into our present day, Dan Harmon’s story circle and Christopher Booker’s Seven Basic Plots pop up.

Much of this work tries to take the nebulous concept of story and make it make sense. Sometimes through lenses such as folklore or mythology; today as attempts to make tools for screenwriters.

Screenwriting is the storytelling craft that seeps over into game development most often. But where gunplay and melee are technical challenges to solve, the design space for drama is something else. Without stakes, there is no drama. Without characters, goals, motivations, and risks, there is no drama. Some would say without conflict, there is no drama, and if we are not competing against other players, drama must come from somewhere else.

Let’s dive straight into the killing! We know we need to do violence in this combat game of ours, but we don’t yet know the details. The violence is also not what’s important for the drama to work.

Instead, there are five areas you can start with if you want to figure this out:

  1. Where I am and what I’m doing.
  2. Who I am, who I will be killing, who I care about, and why.
  3. What happens if I don’t kill who I need to kill.
  4. Which interesting choices I can make.
  5. I need to know that I won’t break the game.

Background

Where I am and what I’m doing.

When someone draws their gun or sword in a movie it’s often the culmination of a longer storyline. It doesn’t have to be an on-screen culmination, however. It can just as easily be Inigo Montoya telling someone to prepare to die and detailing why in the same breath.

This scene in The Princess Bride has the perfect amount of backstory.

The crux is that this doesn’t work in video games, and the reason is simple: a game cannot control its audience’s intentions or how they feel. Cinematic storytelling works on empathy. This has been discussed before. To afford a player the same level of connection to their character, the only trick that exists is to try to make the player and their avatar occupy the same head space.

The player needs to know who are involved, what the stakes are, and what can be done about it, and the avatar needs to be someone who shares the goals of the player. This is one reason why obeying is such a common activity: a soldier following orders is strongly connected to a player following instructions. The fantasy and the activity become one and the same. Go here, destroy this, kill those sentries.

In a game, it’s not enough to have your character tell the opponent that they should prepare to die because they killed your father. You, the player, will have no idea what the character is talking about if they do.

To mitigate this, many games use one of two effective shortcuts: stereotypes and/or explicit connection.

Stereotypical Evil

Alien invaders. Bugs. Nazis. The living dead. Foreigners. It’s always easier to make someone kill those who look different or speak a different language. Though the symbolism can be quite problematic, games rarely engage with symbolism and instead use stereotypical enemies for the sake of having something to kill.

It used to be, just like in Wolfenstein: The New Colossus, that everyone understood the Nazis were bad.

Mandatory Connection

The more ham-fisted way is to copy the form that film uses and simply tell the player what they should care about. Those polygons over there were your family, now proceed to gun down bad guys for 15 hours.

Or, even more lazily, you need to find a person who is gone. Now go off and find them and kill everyone who stands in your way. There’s no way for you to know how they look like, where they are, or anything else: you need to trust that the game tells you when you did right or wrong.

What makes the empathetic connection work in film is the cinematic authorship and the way film directs the audience through this empathy. With players of games, they may be skipping all cutscenes, taking a phone call during the exposition, or even just fiddle around with their inventory items while someone is talking. Those are the activities you need to capture.

The titular character in Max Payne is motivated by the death of his wife and daughter: a mandatory connection.

Cast

Who I am, who I am killing, who I care about, and why.

Making believable characters is not always the goal. Some games, like puzzle games and sports games, may not have much story context at all that requires such things. But my personal passion is immersive and highly systemic games with a strong core fantasy. Such games benefit from characters.

  • Protagonists are the main characters: usually who the player is portraying.
  • Antagonists are the enemies of the main characters.
  • Support is everyone else.
Hanging out in the mess hall, in Star Trek Voyager: Elite Force. An unusually grounded experience.

Characters

When you sketch out your cast and why they hate each other, you shouldn’t get too stuck thinking of individuals. A character will often be an individual, of course, but characters can also be horses, space ships, machines, weather phenomena, and many more.

A faction like “The Guards” will provide a good umbrella for presentations. If you present guards as corrupt and somewhat dull, this provides good information for the player whenever they encounter a guard. It also means that an individual guard that breaks from the stereotype becomes more interesting. Think of the Fable warden that reads poetry, for example; a character that plays off a warden trope and then has some fun with it.

Companions in games range from animals to disembodied voices talking through an earpiece. Something that becomes extra relevant since it’s harder to give the player’s character a voice when there’s no way to know what the player is thinking. Then it’s easier to express world information through companions. But movies do the same with sidekicks and other characters who can provide infodumps.

Though the circumstances are cheapened by being a cutscene, what happens to Agro in Shadow of the Colossus is quite powerful.

A Good Game Protagonist

If a game is primarily an action game where the player will shoot and stab things, it’s hard to make a pacifist main character. In the first Tomb Raider reboot, Lara Croft is seen lamenting her first kill in a cutscene. The player playing Lara then proceeds to kill many more, presumably without batting an eyelid.

This dissonance can only really be avoided by putting the main character (the player’s avatar) and the player as close to the same mental space as possible. Or in the words of then-Telltale game designer, Harrison Pink: “Spend the time to let your player build the same primary motivations as the character. Let them experience the events that kick the story off together.”

Few games do this better than Thief: The Dark Project. Players are wont to steal and loot things in all games, and Garrett is the master thief. A role that not only promotes but reinforces the player’s emotional space.

“The goal is to allow the player and their avatar to occupy the same emotional space,” said Pink. Making sure that the role you play and the activities you engage in carry the same motivation.

Thief: The Dark Project’s Garrett is a perfect example of the game’s avatar wanting what the player wants.

Intention and Obstacle

Screenwriter Aaron Sorkin refers to intention and obstacle as the drivers for a good script. “Somebody wants something. Something standing in their way of getting it,” he said in his Master Class on screenwriting. “They really want it bad, and whatever’s standing in their way has got to be formidable.”

If you were to make a roadtrip story that starts with a group of friends going to Las Vegas, and then continues when they get there, it wouldn’t be much of a roadtrip story. But going to Vegas is a clear intention.

To become a story worth telling—or, for a game, worth playing—something has to obstruct the trip, stir up a conflict in the group of friends that splits them up, or otherwise generate an obstacle. The more you can tie this to the individual characters, the better.

Without this locked door, you could go anywhere you wanted!

Character Development

One way to look at character development is from the perspective of flaws. Many stereotypes exist here. Alcoholism, avarice, jealousy, laziness; there’s a slew of flaws that a character may display. What you can take character development to mean is a character’s struggle to try to overcome their flaws.

If the character succumbs, it indulges in its flaw and sinks deeper. If it instead overcomes its flaw, it gets to show to the world how this improves everything, or how it leads to another flaw. Some characters have flaws as defining traits instead and the portrayal focuses on how they handle the problems it leads to. They will never succumb or overcome—there’s no redemption for them—but they will still struggle.

What’s important with flaws and character development is that they are made to matter. In games, you will sometimes fight against literal demons made to manifest flaws through the game’s other systems. In Condemned 2: Bloodshot, the main character Ethan struggles with alcoholism. You take a deep swig of hard liquor to steady your aim for a while. Throughout, the Alcohol Demon harasses you, until eventually, once the Alcohol Demon is defeated, Ethan’s aim when using firearms will no longer need to be steadied by consuming alcohol.

These kinds of explorations of how to make interactions matter in game development are still not fully mature. We have a lot left to explore in this space as game developers. How to allow players to bring their own mental models to games and experience personalised stories that don’t have to turn mental issues into bossfights.

Condemned 2: Bloodshot uses a character—the Alcohol Demon—to represent the main character’s problems with hard liquor.

Dissonance

When I played Red Dead Redemption 2, I wanted to shoot Micah in the back during the rescue mission or just leave him in his cell to rot. I spontaneously disliked the guy, without knowing how things would develop. It’s one of the worst cases of dissonance I’ve personally had between the character I’m playing’s reaction to another character and my personal reaction.

This type of dissonance, between the intentions of the character you are playing and your intentions as a player are quite common in games and come from the idea that you are telling a story to players rather than letting them experience one. Micah’s betrayal seemed inevitable to me, to the point that I groaned when it eventually happened. I could’ve prevented it without anyone ever being the wiser, by simply shooting him in the back during the rescue and dumping his corpse outside a bear cave somewhere.

Because of RDR2’s deep systems, I even know how I’d do it. But I’m not allowed to. Micah has plot armor—he’s arbitrarily immune to the game’s systems because he has a role to play in the narrative script. An authorial infringement on my mental model playing Arthur.

My canonical Arthur certainly shot Micah in the back.

When you search for “rescue Micah” on the Internet, you find multiple threads by people who simply didn’t want to.

Stakes

What happens if I don’t kill who I need to kill.

Games rarely deal with stakes. The only thing that tends to be at stake is the player’s time. If the player character gets killed, it fails the game and triggers a checkpoint reload.

In some types of games, the lack of any real stakes has consequences on the game’s emotional space. In horror games, the suspense often comes from uncertainty and from the fear of dying. Once you do die, the illusion crumbles, because you can see that all you ever risked was to have to redo some arbitrary part of the game. Dying becomes a fail state and part of a retry cycle, same as in any other kind of game.

To approach this, let’s look at stakes.

Many games, like Resident Evil HD Remake, puts the player’s time at stake, expressed as main character demise.

Premise

“It used the backdrop of an epic, but didn’t try to tell an epic,” said ex-Looking Glass art director Nate Wells about the Thief series. “I think that’s still one of the greatest mistakes games make. They set down all the proper names then proceed to show you the conflict at a kingdom versus kingdom level. What you have to do is just set that in the back and tell the story of one character. Tell the low-level story.”

The premise is where and when we find our cast. Whether this is revolutionary France or Epic Fantasyland, it will tell the player something about what is important. In a desert, they will probably find water precious, and a group of parched survivors fighting over a wellspring has a very clear stake: without the water, they die.

This is also why this isnt’ just setting. It needs to tell the player why something is worth fighting for and in as clear a way as possible.

Scale

In the tabletop role-playing game Trollbabe, by Ron Edwards, stakes are defined by a concept called Scale and “applies to the extent of actions and effects in the fiction. Low Scale means only a few or little things are changed; high Scale means whole communities, even continents, are changed.”

Scale ranges from 1 to 7, where 1 represents “[a] person’s or a few persons’ immediate well-being” while 7 represents “a large area identifiable by similar cultural practices and physical resources, including many communities across diverse geography.”

This starting point is helpful, since Trollbabe also doesn’t allow Scale to be reduced. So if you increase the stakes by saying that an army is threatening the village, you cannot then decrease the Scale to make it about a stall merchant’s stolen bread loaf. This type of rule is helpful when working within any game design context.

A trollbabe!

Urgency

Many stories, whether written or recorded, will present a sense that if things are not resolved now, then there will be dire consequences. But translated into game contexts, any sense of urgency often falls flat. Particularly in open world games where months can pass between you receiving the quest and actually completing it, while dialogue and other in-game copy will still imply said urgency.

This doesn’t have to be the case however. In games as old as The Hobbit, urgency has played an important role. Not always stated out loud, but that game’s dynamics affected where some characters could be found. Just like Dead Rising puts everything on a schedule and if you miss an event because you’re not there, then it is still resolved as if it happened. If you want to get on the chopper, you need to actually be there!

Frankly, if you don’t do urgency in a systemic way, it’s better to not do it. The player will understand that it’s not real.

In Dead Rising, getting stuck fighting zombies may make you miss a crucial plot event.

Choices and Consequences

Opportunities to make interesting choices.

The concept of choices and consequences (sometimes “C&C”) has often been a talking point among gamers and game developers. Particularly for role-playing games.

When it comes to combat, your choices will be informed by your understanding of the characters and premise. If you decide to poison the desert wellspring that was mentioned earlier, everyone would die. But if the game has already established poison as a tool, this makes it an interesting choice to be able to make.

Some games, like Frostpunk, force you to make tough tradeoffs that have consequences for the rest of the game.

In Bob Case’s (“MrBtongue”) excellent YouTube video on choices and consequences, four things are brought up as how you can make choices work. The first three are highly relevant. If you also want the fourth you will simply have to watch Bob’s video.

Manage the Scale

“As your number of choices increases arithmetically, the number of possible game states increases exponentially, and if you are not careful you may inflict an impossible workload on yourself.”

Since my obsession is systemic games, scale is less about the state-space complexity Bob Case is talking about and more about the development overhead of your systems. You will design the objects and rules and the states will be consequences of how everything interacts.

The key to managing scale is to be careful with how many rules you establish and how many tools you provide the player with.

Failure is a Consequence

“[I]f your goal is simulation, then an action that would logically lead to failure in the real world should also lead to failure in your game.”

Games rarely have interesting consequences for failure and combat is usually the worst. Like we covered before, dying means you’re dead and you have to replay. A future post will go into scenario and mission design, but at this level it’s interesting to remember that failure is real and that it should be allowed to happen.

At the very least, your game should provide feedback that acknowledges the failure and builds forward on top of it. It can be to add scars or to have characters comment on it, but it needs to be a concrete thing.

Shadow of Mordor responds to your failure if you try to defeat the same enemy again.

Make Me Paranoid

“Keep us guessing. Keep us worrying about the possible consequences of everything we do, regardless of whether the game accounts for them or not. It will make for a more immersive experience.”

Bob Case mentions how, in the original Fallout, if you speak about the vault where you came from there may be bandits who go there to raid it. He mentions how this has affected how he looks at choices in every game he’s played since. Such a powerful consequence for speaking carelessly.

But remember that you don’t need content for everything. For many games, as long as you provide enough consequences, the player will read more things into it. Imagination does a great job filling in the blanks.

State-Space Stability

Trusting that the game remains stable.

Many players are not used to pushing the boundaries. It’s also quite comfortable to know that, whatever happens, the game will reset back to its default state so you can try again. For as long as gaming has had right and wrong choices, there’s also been save scumming. From the sharing of ready-made save files to “abuse” of the Quick Save/Quick Load keys.

Much of this comes down to stability. If a game has many interconnected systems, it can easily get out of control, and players may get frustrated or miss expensively produced pieces of content. This is one reason that killing the player’s avatar and resetting the state is so powerful: you know (as a developer) that the game state is being reset and that everything is now safe.

The Elder Scrolls V: Skyrim allows characters to deescalate and become interactive again, making for some great memes.

Escalation and Deescalation

Many games with stealth have a mechanic where being spotted and unable to stop the spotters will put the whole game into an alarm state. Turning off the alarm or disappearing for a while will have the enemies return to their previous state. There’s no checkpoint reload, but it kind of behaves the same as one.

Players will sometimes comment on this and talk about how unrealistic it is, but as a mechanic, it allows players to try and try again without having to save scum.

Some players will immediately reload checkpoint if they get detected in a stealth game, such as Dishonored.

Combat Philosophy

This was a hard series of posts to write and mainly because they treaded a bit too far from practical implementation and into the realms of theory. Personally, I think this makes them lower quality than the posts I have on my blog that are more specifically tied to systemic design, and I intend to return to the practical because of this.

It’s been a good exercise in thinking through what combat can mean, and to inform my own projects too (more on those some day), but there are more systemic subjects to cover and those will be coming back next.

Until then, if you agree or disagree with anything, please do so in comments or via annander@gmail.com.

Combat as Sport

This post is a continuation on a previous combat design post.

Sport can be used as a layer on top of your gunplay or melee. Perhaps as added fairness (a sense of “good balancing”) or as a focus on competition. It can also be the whole purpose of your project. A competitive game needs to have a space for players to git gud and to compare their results to that of other players. Or to be the first to figure out winning strategies that can give them an edge.

If you want to tell me I’m wrong or contact me for other reasons, do so in comments or to annander@gmail.com.

Now let’s dive into competition and how you can approach designing a “sport.”

I’m still amazed that Gojira got to open the Paris 2024 olympics!

Terminology

When designing anything, I find it helpful to first set up the terminology. This doesn’t have to be the exactly right words that other people use, necessarily. They’re here to help with the game design, not to become some type of definition.

Determinism

Chess is an incredible game design. It’s symmetrical, it has no random elements, and each pawn has its own clearly defined rules. Rook moves this way, bishop moves that way, grid has 8×8 individual square spaces, etc. This is what makes its game design deterministic. Doing a specific move under certain circumstances will always yield the same resulting game state.

Because of this, pitting two players against each other is a test of skill. Who can predict what the opponent will do, make the most compelling opening move, or think the farthest ahead. It becomes a contest of ability.

“In order to improve your game,” said legendary Cuban chess master José Capablanca, “you must study the endgame before everything else. For whereas the endings can be studied and mastered by themselves, the middle game and opening must be studied in relation to the end game.”

Chess is a great example of a game that must be studied and practiced. Because of its determinism (no random or otherwise unknown elements), yet deeply complex state-space, it’s often considered a hard game to be good at, and if you’re not good you will simply not win.

Chess has been played for centuries, but saw a surge in popularity with the excellent Netflix show The Queen’s Gambit.

Player Uncertainty

Poker, another highly competitive game, adds elements of player uncertainty and randomisation and is therefore not deterministic. The card combinations that form your playable hands are all known and their relative values are also known, but because players hide their cards from each other in their respective hands, and because of the luck of the draw, you can’t be entirely certain what another player is up to. They may be bluffing with their all-in, or they may indeed have a royal straight flush to give them confidence.

As the game continues, more of the 52 cards from the deck will be revealed and you will have more “state” to consider, but you can’t be completely certain unless you already personally have the highest possible hand.

This uncertainty and randomisation adds an additional layer to the competition. It doesn’t make poker a better game than chess, but it alters the required skillset. It’s not enough to master each hand, you must also play the bluffing game and start considering the myriad options based on limited information and mathematical probabilities.

The amazing Balatro may use poker hands, but it removes the player uncertainty of poker, but adds more randomisation.

Exploitation

Chess and poker are incredibly mature games compared to most video games. They’ve been played for hundreds of years and countless kinks have been ironed out. Alternative ways of playing have come up that deal with common speed bumps and other issues. Video games, on the other hand, are released in the 100s every day, and because of this, some of them will come with unintended exploits.

I’m personally not a very competitive player. I often play competitive games anyway to study them, but I very rarely win and pretty much never come up with any winning strategies. In 30-some years as a gamer, there’s just been the one exception: Battlefleet Gothic Armada.

While playing the beta before launch, I realized that the Imperial ships with their heavily reinforced prows were almost immune to damage coming from the front. So I equipped some ships with weapons that didn’t require them to turn (many other weapons fire broadsides in the game), instructed them at the game’s start to only face forwards and to stay far away and fire these weapons near max range. They would sometimes move slowly towards their targets and then use a ramming action to deal the killing blow, but only against enemies that were already accelerating towards me.

At first, I didn’t lose a single match with this setup! My ships took little to no damage and were able to destroy enemy ships consistently. For various reasons, I never really kept playing the game after launch, but this still serves as a decent example of exploitation.

In game theory, a dominant strategy is a strategy that will always win, and that most players will eventually gravitate towards. It’s not clear whether my prow-forward approach was ultimately such a strategy, but consider it an example.

The opposite of a dominant strategy is a dominated strategy, which is any strategy that is always inferior and that players will quickly abandon for other strategies. No one in a competitive first-person shooter would stick to only the knife, for example, unless there’s such a massive skill disparity that it can be done for laughs.

It can be fine to have these strategies in a game, as long as you include them consciously and provide ways to mitigate them. Going for a knockout can be considered a dominant strategy in boxing, since it ends the match before the last round, but though it gives an edge to fighters that can consistently hit very hard it’s never guaranteed that they will end every match on a knockout, and hitting hard all the time may be more exhausting than playing a longer boxing game.

The Prow Lance of a Dauntless class Light Cruiser properly on display, in Battlefleet Gothic Armada.

Game Blame

If you are terrible at chess, you are terrible at chess. There’s no way to sugar-coat it. Other players are simply better than you. It’s the same if you play StarCraft and can’t peak out at the actions per minute (APM) of the pro players, that may span 180-1,000 APM.

When games reach this level of competition, many players will bounce off. Psychologically, the knowledge that you are inferior and that there’s nothing you can do about it isn’t all that motivating. Some players will find motivation in this space anyway and push on.

But another way to get around it is to let players blame the game.

In competitive Magic: The Gathering, a common setup is to determine a winner by playing a best of three. This way, fewer players will feel that they lost because of a bad hand or lucky/unlucky draw. If they do end up losing anyway, they can still blame a bad hand or unlucky draw, however. If they had only played one more match, they may think.

This is similar to the “just one more time” mentality that can come up when you play a fast-paced fighting game, or other high-paced game. Your opponent was just lucky; you will get them next time. It wasn’t your fault, it was chance, luck, poor balancing, the sun in your eye, etc.

This is a good thing to have in a game design if you don’t want to cater it exclusively to potential hardcore players. It prevents beginners from bouncing off the game if they get to have a good run now and then, even without the skills the game would normally require.

A Magic: The Gahtering hand without a land card is sometimes referred to as “mana short,” from the eponymous card.

Yomi

In the words of game designer and former competitive Street Fighter player David Sirlin, “Any decent competitive game needs to allow you to counter the opponent if you know what he will do. What happens, though, when your enemy knows that you know what he will do? He needs a way to counter you. He’s said to be on another level than you, or another ‘yomi layer.'”

Yomi (読み, and not 黄泉; the latter is the underworld) means ‘reading’ in the sense that you can read your opponent. In Sirlin’s book, Playing to Win, he describes Yomi layers as levels of knowledge. You know what your opponent will do (layer 1), but they also know that you know (layer 2), and you know that they know that you know (layer 3). Each layer requires the game design to provide a counter action so that players can act on the information they have (or think they have). “[T]here need only be support up to yomi layer 3,” continues Sirlin, “as yomi layer 4 loops back around to layer 0.”

Thinking in terms of yomi layers can help more areas than competition, however. If you look at a game enemy design in terms of yomi layers, you can design encounters that challenge players in more ways than the straightforward features they use and you can allow the player to feel clever about it along the way.

David Sirlin, either posing as if playing or actually playing a fighting game.

Blue Shells

The blue shell in the Mario Kart series has always been a bit contentious. It’s a knockout feature that specifically targets the leading kart and has ruined countless one-sided runs. According to interviews, the reason it was added was to keep races interesting up until the end, since it would often become a foregone conclusion who would finish first before its introduction. Especially in groups with high skill disparity, such as adults playing agaoinst young kids.

When we talk about it in game design, it’s usually as a balancing factor against runaway victory. If a player is so much better than everyone else, it’s just not as much fun anymore, and the blue shell puts a spin on that situation that can make it more interesting for everyone to finish a race.

A blocky blue shell in real life, from an Ars Technica article.

Players Will Cheat

One part of competitive gaming, as in real-life sports, is that competitors are directly incentivised to search for some kind of edge. Such an edge can be completely against the rules and disqualify the competitor who does them if they are caught doing it. Then we don’t call it a strategy anymore. We call it cheating.

For professional sports, cheating and various forms of doping are illegal and enforcement of rules is continuous. Whole organizations are dedicated to assuring fairness. The bicycle race Tour de France, for example, has had instances of cyclists using electrical motors to give them a slight boost when cycling uphill. Muscle stimulants, growth hormones, anabolic steroids: professional sports have a long history of cheating.

In esports, the expression “edoping” refers to manipulations of hardware and/or software that provide an invisible edge to a competitor. Things like aim bots or code that reveals client-side information a player is not supposed to have. Similarly, many exploits may be either patched out of a game or become part of a rule set dictating professional competitions.

Take this lesson with you, if you want to make something competitive: players will cheat. Some because they want to win over other players, and others because they simply want to beat the system to prove that they can.

In competitive bicycle sports, adding a hidden electric motor to your bike is referred to as ‘mechanical doping.’

Scrub Mentality

A scrub is someone who “adamantly believes that their ‘house rules’ should apply to everyone to promote their view of ‘fair play.'” They are players who are quick to call foul or to call the way other players play boring or against the grain of a game. David Sirlin writes in his book that, “[a] common call of the scrub is to cry that the kind of play in which one tries to win at all costs is ‘boring’ or ‘not fun.'”

But if you really want to win, you can’t have this type of “scrub mentality.” You need to play to your strengths and use every avenue of success that the game may provide. As a game designer, you must similarly be aware what the rules you introduce will lead to.

In some competitive martial arts, for example, obstructing an opponent’s breathing by covering their mouth (called “smothering”) is legal according to the rules set out for the competition. Some will argue that it’s unethical, unfair, or makes for a dirtier sport: they would be the “scrubs.” Others make use of it where it fits, regardless of the scrub’s convictions.

“Smothering” in mixed martial arts.

Designing a Sport

The key element of any sport is how to win. But before we can know how to win we need to know what we are doing. This is where you can make use of the same verbs and systemic rules as you would when designing a systemic game.

Many sports revolve around activities that are easy to do but require a lot of practice to master. Kicking a ball isn’t all that hard in itself, but kicking it with accuracy and the right amount of force requires a lot of practice. This indicates that we want an activity with an analogue possibility space: it’s not enough with “success” or “failure.”

Sometimes, as with game design, sports designers have been lazy and added a stopwatch on top of an activity to create this space. Sure, you can finish the race, but can you also do it in the shortest time?

At other times, the analogue space is created by points scoring. It can be directly related to an activity in the game, such as kicking a soccer ball into a goal, or it can be indirect, such as the Technical Panel set out by the ISU Judging System used for figure skating. The use of an impartial judge or panel of judges is a common way to measure competitors against each other in individual sports.

Another solution is to include a sudden death alternative. An occasion within the rules of the sport that immediately ends the competition and awards victory to the person who triggered the sudden death or their opponent. Most sports use the term “sudden death” specifically for match tiebreakers, but death can be sudden under other circumstances as well. Say, a knockout, or a racer’s car getting wrecked.

There are also various forms of “no contest” conditions where a competition may end. If someone in a boxing match cannot defend themselves properly, for example. Some sports may also allow a competitor to voluntarily yield to their competition. Ragequitting fits in with this as well, since gamers can always decide to simply turn their game off.

  • Add time. Pushing for the shortest time has the added benefit of providing better entertainment for spectators.
  • Add score. Define an activity that scores, then award victory to the competitor with the highest score at the end of a game.
  • Add points. Award points based on an impartial panel and the ability of competitors to match specified expectations.
  • Add limits. A competitor can only use a limited number of attempts or resources (such as the number of arrows for a bow) and must perform as well as possible within those limits.
  • Add ladders. An additional way to generate results is to have more than one competition to determine the full outcome. This can be an elimination-style tournament where only one out of a roster of competitors will claim the prize, for example.
  • Sudden death. Rather than using time, or in addition to time, add a condition where the game ends in immediate victory for a competitor.
  • Yielding. Allow a competitor to voluntarily call out their own defeat. Either so an only opponent wins or to drop out of a larger competition.
Orienteering makes a sport out of finding your way with map and compass; on horseback, on foot, bicycle, etc.

Teamwork

Team sports require group coordination and communication in ways that individual sports don’t. Whether you want teams or individuals compete affects a lot of things about your sport design. The combat reference here is the duel, which is fought one against one; the skirmish, which is smaller groups against each other; the battle, which pits whole armies against each other; and finally a whole war.

Online gaming has generated its own blend of team and solo sport: coopetition. It’s cooperative, because you are completing objectives together and won’t be successful if you don’t. But it’s also competitive, because each of you will want to get the points and rewards individually. This becomes very clear in games inspired by Left 4 Dead and other games designed around LAN dynamics. Because the dynamic changes drastically when players are playing “alone together” and cannot simply lean over and yell for their friend to help them out.

Victory screens in many games, like Overwatch, serve the purpose of showing off your cool poses and skins.

Symmetry

Throughout history, particularly in combat sports of different kinds, symmetry hasn’t always been relevant. Gladiators pitted against wild animals, or one with a trident and net pitted against another with a sword and shield, has been a recurring phenomenon. Usually either because someone has wanted to prove their ability under special circumstances, or because the competitors had no say in the matter to begin with.

Conceptually, it’s a lot easier to design something for symmetrical opponents that are all expected to do the same things during a competition. Symmetry means that all sides of a competition are following the same rules. This is what generates the many layers of matchmaking regulation that sports may have. Weight classes, for example.

Bullfighting is an example of an inherently asymmetrical “sport.”

Equipment

Some sports require costly equipment, creating a high barrier of entry. Though some can afford to field their own race cars in scrappy “folkrace” competitions, for example, motor sports like NASCAR and Formula 1 are prohibitively expensive. The rules in place for such sports mean that it’s reserved for competitors with large financial backing.

You may wonder how this ties into game design at all, much less combat. But it’s enough to think about games with items and character builds to see some parallells. In one particular Destiny raid, if you couldn’t show everyone that you packed an Ice Breaker and/or Gjallarhorn, you could be kicked out.

What equipment your sports design will require depends on many things, of course, but it can be well worth thinking about. From the quirky golden snitch of quidditch (probably set up to poke fun at real-world sports) to things like the lacrosse stick basket handle, the equipment used to perform a sport can both dictate how it’s played and serve as excellent icons representing the whole activity.

It’d surprise me if I could afford even a small insignificant piece of a MacLaren Formula 1 car.

Crew

Though many sports may claim to be individual, they still allow competitors a crew to help them with all manner of things. This is of course similar to any form of stable, camp, or club, where the sum of the parts will affect how good your training is. But some sports allow this during a competition as well. Someone to patch you up between boxing rounds, or to check your tire pressure during pit stop.

Maybe you can even look at the remote operator in Robot Wars as crew, and the robot itself as the competitor.

The corner crew of a muay thai fighter.

Referees

Since we can’t really trust competitors to judge each other fairly or even to concede victory in cases where it’s a bit unclear who won, we may need a third party. Someone to call no context, to say when a goal scored or not, and to make sure we end our match on time. In digital games, computers can usually carry this burden, but in sports we use referees.

If you want someone to be the referee, you need to figure out what they know and what they do. Which powers they have. In the eras of game design post, the idea of an umpire was discussed. But an umpire or a Dungeon Master is usually present to make the game world fair and not to adjudicate competitive results.

Matthew Mercer of Critical Role acting as Dungeon Master: the Dungeons & Dragons version of a referee.

Language and Narrative

Before you launch your design, you should consider how you want people to talk about the activities involved. Many sports have their own vernacular that tie the activities to what is happening in the sport. Inning, yardline, takedown; in digital games, deathmatch, kill, headshot, loot, powerup, zerg rush.

Some of these expressions you can’t really invent. They’ll come naturally from how players interact with and talk about your game while playing or strategising. But it’s a great exercise to try to simplify terms, mash them together, and consider all the different strategies that players may use and how they’ll describe them. Even to invent a silly expression and then use it to make sure that you remember the concept it represents.

Related to this is also the narrative of the game. Even if soccer is simply people chasing a ball across a field (if you are cynical about it) the story is one of a fight team against team where the winner takes all. The teams represent cities or clubs, and they are serving their fans; fighting for their fans. Not to mention that each player on each team may have their own fans and life struggles hyping up the competition.

The words you use and the story you tell should be easy say and unique to your game. It should also be relatable. Sports have the advantage here, since it’s much easier to identify with kicking a ball against a garage door just like your childhood hero did, than it is to imagine yourself shooting zerg on a distant planet.

It’s easier to relate to Lionel Messi kicking a ball than to Jim Raynor killing zerg.

What About Systems?

This post took me a long time to research and write. Part of that is that balancing is a form of authorship. Just as with a linear story, if you want a balanced competitive experience, you must use a heavy hand to make it so. Often against the grain of your community, who will be enjoying the exploits they find and quickly get used to the dominant strategies presented. They will therefore loudly voice their dissent when you change the things they have been exploiting.

Ultimately, though games like The Finals are trying, competitive games and a high degree of dynamics is very tricky to combine. The tools we use to balance our games are not very conducive of the right side of the master scale.

In The Finals, you can destroy pretty much everything!

This doesn’t mean you shouldn’t try, however. Systems at a gameplay level, where they can be balanced against each other, can still be very useful. Just be prepared to iterate a lot before the play experience is tuned right.

The Interaction Frontier

The most consistent pushback I get when presenting my case for systemic design is against the idea that authorial games are not as interactive as more emergent games.

“They surely are interactive,” says the typical critic, “because you are pressing buttons; there’s gameplay.” Which is true at face value, since you are certainly pressing buttons and there definitely is gameplay. But pressing buttons or shooting virtual guns is not necessarily the same as interactivity.

Interactivity as the act of interacting is not enough. It must also generate relevant feedback and put the player into positions where they must choose one thing over another. Sid Meier’s comment on games being “a series of meaningful choices” comes in here. Pushing forward to progress to the next room or set piece is not a choice.

In this post I’ll try to elaborate on this line of argument. You don’t have to agree at the end of course, since game design is ultimately subjective, but you will hopefully understand where I’m coming from and how this fits into the dichotomy between authorship and emergence. Maybe you’ll also want to join me in dreaming of what games can be capable of on the interaction frontier.

If you do disagree, please do so in comments or to annander@gmail.com. The best conversations happen when we see things differently.

Telltale’s The Expanse does indeed have gameplay and interaction. But are the interactions meaningful?

Interactivity

Games receive input that is transformed into output. If that output is a digital beep, a 2D sprite initiating a jumping animation, or a dice roll coming up a five, depends on the game and its interface. Interactivity is the common ground that separates games and play from other forms of media. How much interactivity we’re talking about and at which point in the game varies between games.

Fortunately, someone else has already phrased the larger framework more succinctly than I can. In Hitbox Team’s excellent article on game narrative, Terence Lee argues that storytelling can be broadly classified into three dimensions.

The first dimension is time. A novel is a story where you must read the second word after the first, and even if your imagination can turn a time-locked story into anything, and the story itself may tell its tale in countless disjointed or anachronistic ways, time is the only dimension it’s reliant on. It is a form of observation where you take part in whatever the creator is relaying to you through your imagination.

When you bring in other senses, such as your hearing and vision, you are adding this to the dimension of time. You get movies and theater. It’s a more passive observation than a novel that leaves everything to your imagination, but it expands the author’s control over time to also control your senses. It’s fundamentally its own thing. Telling stories with moving pictures and sound adds more considerations and tools to the storyteller’s toolbox.

Then we add interactivity. You are no longer a passive observer but a participant. Your actions are now those of a character in the story. Authorship comes in here with restrictions on what you can do as a participant. “It diminishes the importance of your actions,” writes Terence Lee of Hitbox Team, “if it feels like the game distrusts you with making the important ones.” For example when the third dimension is removed to show you a cutscene of how the protagonist defeats the antagonist after you whittled away its hit points in a ten-minute bossfight.

This, my friends, is where this argument takes off: finding the important actions and the interesting choices.

The difference between being told or shown someone versus becoming someone, illustrated in Hitbox Team’s article.

Game Feel

How it feels to play a game is sometimes referred to as game feel. In Steve Swink’s book named the same, six elements that affect this are Input, Response, Context, Rules, Polish, and Metaphor.

Figure from Steve Swink’s excellent book Game Feel.
  1. Physical input. You press a button, roll a die, or whatever you do.
  2. A response to your interaction. From haptics on to witty barks, something will (or at least should) signal that the input was received.
  3. The context of the game. Standing on flat ground allows the button to trigger a jump, for example.
  4. Rules. How many extra lives, how much time you have, how gravity works and so on are applied to the now contextualized input.
  5. Polish. Fleshes out the aural and visual experience and make it as clear and/or rewarding as possible what’s happening. This is separate from the response, because this is part of the game simulation and may therefore happen with some delay.
  6. Metaphors of the virtual space. A character, the verb of jumping, etc. The piece of presentation that makes it all make sense to the player.

If we consider these six components relevant to how it feels to play a game, and we look at them as the key essentials of interactivity, we begin to see which actions can be considered important.

When the inimitable Josef Fares animatedly tells you that you never do the same thing twice in A Way Out, a jaded game designer like myself only sees the left analogue stick pressed forward but with 100s of animations on top. Crawling through a vent. Walking across the yard. Running from the guards. The first four of Swink’s game feel elements (input, response, context, and rules) do not change between these activities.

In a highly authored game, such as A Way Out, I can’t always know what the context means, which rules are currently in effect, or even what the response will be. There is a higher focus on metaphor and polish: I’m following the characters on the screen as an observer and not as a participant. I’m watching what they do: I have not become them.

There’s typically a specific outcome that has to be the result of the scene, such as the characters managing to steal something from a locked office. There may be some different routes to this that provide different visual feedback, different animations, but fundamentally it’s a cinematic experience. There’s also no way for me to fail and the story to adapt to my failure. If I do fail, the game state will reset and I’ll have to try again until I succeed.

Empathetic Connections

Focus on polish and metaphor is not by accident. As Nicole Lazzaro has said, “[F]ilm and cinema, they can’t do a lot of emotions because it’s simply an empathetic thing. […] The format doesn’t allow certain emotions nearly as well as games.”

Movie makers are experts of empathy. Creating and managing empathetic bonds between a viewer and an on-screen actor playing a role. If there would suddenly be instances where context or rules could subvert this polished outcome, for example because the viewer could switch out the soundtrack or skip a crucial piece of dialogue, it would ruin this precisely crafted connection. This is why they are not invited into the interaction, and why most of Swink’s elements are removed from games that strive for empathy.

This isn’t only clear in animation-heavy games that are closely directed, such as the games by Josef Fares. Similarly, Ian Bogost describes the protagonist of Gone Home as “a cursor you move to experience the story.” You are certainly controlling the input in that game: pressing forward, choosing which objects to interact with, which audio logs to listen to, and then gradually piecing the story together in your head. But you are not there to participate. The game is designed to make you empathize, not with the character you are playing, but the one game is telling you about.

Gone Home is one of several games that pulls off wearing the ‘walking simulator’ label as a badge of honor.

This is functionally the same as point-and-click adventures in the later style. Games like Phantasmagoria, that attempted to simplify the interaction and minimize the style of feedback that those games were known for in favor of telling its story in a more cinematic fashion. To focus on spectacle, gore, even disgust, as empathetic emotions based on what the main character is forced to endure.

The main character of Phantasmagoria doesn’t say “won’t budge” about the door, but will instead fidget with the handle for a while in an animation before giving up. Something that felt detailed and potentially empathetic for players of the seven-CD horror adventure on release, but seems dated and almost comical when you play it today. Today, you want her to fiddle faster so you can keep playing. Also, few film makers would spend 30 precious seconds having an expensive actor fidget with a door handle. So rather than adding quality, it feels cheap. Like a bad interpretation of a movie more than an actual movie.

Phantasmagoria removed the traditional action choices in favor of context-sensitive clicks, focusing more on the story.

As another example, the same empathetic connection exists between the player and Joel’s daughter Sarah in the intro to The Last of Us. Functionally, she’s also just a cursor for activating sound bites and cutscenes in the environment until the story moves on outside of your control. My personal opinion is that the Sarah segment is meaningless as interactivity, and strongly exemplifies said empathy. We may care about Sarah because we are told that Joel cares about Sarah, and having her visually represented and voiced as a real character tells us that she is something more than a sad plot device once the next few plot beats takes her away.

Playing Sarah, The Last of Us‘ sad plot device.

In essence, we are told to care about Sarah, the same way a movie would tell us to care. But we have no choice in the matter and most of Swink’s elements and Meier’s golden rule are once more removed. There are no meaningful choices to be made when we are only moving a story cursor across a virtual space. In fact, and this is where the critics will usually jump in, other types of storytelling do empathy better than games, meaning that we don’t gain anything by turning these experiences into games. To approach empathy this way, games must restrict the impact of our interactions, and the only actions we get to do are the ones that can be safely stripped of meaning so that we, as players, can’t ruin the authored experience.

Murdering the Innocent

In an interview with Introversion’s Chris DeLay, he mentions a study where playing their game DEFCON—a game about global nuclear war—had a deeper impact on survey respondents than watching a documentary on the same topic. A result that implies the effects of interactivity on an emotional level.

Even by controlling Sarah, we may gain something from pushing forward even when our actions have limited meaning. But we can learn and feel more about something if we add elements from Swink’s game feel.

In gaming, we do have some darlings that often come up as examples of interactive storytelling. People will mention the plot twist in BioShock: would you kindly? Unfortunately, all this particular twist does is that it rubs our noses in the fact that we have no choice. It’s like making a point of how little interaction we have.

Another darling is Spec Ops: The Line. A game that asks you to commit war crimes and then rubs your nose in it in a similar way. Push the button, then we’ll make you feel bad for having pushed it. It’s pulled off in a better way than in BioShock (in my opinion) but still suffers from the same problems. I’m in for the ride already. I bought the game. Pushing the button is just a way to see if I will get a snack, like a rat in a Skinner box. It doesn’t make me complicit to anything where I can’t predict or at least understand the outcome.

The interactions you do in Spec Ops: The Line has made it a video game talking point.

But now this post has already devalued the game story darlings of the past decade and set my e-mail up for more pushback. There must be some point to make. Some reason that interactivity is worth having even for game developers that lean more heavily towards authorship. So far, it seems to argue for authorship, since authored stories demonstrably do empathy so much better.

To get a good example, let’s look at a board game that engages so deeply with its theme that it has courted real controversy. The game is John Company, by game designer Cole Wehrle, and it puts players in the shoes of family leaders trying their best to make money off the British East India Company. The game’s rulebook is illustrated with contemporary political satire, and the role you play and the actions you take are deeply exploitative and imperialistic. An interpretation through gameplay of what the real East India Company did to the peoples it oppressed. An interactive illustration of British imperialism at its height and how the British museum’s most precious Indian artifacts landed in its collections.

Not only does this game ask you to do heinous acts and reward you for them, it turns the vying for power and the exploitation itself into a game. The suffering is made abstract and turned into an inconvenience, while you try to maximize your gains and save up enough money to put your family members into the nicest retirement homes.

Some will of course say “it’s just a game.” This is always a bad take. John Company demonstrates how interactivity matters. Similarly to BioShock and Spec Ops: The Line, I can’t choose to be a good person and not engage in imperialism, of course. But by acting within the confines of the game’s premise and abstractions I will realise that the game I’m playing is probably quite similar to the game that was played above the heads of the oppressed.

It becomes more than “just a game.” It becomes experiential. Entirely thanks to interesting choices and interactivity.

John Company is a game that dives head-first into heavy subject matter: colonialism and imperialism.

Medial Regression

You are free to enjoy well-produced empathetic games. There’s nothing wrong with such games and there never will be. Developers should keep making them, and we’ll all keep playing them.

But the last point of this post is that they also don’t develop the art form of games. To be able to focus on empathy, they need to step back from the third dimension into the second one. They need to regress into linear media and disallow or restrict interactivity to some extent. This is what medial regression means: to put away the unique elements of your medium in favor of those of another medium.

Some players want exactly this and expect it. They want to be able to skip the gameplay moments so they can keep learning about the characters and building their relationships, and they enjoy non-interactive cutscenes for any of a number of reasons. This is okay. Too often, gameplay only means fail states or time sinks. Things that can feel like they’re obstacles to your enjoyment of the virtual world you’re engaged with.

Some players have expressed a desire to skip the gameplay so they can focus on the story, in games like Mass Effect.

Somehow, we’re less okay with medial regression for other types of media. Since movies have had a century to develop their own language, from cinematography to acting techniques, we look at a movie that becomes more theatrical as medial regression too. We notice the somewhat stilted and more clearly articulated manner of stage speech and may even resort to calling it “bad acting.”

If movies had never added audio, they could still be great silent films, but they would also never have explored how audio or soundtrack affects storytelling. Likewise, making our games cinematic and limiting interactivity so that our games can lead with empathy will never explore our own medium’s core strengths. It will never force us to develop our own tools for making the most of interactivity.

The “Matthies Moments” of Starbreeze’s games, in this case The Darkness, are an example of forced staging.

Medial regression puts us in a place where we no longer push our art form forward. It allows us to comfortably keep using methods from other art forms, without having to discover our own. It also easily transfers the mindsets of other media production into game development, even though game development is a deeply collaborative and iterative. We don’t benefit from auteur directors and we don’t treat production the same as film. A culture clash occurs, even beyond the product.

Like how Randy Smith described the culture of venerable game studio Looking Glass. “There were various individual superheroes,” he said. “Terri Brosius, Dan Thron, Doug Church, Mark LeBlanc. But somehow, the goal wasn’t to be like, ‘I’m Mark LeBlanc who made this system in the game, and everybody knows me’. You were measured against the game we all created together. The game’s as good as its weakest link. Ego wasn’t the focus.”

To get that kind of magic, you can’t have auteur directors and you must push for the thing that makes video games unique. When we actively do so, it leads us towards a more interesting future where we are better acquainted with the tools we use because we have made them for ourselves.

The Interaction Frontier

When discussing first-person cameras, CD Projekt Red’s research for Cyberpunk 2077 was brought up as an excellent first step in blending lessons we can learn from cinema with the unique needs of video games. Some of the questions that need to be answered, such as how to keep the player’s attention and making sure they get to experience interesting things, are questions that are guaranteed to have even more answers that we haven’t even discovered yet. This is what should be the real goal: figuring out how to factor interactivity into everything we do.

How a game like What Remains of Edith Finch lets you experience the horrifying fates of the Finch family members through playful yet morbid mini-games helps us understand what video games can do. Not because we are told about it or asked to empathise, but because we are ourselves living a part of the experience through gameplay. Sometimes whimsical, sometimes repetitive, always thought-provoking.

The scenes in What Remains of Edith Finch are much deeper than you may first think.

The way Dark Souls handles its non-player characters explores the concept of consequences. If you kill the blacksmith, the blacksmith is indeed dead. You’re not guarded from doing bad deeds and the systems of the game are consistently applied. The experience is yours to own. Similarly, if you choose to rescue Lautrec and leave him near the Firelink shrine, he will kill the keeper of that shrine later. A consequence that blew my mind on my first playthrough simply because games never do that. Betrayal is almost always clearly advertised in games. Yet here was a game where story was implied and never explicit, and there was no way to save scum my way to the “best” ending. What happened was predefined, but the circumstances were for me to figure out. No director in sight.

Rescuing Lautrec in Dark Souls is mostly asking for trouble. Hardly the typical rescue storyline in games.

With Outer Wilds, the way the game handles the player’s own knowledge of the game space as a form of progression could only happen with a game. A small repeating cycle of events that you can interact with and that you must learn to interact with in the right order to be successful. There isn’t even a clear way initially to understand how things end. You are given tools and a dilemma, and then let loose to figure out what it all means.

The campfire becomes a symbol in Outer Wilds.

Something that’s traditionally been very common is also the digital toy. Theme parks, railroad enterprises, and life simulators, have all seen their share of success. Some haven’t had any victory conditions or even goals for the player to achieve beyond what they can figure out on their own. This is another thing only games can achieve, where systems interact and combine in pleasing or compelling ways. Games like the beautiful and technically marvellous Tiny Glade does this in a modern context, and for generations that grew up with Toca Boca, Minecraft, and many of the most popular experiences on Roblox, desire for digital toys may signify a larger part of the gamer population than we may even be aware of yet.

The amazingly cozy and meditative Tiny Glade.

Finally, there is a growing number of independent small developers that are working on “indie imsims.” Games that borrow, concretely or in spirit, from the Looking Glass classics that Randy Smith helped develop. Some of them go for the atmosphere, while others are more philosophical in how they approach their immersive qualities. In all cases, they focus on interactivity because it’s easier to do mechanics than to compete against bigger studios in visual fidelity.

The clever transfering mechanic of Ctrl Alt Ego is an example of a design that pushes interactivity, in an “indie imsim.”

End Notes

Hopefully, you can see where I’m coming from with this post. There is so much left unexplored in the interactive space that we should take every chance we have to figure things out. Solve problems. Look for new ways to engage.

Interactivity is the unique third dimension of games. We shouldn’t be afraid of it: we should embrace it. Let players kill the princess and rescue the dragon. Let them give the ring to Gollum and retire to the Shire to start a restaurant. Let them fail or choose poorly and handle the consequences.

  • Interactivity is the unique third dimension of game storytelling.
  • Interaction hinges on all six elements of game feel: input, response, context, rules, polish, and metaphor.
  • Interactivity requires that you get to make the important actions in the metaphor.
  • Games should present a series of interesting choices.

Systemic Building Blocks

Something that has been missing from this blog is how players will experience playing your systemic games. What the inputs and outputs represent and what kind of game they help make. So that’s what this post is about.

Also, please, if I’m wrong about something or you want to book a talk or just chat about systemic design, don’t hesitate to e-mail me at annander@gmail.com.

Inputs, Outputs, and Feedback

A system is defined by inputs and outputs. What will be discussed in this post is what these inputs and outputs can be. There’s also a third layer, player feedback, that will be kept for a future post.

The five nodes illustrated below can be used to represent most systems. If you want a more in-depth explanation, I highly recommend that you get the book Advanced Game Design A Systems Approach, by Michael Sellers, or that you play around with Machinations.io.

These five nodes are used in all of the examples in this post to illustrate how different types of inputs and outputs can be represented. The focus is on what the player is contributing to the system. Nodes where the player is involved use a dashed green outline instead of a solid black outline.

Accumulation

Many game systems are built around the concept of accumulation. You collect things or points and you push towards higher and higher tiers of something. This has been discussed before as the subject of gamification. But accumulation is more than just the slow rise of a progress bar. Where it gets interesting is what you decide to award points for and how fast.

Read the linked article if you want more on this subject, however. It’s a good illustration of a simple system, but it’s not terribly hard to design.

Goblin murder is much less frowned upon than murder in general, in Dungeons & Dragons.
Designing an accumulation system means conversion rates and source balancing: more sources usually requires slower conversion.

Modular Functions

Modular approaches are likely the most common way to implement systemics, from Sim City in the late 1980s onwards to Factorio in the 2010s. Whether you think of the state, component, or decorator patterns, there are many good programmatic ways to separate logic into modules, and to then allow the modules to do their thing individually while contributing to a more complex behavior. In fact, this blog has covered modular systemic guns in the past (it remains one of the most viewed posts).

In Bad Piggies, for example, you are given a grid where you can freely place the vehicle parts you have access to. In the early game, these are simple. Boxes to build the frame, wheels that will roll against solid ground, and things like the bellows in the screenshot below, that will give you a slight push if you tap it during play.

The grid and component inventory in Bad Piggies.

The goal of the game is to get the little green piggie to the goal flag. You’re free to set the components any way you want, as long as you include the little piggie, and the game provides this as a sort of puzzle for you to solve.

Many levels will also have bonus stars or different styles of pickups or environment dangers (like explosives) that will affect the behavior of your vehicle.

A finished vehicle!

What’s interesting is that the behavior of each individual part is very specific. A wheel will roll. A frame will hold things together. Bellows provide a small amount of force in the opposite direction of the nozzle when you tap it. As a developer, this is a big strength, because you can work out how each part functions in isolation and then let the parts interact to produce the vehicle.

As in Angry Birds, the results in Bad Piggies are often destructive and hilarious in equal measure.

We get something like the following as the systemic representation of Bad Piggies. The player is responsible mostly for putting the different vehicle parts together, but also provides some measure of realtime input for parts like the bellows.

With the example given previously, the player’s input is limited to tapping the Bellows to gain a tiny push.

We could go into more detail of course, and look at each part as a separate system. The bellows has a position within the vehicle and it has a nozzle direction where it will apply its force, for example. It takes player input and generates force output. This is certainly an exercise that may be more useful if you are documenting a full game, for your own benefit, but let’s keep it at this high level in this post.

In the later game, there are springs, fans, engines, propellers, explosives, and many other vehicle parts that each provide a specific effect. The strength of this type of approach is that you can design each module separately and the design becomes incredibly scalable as a result. You can go with just the minimum parts needed to make vehicles, or you can invent hundreds of different parts with dynamic effects, all using the same setup but making new types of vehicles possible.

There are some crazy machines players have been able to make in Bad Piggies!

Roles

Something related to the modular approach is to give roles to whole objects. This is what Lemmings does with its skills. In Lemmings, the goal is to get as many of your titular lemmings to the level’s exit as you can. The more you get to the exit, the higher your score.

Unfortunately, the average lemming is only walking mindlessly forward and won’t make any decisions on its own. You must instead assign skills to lemmings that change their behavior in order for you to redirect the tide of suicidal rodents towards the exit.

The first level of Lemmings commences.

For this purpose, at the bottom of the screen you see a number of different skills that the lemmings can be given. This is the primary resource you have available. In the first level, there’s really just one of them, and that’s the Digger. The game will later expand to include a whole range of skills that must be used in combination if you want to successfully lead your lemmings through the increasingly tricky levels.

Digger role assigned!

Once a lemming is given a skill it will keep repeating it with the same singular focus as the other lemmings. If the skill has a completion state, such as falling through the finished downward tunnel of the Digger, it will revert back to its skilless form and you need to spend another Digger resource if you need to.

Once the whole tunnel is dug successfully, the lemmings are all running for the exit (except one, of course…), and the first level is complete!

The levels in Lemmings become increasingly hard and you must be careful about how you use the resources you have. The fewer the better, and the more lemmings you can bring to the end without having them fall into an abyss, burn, get crushed, etc., the better!

Illustrated as a system (below) you will see that there’s not that much the player is taking part in. Rather, the player is assigning skills (“roles”) based on the movement of the lemmings as a group and the context of the level played.

It may look like Lemmings isn’t terribly interactive, but its style of play is more like a toy.

Item Interaction

A popular intent-based dynamic is how resource collection items are handled in many survival games. If your goal is to build a house, for example, you may have to go through a chain of items that represent different stages in an upgrade process before you can finally build the wall you wanted. In many ways, it’s functionally the same as accumulation (above), but it’s representing each stage with items and equipment instead of points and progress bars. Each stage is usually connected to diminishing returns, as well, where you may first need just a few resources and will then gradually need more and more.

In Conan Exiles, for example, you need a Construction Hammer to be able to build the pieces of your house. It requires accumulation of XP before you can build this hammer, but let’s put that to the side for a moment. Accumulation is a comparatively simple system. Instead, let’s look at the crafting.

To get Wood, you need to first have a Stone Hatchet. Crafting this requires Stone and Branches, both of which you can find lying on the ground:

You need Stone that can be picked up from the ground.
Similarly, Branches can also be found on the ground.

Once you have the required resources, you can then craft the hatchet through the game’s crafting menu:

From branches and stones you can craft a hatchet.

You also need Twine to make the Construction Hammer, and Twine must also be crafted. In this case, you need only one resource: Plant Fiber. You can collect this from bushes that can be found in the game world. Once you have enough (3), you can craft Twine as well.

You need to collect Plant Fiber from bushes.
You craft Twine from the Plant Fiber.

If we simplify this into a system and highlight the parts where the player interacts with the system, we get something like the following diagram. Note that the consistent thing with all systems we’re looking at is that the Sinks make sure that you always lose more than you gain. This is often what we talk about when we talk about “engagement mechanics” in game design: things that keep the player occupied.

Game world provides branches, stone, and the bushes you can collect fibers from. Crafting system consumes and converts.

Once you have the axe, you can partake in the next step of the system, which is the collection of Wood. You can find this by chopping down trees, and once you have enough Wood (20) combined with enough Twine (5), you are ready to craft your Construction Hammer.

Using the hatchet, you can chop down trees to get Wood.
Then, with both Wood and Twine, you can finally craft the Construction Hammer.

Of course, there are progress bars at each crafting stage as well, and what you will immediately realize once you want to build your house is that you’ll need quite a lot of stone to build the parts. It’s like the classic hill climber illustration, where you crest the first hill only to find a taller hill behind it. This means that Time is realistically the most restricted of all the resources you are working with, and it’s incidentally a resource we sometimes forget to take into account as game designers because while we develop our games it’s not as transparent as the others.

…and the Construction Hammer lets you build structures!
Trees provide Wood by applying an Axe to them. Crafting system then uses Twine and Wood to make the hammer.

Player Interaction

Something that the Ultima games explored in the early 90s was the use of in-world objects as representations of actions. Below is a series of images from Ultima VII: The Black Gate, where the Avatar (the game’s protagonist) is going through the process of baking bread.

This isn’t a realistic representation of the process of baking bread, by a longshot, but it’s close enough that it feels realistic. You need to go through the motions one by one and you need access to the right equipment and resources.

In systemic terms, its stocks are containers in the game world, its sources are ingredients gained from those stocks, and its converters are interactive objects also represented in the game world. This same way of representing systems through direct interaction is quite common in Roblox experiences today. Good game design lives on!

Step 1: Get flour from a sack or bag onto a table.
Step 2: Mix water into the flour to turn it into dough.
Step 3: Put the dough in the oven.
Step 4: After a short while, the oven finishes baking the bread.

Some games will also have failure states, such as a risk that you burn the bread if you don’t take it out of the oven quickly enough and you get a “charred bread” item instead of the loaf you really wanted. The key thing is that the systemic transitions are player actions. You need to interact directly with the flour sack to put flour on the table. This time around, Time also comes from its own functionally infinite Stock. This is an important input for many games, because it’s one of those numbers you have a decent amount of control over as a designer. Increasing or decreasing how much time is needed to reach certain thresholds is a very important lever.

If we boil the baking of bread down into nodes, we get something like this:

The player is involved at every step along the way: there are no progress bars anywhere, even though baking takes time.

Build Min-Maxing

Some games are played as much via spreadsheet functions as within the game itself. The system interaction in such a game is often called “min-maxing” because you’re minimizing the bad and maximizing the good with the intent of providing the best possible outcome from a given set of numbers. Causing highest possible amount of damage, for example.

The example here will be from Diablo III. One key element to how you plan a build in this game is the item sets. Each set provides a specific bonus dependent on how many of the set items you manage to equip.

Below is the full set bonus provided by the Wizard set called “Delsere’s Magnum Opus:”

Delsere’s Magnum Opus set bonuses.

There’s a lot happening here, but we can quickly tell that Slow Time is an important feature. This is one of the defensive spells you have access to as a wizard. So with this build, some extra items can also be equipped to synergize with this spell:

Crown of the Primus legendary power.
Gesture of Orpheus legendary power.

Crown of the Primus makes it so that Slow Time gains all of the different rune effects that can be customized, with one exception, and also that there’s a constant Slow Time effect centered on your character. Gesture of Orpheus makes it so you can have more Slow Time bubbles active at the same time, by decreasing the cooldown of the effect itself.

The next one is a bit different, but ties into the last power of the item set. It’s an off-hand item held by the wizard and increases damage of the Arcane Orb spell quite considerably:

Triumvirate legendary power.

There are more items in the complete build as well, but you can see the theme by now: equip a set and then try to figure out which other items that enhance the set’s features.

As always when it comes down to numbers, the results can be somewhat hilarious. Mind you that this build was also limited to what was available at the time the screenshots were taken. There are builds that are far more optimized than this example. There are also nuances lost here. For one thing, all of the blue text in the screenshots vary between “drops” of the same item, motivating you to keep playing to get better versions of the items in your build. (In other words, Time rears its head once more.)

115,000,000,000 (115B) points of damage.

You can set things up to deal a lot of damage by combining the right items. But there are also some interesting effects on how you play. Teleport synergizes well with the set items, since it can be used much faster between Slow Time bubbles. This implies that you should be flitting back and forth between bubbles and dealing damage to enemies caught inside them or near them.

As a player, your role is to combine the right items at the build stage, and then play to maximize their return. You interact with the system by selecting items in the inventory and by playing the game correctly based on the items you selected.

“Game State” represents many things in this abstraction: enemy placement and behavior, relative object states, time, etc.

Conclusions

The reason I wrote this post was the realization that the player’s part in a system isn’t always obvious. It turned out to be a useful experiment, and I am now trying to use these simplified graphs as reference points for other projects.

They’re not exhaustive analyses, by far, but hopefully they can provide some food for thought.

The Systemic Master Scale

Note: this post has been revisited and expanded a few times, going from four scales to six to provide a more holistic set of scales.

A big part of what makes systemic design work is your own design mindset. The relationship you imagine between yourself as the designer and the player who will be playing your game. I’ve talked about this before, in the third of the immersive simulation posts, and thought it’d be good to expand on it a little bit.

Imagine a scale between authorship and emergence. As an author-designer, you have a specific thing in mind, and anything that risks deviating from this picture in your head must be removed or restricted. As an emergence designer, you look at your game as objects, states, and rules—the things I keep rambling about in this blog—and it’s up to the players to discover what the tools you’ve made for them can accomplish.

This is simple enough to wrap your head around, but it’s also not very helpful. Few games fit squarely into one or the other. Instead, we can look at it as six scales and a master scale. These are what I will present in this post.

As always, if you disagree, have opinions, or want to contact me for other reasons, you can do so by commenting or via annander@gmail.com.

Core-based vs Exception-based

Many argue whether game design should start from theme or from mechanics. But you can argue just as much about the prevalence of a core loop versus an exception-based design.

Core-based

There’s something cynical about the boiling down of game design into a “core loop.” But it’s also incredibly useful. It may have been the misrepresentation of a quote by Halo 2 designer Jaime Griesemer that led to the prevalence of the “core loop” in modern game design.

“In Halo 1,” he said in the Halo 2 behind the scenes video, “there was maybe 30 seconds of fun that happened over and over and over and over again. And so, if you can get 30 seconds of fun, you can pretty much stretch that out to be an entire game.”

What he really meant was more nuanced than this. “[T]he worst part is, everyone uses it to mean exactly the opposite of what I meant when I said it! […] There was a whole second half of the quote […] where I talked about taking that 30 seconds of fun and playing it in different environments, with different weapons, different vehicles, against different enemies, against different combinations of enemies, sometimes against enemies that are fighting each other.”

This longer quote is a perfect distillation of a core-based game. You have a strong functional core—usually made with features rather than systems—and you repeat this core in different contexts throughout your game. It’s carefully paced, impeccably directed, and focused on its strengths.

From the article on core loops on the Roblox creator hub.

Exception-based

Most exception-based designs still rely on a core of sorts, but it tends to be much smaller and more consistent. The key elements that form the game come from exceptions to the core.

Good examples of exception-based designs are Metroidvania games, where each ability adds a unique new touch to the gameplay; card games, where each card provides an exception in its own right; and survival games, where the things you can craft and the objects you can collect generate a panoply of interacting exceptions.

In the words of Magic: The Gathering design veteran Mark Rosewater, “What we’re trying to do is give our players a whole bunch of tools that they then can explore and do things with. It’s not our job to find the solutions. It’s our job to make the tools that they get to find them with.” Designers make the exceptions—players find out what they’re for.

Exception-based games may break down because the players find dominant strategies or ways to abuse certain exceptions. But if you are a true believer, this lack of guardrails can actually be the perfect expression of emergence. As with the developers of Slay the Spire, who allow players to use the most powerful combinations of rules exceptions when they come up so they can have fun while breaking the game. It happens rarely enough that it’s a fun exception to the game’s overall style of play.

Some combinations of relics in Slay the Spire will practically break the game; and this is a ton of fun!

Direction vs Agency

Whether you lean more towards a predefined core feature set or a more systemic set of exceptions, another thing you need to consider is direction versus agency.

Direction

A game that is closely directed will always play out the same. It may provide the illusion of choice, or even ask the player to make active tradeoffs, but all of it is an illusion. Smoke and mirrors. You are not going to save the character that dies a tragic death, nor are you going to defeat the enemy that will come back in a bossfight later.

Direction can provide players with impressive awe-inspiring moments—it’s the strength that direction gains from its cinematic heritage. Maybe said best by someone with a movie background, such as Josef Fares talking about A Way Out: “A scene that is only playable for you for about 60 seconds. I’d say over 300 animations, only playable for you for 60 seconds, and it’s never coming back.” Scripts, storyboards, and motion capture animations: all products of direction.

Though those 300 animations are certainly unique, the gameplay of interacting with them in A Way Out is rarely more interactive than pressing forward on the left stick. The spectacle is amazing, and the direction is what makes it valuable, but the player has very limited agency.

I did everything “right” in Telltale’s Game of Thrones. But some things just had to happen.

Agency

Speaking about player agency is tricky. Some players will take it to mean that everything they attempt should be rewarded, and if it’s not, the game doesn’t give them enough agency. Let’s use a slightly less stringent definition and consider agency a factor of the game respecting player intent.

If a game with high agency gives you a gun and shows you that you can kill characters with this gun, then this is a permission that the game needs to respect. If the player later decides to shoot the game world’s chosen one in the face, this should be perfectly fine. The chosen one should die. It follows the rules of the game, and it follows player intent. If your game applies rules this consistently, it also provides a high degree of player agency.

Quite obviously, agency is the opposite of direction. The moment a plainly killable chosen one cannot be killed because the game designer decides that it’s so, they have exercised authorship and have directed the outcome against player agency.

One of the pre-DLC Cyberpunk 2077 endings is only possible if you go against the objective the game gives you.

Content vs Experience

I have complained in the past about our industry’s (and our fans’) use of the word “content,” and will probably keep complaining until we start making games in smarter ways. But content has its place, and when it comes to authorship it’s many times easier to plan content than to build experiences.

Content

“We do level design. We do art. We do new mission packs. We do new power ups that are basically variations on old power ups,” said Daniel Cook in his talk on creating new genres. “[E]ssentially we’re a content industry and we sell content.”

One more asset. One more level. One more character model or weapon prop. We know how this works, so we can plan it and we can take our script and list all the things required to realise it. Whether we build 15 or 1,500 is a matter of budget and staffing. There is very little unpredictability for the development process itself. (Unless we change things mid-production, of course, but that’s a separate discussion.)

Many times, this is exactly what players want. A feature-rich game with a compelling narrative and plenty of optional side missions to engage with. If you buy the latest AAAA single-player blockbuster, it’s often what you expect and hope to put your next 100 hours into. Then you want the DLC, the expansion, and the sequel, to provide you with even more content.

Many fans laud Red Dead Redemption 2 for its incredible amount of high quality content.

Experience

Then-CEO of Starbreeze, Mikael Nermark (R.I.P.), said in an interview in 2012 that, “We don’t talk about games, we don’t talk about genres, we just talk about building the best experience, whatever that means for that particular project.”

I have personal opinions on whether this was true at the time, which I will save for another day, but the sentiment of Nermark’s statement is compelling. An experience can be something where you are an active participant. Something where your personal input matters, where elements like immersion and role-play can happen. It can come from games like DayZ, where the experience grows out of dynamic player-player interactions.

Rather than burning through content, you’re taking the same content and doing more things with it. Sometimes because of your own vivid imagination as a player, and sometimes because you wanted to try to play the game a different way. It’s what you do when you set the sliders differently in a new session of Civilization, or replay Dishonored with high chaos. The same content, but a new experience.

The many ways people can be cruel against you in DayZ were (hopefully) unintentional experiences.

Determinism vs Uncertainty

Many words in game development have different meanings to different developers. They may even have individual meaning. One such word is “randomness.” We often use randomness to be a negative thing, because something happened that we didn’t want to happen. But it can be equally important for what makes a game interesting.

Determinism

The most deterministic a game will ever get (in this context) is when it shows you an unskippable cutscene. Every player will see the same cutscene, paced the same, focused the same. The moment you allow even a modicum of interaction, the player can go against your intentions. Controlling the camera, for example, may make the player miss a crucial on-screen event because they were looking the wrong way.

This is probably why games with strong authorship often rely on cutscenes to convey their narrative elements, and maybe also why Hideo Kojima allegedly said, “The human body is supposed to be 70 percent water. I consider myself 70 percent film.”

Other ways to achieve determinism is limitations of different kinds. Having to open a specific door to progress, walk through a certain hallway in a specific direction, and so on. Level design can assure that players see certain sights and scenes in a predetermined order.

A cutscene will play the same for every player and can be predictably planned and shown. This shot from Death Stranding.

Uncertainty

“Games are uncertain and must be so to remain interesting,” concludes Greg Costikyan in his book Uncertainty in Games. “[B]ut sources of uncertainty are manifold.” In this book, many different sources of uncertainty are explored, from simple randomization to player interaction. Will I roll the 6 I need? Is my poker opponent bluffing when they go all-in?

Whenever you can’t fully know the outcome of an event, there is uncertainty at play, and it’s one of the key ingredients for emergence. Uncertainty can come from the physics system that yields crazy results in Goat Simulator; or the dynamics of orc politics in Shadow of Mordor.

This end of the scale is for you if you embrace this uncertainty. It’s not the one thing that makes a game interesting (which is part of Costikyan’s conclusions), but considering which forms of uncertainty you want to include is a fruitful design space.

Dice and other forms of randomization represent common forms of uncertainty.

Top-down vs Bottom-up

When you have ideas for your game and start implementing it, a common way to begin is to translate the high level concept directly into objects. You will have characters, so of course there’s going to be a Character base class. Some engines will provide these expected classes out of the box. Let’s look at this top-down approach, and also its opposite, the bottom-up approach.

Top-down

A high level concept or “core fantasy” is the narrative or conceptual layer that can be used to inform your whole design. But it can also be used to inform your fans—not just you as the developer. Days Gone game director Jeff Ross said in an interview; “My design philosophy is you’ve got to stick with your core fantasy. So whatever core fantasy your IP is trying to create, if players are buying into it, they want it delivered upon.”

This focus at the high level means that you will construct a game top-down. This core fantasy will be used to make decisions and anything that may go against it will be either downplayed or removed. If a player can go off the beaten path implied by the core fantasy, they won’t be able to stray far. Deacon St. John—the protagonist of Days Gone—can’t be made to stop sulking or searching for his lost wife, for example. Those are fundamental parts of the high level concept and character writing.

Days Gone strives to be a blend of Sons of Anarchy and The Walking Dead.

Bottom-up

In his book, Creation: Life and How to Make It, Steve Grand discusses how to construct emergent behavior, stating “[t]he mistake is to start with the outward behaviour you want to see, and work back towards some equation that produces it, rather than start with the fundamental physical processes that are at work, and from them build outwards to generate the behaviour.”

The solutions used in Steve Grand’s life sim game, Creatures, is to emulate how real life works using sensory input, neurones, and actions, as well as the inputs of the player to punish or reward the creatures as they go about trying to understand their world. There’s no principal high level concept to start from, beyond an idea of emulating life. No model for the detailed behaviour. Instead, the behaviour is a consequence of the parts.

Jeff Orkin’s classic Goal-Oriented Action Planning becomes a similar type of model, where actions and state describe possibilities, and the plan that comes out of the planner is the actual behaviour. The opposite of something like a behavior tree that strictly defines the whens and hows.

The style of AI used in F.E.A.R is a bottom-up design, where enemy actions are determined by a planner at runtime.

Spectacle vs Fantasy

In self-determination theory, you talk about extrinsic and intrinsic motivation. An extrinsic motivation comes from without in the form of rewards or other stimuli, while an intrinsic motivation is something that comes from within yourself. If we want, we can look at the next scale’s two extremes as a similar thing. Spectacle is an extrinsic thrill; fantasy is an intrinsic thrill.

Spectacle

A spectacle is an occurrence regarded in terms of its visual impact. Something striking, awe-inspiring, and compelling. When the nuclear bomb goes off in Call of Duty: Modern Warfare, or when you realise the outcome of each of the different interactive set pieces in What Remains of Edith Finch. Fireworks displays are spectacles. Absurd bossfights are spectacles.

In video games, spectacles are expensive to make and tend to require either explanation or staging. Spectacle therefore dovetails nicely with direction and determinism, since it’s hard to guarantee that the player will experience the spectacle as intended if this is not assured somehow.

The brilliant What Remains of Edith Finch can be seen as a series of interactive spectacles.

Fantasy

Immersion is incredibly powerful. To visit another world and become another character. Conjure up an image of a virtual persona that becomes so real that you may even shed its tears and feel its anger.

Games are “fantasy first” when they present a strong fictional grounding for their premise. When they ask the player to play out a role, such as a liber-tea delivering helldiver in Helldivers 2, or a thief in Thief: The Dark Project. The first is an example of the game presenting a fiction and asking you to immerse yourself in it; the second is better described in the words of Paul Neurath, one of the founders of Looking Glass.

“We want a more singular experience that’s focused on a role,” he said. “We know what thieves do. Players know what thieves do. It creates an immediate context, which is especially important if you’re doing an innovative game.” The player fantasy as a means to inform the player of what to expect.

At the heart of Helldivers 2 there is the strong fantasy of spreading managed democracy to the evil aliens.

Authorship vs Emergence

After these six segues, we’re ready to look at the master scale again. The scale that goes between Neil Druckmann and Warren Spector; between Authorship and Emergence.

Authorship

Anyone who has ever had an amazing thing appear to their mind’s eye and desperately wanted to convey it through art has desired to author something. To convey specific emotions to another person. We may choose writing, painting, or game development, as our avenue of communication, but the artistic urge is still the same: to make people feel something.

“My thing I always go back to,” said Cory Barlog. “[I]s that sense of finishing ‘Castlevania: Symphony of the Night,’ and that castle flipping over, and just going, ‘Oh my God, that was amazing! I have so much more to play!’ It was astounding. I think I’ve always been chasing that. I think my entire career, I have been like, ‘I want that kind of epiphany.'”

Flipping the castle for the player, giving the player a pivotal moment that gives something value. Supposedly it’s what drove the narrative twists in the 2018 rendition of God of War that Barlog was the director for.

This is authorship. Having a strong vision where the stars align to bring something to the player playing your game, and making sure that this strong vision comes through to everyone that plays the same game.

Competitive games, like Overwatch, are carefully authored through balancing.

Emergence

In his memoir, Sid Meier tells the reader about his storied game development career. The concept of interactivity and the focus on the player’s experience of playing your game is consistent throughout. One comment he makes in describing game design is that “[l]ike chess, each piece’s function was easily understood, and only after you began looking at moves in combination did the really interesting paths emerge.”

This approach is the complete opposite of having a deterministic pre-defined turn of events in mind. You’re now building the pieces that will form the whole and then handing them over to the players. This leaves plenty of room for emergence to happen, and often it will be things you never even intended that provides the most value.

Sid Meier’s approach isn’t better than Cory Barlog’s, it’s just based on different priorities, and you need to know where you want to take your own projects. Emergence happens when you let go of authorial control.

Who are you to offend my cannibal religion? I have fair reason to eat the pope! From Crusader Kings III.

The Scales

Put it all together and you get six scales where you can put your design intentions, and a seventh scale to serve as their umbrella. We can look at the left side as authored and the right side as emergent.

Systemic games invariably benefit from a right-leaning design space, but as you will probably realize, very few games even among immersive sims and other highly systemic games are leaning completely into one side or the other.

Thief: The Dark Project has plenty of direction in its narrative and plenty of content in its level design and storytelling. The same goes for The Legend of Zelda: Tears of the Kingdom, and most definitely for Baldur’s Gate III.

By adding more exceptions, more agency, more focus on experience, more uncertainty, and designing it all in a bottom-up manner, you will be pushing your game towards the emergent end of the spectrum. Just make sure to be honest both about what you want to achieve and what fits your game best.

What I hope you can take with you from this post isn’t that you should skew everything towards the right, even if I’d certainly play your game if you did. It’s that you need to be aware of your intentions and consciously choose where on these scales you place your own game design. Once you’ve done that, you need to stick to it.