In 1977 an architect named Christopher Alexander wrote a book with the hope that it would reform the way we think about architecture. Alexander had noticed that modern rooms and buildings were unpleasant places to be. He believed that by looking through history at buildings that successfully filled their purpose while also being enjoyable to occupy, he could find the commonalities between such places that allowed them to achieve what had become an increasingly rare state: a place that was both functional and pleasant to be in.
The modernist city of Brasilia is an example of how not to build a city going by Alexander's wisdom.
The book Christopher Alexander published was titled “A Pattern Language: Towns, Buildings, Construction” and gave instructions to its readers on how to achieve a desired effect by replicating a historically made design decision that achieved the same effect. Not being one to keep a narrow scope, Alexander distilled a series of design patterns that could be applied to a wide range of architectural decisions, from the way towns are distributed across a large swath of land to the way one could pave outdoor paths. His dream was to create towns and cities where people could live, work, and grow in a community that was interconnected, safe, and beautiful. Such communities would encourage things like self-expression, building relationships with your neighbors as well as nature, and be timeless places that would stand the test of time.
The book was hated by many of his contemporary architects. They thought the book was reductive and didn’t like seeing their profession boiled down to a paint-by-numbers approach. They also disliked the fact that many of the patterns ran in opposition to the modern style of building: the book advocated for things like slanted roofs and windows made up of smaller panes whereas the modern building style favored flat roofs and large sheets of glass. However, architects were not the only people who read this book. As it turns out, designers from a variety of backgrounds found Alexander’s pattern-based approach to be applicable to their work. Ward Cunningham, the creator of wiki, credited Alexander’s work as the inspiring force behind the technology’s creation. Game designers also found Alexander’s work inspiring: Will Wright also claimed to be heavily influenced by Alexander when making his myriad hit games, specifically Sim City and Spore. (It's worth noting that not all architects hated Alexander's approach to architecture and many influential architectures of the last several decades cite him as a large influence on their careers)
I'm not sure if Alexander can co-sign on this city, but I'm sure he'd co-sign on Sim City itself.
Christopher Alexander was a fascinating person and if you find this post interesting, I strongly encourage you to seek out his work. But we’re not here to talk about some revolutionary genius from ancient history, we’re here to talk about games! What does he have to do with game design?
As I previously mentioned, game designers have applies Alexander’s work to their industry, and some have even tried to adapt his practices to the art of game design. I was fortunate enough to study under one such designer, Christopher Barney, whose book “Pattern Language for Game Design” provides a blueprint for thinking about and creating patterns for game design. Other influential game designers have also cited Alexander’s work as being hugely important to them: I mentioned Will Wright earlier, and Jesse Schell is also a disciple of Alexander (check out this great GDC talk he gave applying some of Alexander’s principles to narrative game design).
At this point, you may be wondering, “What the heck is a pattern anyway?” And to be fair, the word pattern is somewhat ambiguous: the word pattern could be applied to the type of design on the shirt you’re wearing to the way cars move at stop signs to the way you go about your week. When Christopher Alexander speaks of design patterns, though, he’s talking about a commonly used solution to a problem that a designer is trying to solve. Here’s an example: one problem designers must account for is that people tend to loiter in public spaces where there is a lot of goings-on in order to people-watch or enjoy the events that are occurring in the area. This leads to pedestrian congestion which could make the area unpleasant to move through if you’re just passing by. Alexander’s solution is to create stair seats: add extra space to steps where there is a change of level in areas that are near public spaces of interest in order to give would-be loiterers a place to sit and stay out of the way of the general public. If you’re struggling to come up with an example of such a place, I’d point to the Boston Public Library in Back Bay which provides plenty of stair seats for folks to look onto Copley Plaza and Boylston Street.
Look, they're doing the thing Alexander said they'd do!
Now take that concept and apply it to games. Think about all the commonly occurring design decisions across games, from something as surface-level as health bars to something as esoteric as game balance. Games are full of design patterns that were either consciously or unconsciously selected by their developers in order to deliver a desired experience to their players.
One important thing to note is that patterns don’t necessarily prescribe a solution to the designer. A common critique of pattern languages is that it takes all the creativity out of the design process and boils it down to something akin to going to the grocery store: you have a list of ingredients you need to cook a meal (design problems), and the store has the food you need to make that meal (patterns). However, that is not how design patterns work. Design patterns suggest broad techniques that can be used to solve common problems, but still give the designers applying them plenty of creative license on how to apply them. Take a pattern I created about boss battles, for example. This pattern attempts to solve the problem of boss battles being monotonous if you are simply attempting to deal damage to one game object (the boss). It suggests that, instead of just asking the player to constantly deal damage to the boss, give the player other objectives during the boss fight that will force them to make a decision, thus adding more drama and higher stakes to the decisions made during the boss fight. The pattern then suggests several different ways to achieve this: you can have the boss spawn minions which will require the player to decide between killing the weaker (but still dangerous) minions or damaging the boss. You can give the boss critical weak points that may be harder to hit but deal bonus damage. Or you can create strategies that allow players to alter the boss’s capabilities such as being able to destroy a weapon or body part if enough damage is dealt to a specific area. Those are just three suggestions, there could be dozens more that I didn’t even consider when making this pattern, and even within the suggestions I did make, there is plenty of room for variation and nuance.
Adds are just one of many ways to make a boss fight more interesting.
Furthermore, what patterns are even selected are based on decisions made by the designer throughout the design process. There is no pattern that tells you how to start making a game, and of the hundreds of design decisions that must be made during the game design process, game design patterns will only be able to help with a fraction of them. While game designers will need to create a design and then recognize potential problems with their design in order to successfully utilize game design patterns, they cannot simply say something like, “I’m going to make a first-person-shooter,” and then use a paint-by-number system to design a theoretically perfect game.
The ultimate goal of creating game design patterns is to create a pattern library that can be used by game designers across multiple studios, and perhaps the world, to share ideas on how to solve common problems in their games. While there have been attempts in recent years to create a more unified language for game design, the fact is you can ask 10 different game designers to explain a concept and have all ten of them use vastly different language in their answers. A realistic goal, for now, would be to create a common pattern language for a studio, one where designers that work with each other on a daily basis can reinforce the use of certain words or phrases that address game design problems and solutions in an effort to streamline the design process. Still, that hasn’t stopped people like Chris Barney from attempting to create a pattern library that is free to access to everyone. This library (found here: https://patternlanguageforgamedesign.com/) is a tool that can be used by all game designers to attempt to find patterns that address design problems in their designs.
I realize that I’m pretty into the weeds of game design in this post as opposed to some of my previous posts which focus more on the enjoyment of games rather than the design of them, and while I’m sure topics like this will be less interesting to many of the people that read this blog, I am hoping to spend more time talking about game design concepts in future posts. Still, I’d like to appeal to a wide audience, so I am going to walk through a very boiled-down exercise of creating your own design pattern.
Step 1: Name a design element
This can be anything that occurs inside a game. The example that Barney uses in his book is jumping. When I first did this exercise, I said minigames (which was probably too broad of an element as it begs the question of what qualifies as a minigame, but I'm nothing if not an ambitious thinker). Other design elements could be enemies, mazes, weapons, skill trees, blocking, consumable items, etc.
Step 2: Come up with a list of games that use that element and describe how that element is used within the game.
Try to think of ten games that use that element. The more different ways that element is used, the better (in my minigame example there are games that use minigames as a way to decide which players earn valuable resources, such as Mario Party, and there are games where they help build the world by providing the player with thematic activities, such as Red Dead Redemption).
Step 3: What design problem do those games use the element to solve?
Go through your list of games and see what type of design problem the element is solving. As I mentioned earlier, Mario Party uses minigames to solve the problem of players requiring a skill-based method to earn resources. Red Dead Redemption uses them to solve the problem of needing a world to feel interactable to be more immersive. Fallout New Vegas uses them to solve the problem of making players feel like they earned access to special items or information.
Step 4: Identity repeating problems that are solved by this element and create a pattern based on that.
Look at the ways the games you listed use the design element you chose and see if there are any repeating uses. Take those repeating uses and create a pattern based on what you find. To go back to my minigame example, I found that many games used minigames as a way to add a sense of achievement to get to certain plot points in the game's narrative. To use Red Dead Redemption 2 as an example, there's one mission where you need to win a game of poker in order to advance to the next part of the mission. This allows the player to feel like they made good choices and accomplished something, and it's a different way to make the player earn progress from the more common gun fights.
Once you have that pattern in mind, here’s how you create the pattern.
Give your pattern a name: Something that’s memorable and makes reference to the problem you’re solving.
State the design problem: State simply what problem the pattern attempts to solve (for my minigame pattern the problem I focused on is that smaller plot points need to be accompanied by smaller but still memorable game actions compared to larger plot points).
Describe the pattern: Describe how the pattern you found solves that problem (in my case, it’s that minigames make these plot points feel earned without detracting from the large action sections that usually accompany bigger plot points).
List examples of games where this pattern has been applied in the past. You should have already basically done this in step 3 of the pattern exercise.
And that’s it! You’ve created a game design pattern! There are several other steps you could (and should) complete if you are attempting to submit the pattern to be a part of the game design library, but for the purpose of this blog, I’m going to have you skip that part. If you’d like to take a look at the pattern I created using this exercise, you can view it here.
As always, I like to end with a question, and my question for this post is: What is a pattern you have seen repeat in a game, and what problem do you suppose it is solving?
One pattern I like encountering in games is the ability to build a team with characters that have different skill sets. This pattern could solve several different problems, but the one that stands out most to me is that by allowing players want to be able to solve problems multiple ways, and by having multiple different skill sets available to the player, players have more options for how to solve a problem. An example of this could be in Wasteland 2: players assemble a team of Rangers who have a variety of skills such as different combat skills, different charisma-based skills, and different overworld skills. Having characters in your party with different skillsets allows you to tackle problems in different ways: perhaps there is a corridor that you will have to fight your way through, but because you have a character that's an expert in demolition you can blow a hole in the wall and escape through that, or perhaps you're able to avoid a fight with some robots because you have a character with high stealth and programming skills that was able to reprogram the bots to be friendly. Or maybe you want to fight everyone and you pack your party full of combat experts! Because you have access to multiple characters with different skills, you can choose how you want to solve the problems the game presents you with.
Comments