Networked Systems In my previous post, I outlined how the rules of a game can be split into static ‘scaffolding’, and variable ‘content’. Towards the end was a diagram showing how this variable portion can be thought of as an input to the system. The diagram, as a whole, represents a game. The blue box is the game’s scaffolding; its fixed rules. The red input arrows show the various forms of content needed by the scaffolding for a given match. The green output arrow shows the results of a given match; whether you won or lost. The diagram can be understood like this: When a match is started, the blue box pulls in a set of content. The player then interacts with the box in an attempt to win the match. Once complete, the box pushes its results out. How is this Diagram Useful? Most discussion on this forum looks only at the ‘game’ part of a software package, where ‘game’ means the contest of decision making. Things that happen outside of matches, such as picking characters or unlocking content, are generally considered to be outside of the game and will be ignored. It makes sense to look at a game this way. We can isolate the regions of the software package that are most central and important, helping us make better design decisions. These diagrams let us think of the ‘game’ as one region of a larger network of subsystems. It lets us see the entire system in a more holistic and connected way. Give me an example? The first system I’ll take a look at is Minecraft. The system is split quite neatly into two contrasting halves: mining and crafting. The crafting subsystem is a sandbox toy with light puzzle elements. You can place blocks from your inventory onto the ground. By layering these up, you can build a staggering variety of (square) structures. Some of the blocks are interactive, and bring up a menu used to transmute certain types of block or item into certain other types of block or item. The mining subsystem is a contest with light game elements. You venture into sprawling, labyrinthine caves and look for rare ores. On the way you battle with various monsters that can also drop rare items. Each subsystem takes in something that the other subsystem produces. Mining produces the blocks that are needed to continue crafting. Crafting produces the tools, weapons and armor needed to continue mining. The system, as a whole, forms a circle. You travel from one subsystem to the next in a continuous loop. Each subsystem provides goals and rewards for the other. Of course, no loop can last forever. A point is eventually reached where one system’s content is maxed out, breaking the cycle. In Minecraft, this point actually comes pretty quickly. With each revolution you move a rung up the tech ladder. You start with nothing, and mine for wood (by punching a tree). With wood you can craft a pickaxe that lets you mine for stone. Crafting a stone pickaxe lets you mine iron. Crafting an iron pickaxe lets you mine diamond. Crafting a diamond pickaxe lets you mine obsidian. And here, the mining content becomes maxed out. There is no obsidian pickaxe or higher. The cycle is therefore broken, and the system becomes one way. With a little practice, this can easily be done in half an hour. Crafting is also maxed out at this point, with one notable exception. One of the first things to occours to most minecraft players is to build a house. One of the next things that occours to most players is to build a bigger house - and down the rabbit hole it goes. The mining system does help here, since higher tech levels allow you to mine materials faster. But there’s still a limit to your mining speed (diamond). By contrast, there’s very little limit to how large you can make a house. And most people quickly come into a headlong collision with the mathematics of volume. If you make a house twice the size in each dimension, it doesn’t double your work. It makes your work eight times greater. A naive player (remember that many players are children) might think "It took me one hour to build this cool house. With four hours I could build a totally super awesome house that's four times the size (in each direction)". And so they begin on their sixty-four hour objective. Once you start building a large mansion it feels pretty bad to stop, so I think this goes a long way towards explaining why many players would say “I was building my mansion in minecraft until four in the morning. It’s super addictive!” (I did this). At the same time, many other players would start a new world nearly every day, building a small fort, working their way to diamond, and then abandoning it all. They were bumping into the content cap every single day, even when starting from scratch. So maxing out one subsystem (and therefore breaking the cycle) can create two serious problems. One: it makes progressing in the other subsystem harder, since it isn’t receiving regular content upgrades. Two: it can discourage further play, since the highly appealing goal of ‘getting further’ has run out. Despite all this, when the cycle is working correctly it can be a great way to provide intrinsic goals to your system. By intrinsic, I mean the goal of each subsystem is defined in terms of the other subsystems rather than defined by the player. You want to mine so you can craft, and you want to craft so you can mine. The overarching extrinsic goal of wanting to reach the ‘end’ of the game produces a long chain of these intrinsic goals that lead up to it. I’d suggest the following change to Minecraft. Early in development, they introduced the idea of ‘infinite’ procedural worlds. You could walk in any direction for years and still not reach the end of the game, since new terrain is generated on the fly as you walk. It was a cool idea, but it turns out that the surface world of Minecraft isn’t very interesting. Instead, they should have gone down. Minecraft worlds are capped at 256 tiles high. If they were capped at 1024 (or 2048) instead, there could have been multiple rock layers stacked on top of each other. To compensate for the increased height, the surface area could be dramatically reduced. Each rock layer contains a unique set of resources, unique enemies and a unique theme. Through mining, the enemies can be defeated and the resources can be acquired. Through crafting, these resources can be converted into the tools required for entering and surviving in the next rock layer. This way, the system can support more content revolutions - one revolution for each layer. And at the end of it all, there will be an artifact of your hard work on the top of the map - your base. Each rock layer can let you create a more luxurious home base, which you can feel proud of once you reached the final layer. Does this apply to strategy games too? Minecraft is a fairly simple example. It might be hard to see how networked systems apply to strategy games or e-sports, so the next example I’ll look at is Auro. In each match of Auro, you’re tasked with earning a target number of points through killing monsters. The map layout and the monster layout are provided as content. You’re also provided with a randomised set of spells which help you defeat the monsters. These are the inputs to the Match subsystem. Once a match is complete, a binary win or loss is produced. The Ladder subsystem takens in your wins and losses. It then adjusts your position on a single player ELO ladder. If your position rises enough, you’ll go up a rank. If it falls enough, you’ll go down a rank. Your current rank affects the kinds of map, spells and monsters are sent to the Match. Like Minecraft, Auro contains a cycle of subsystems. But a key difference is that, in Auro, one of these subsystems is considered the ‘core’ game, and the other is a lightweight wrapper that tunes the experience for you. Most of what makes Auro interesting happens inside of the Match subsystem. This does not mean, however, that the Ladder subsystem is unimportant. It supports the match by providing the player with an appropriate level of challenge. It also provides Auro’s progression mechanics. The Ladder is the primary measurement of your long term progress since Auro lacks experience points, leveling and other persistent RPG elements. Without it, the matches of Auro would be far less connected to each other. So splitting your system into two equal halves isn’t the only way to build an interesting networked system. One alternative is to have a core subsystem, and supporting subsystem(s). Can we have more than two subsystems? There are many popular games with more than two subsystems. Hearthstone, depending on how you divide it up, has three. Each Match is provided with a deck and an opponent as content. It has a binary end condition of win or lose, which is piped out to the ladder. Statistics about the match are also piped out so that they can be checked against daily quests. Every third match also pipes out 10 gold. The Ladder works in a similar way to Auro. Each win or loss changes the number of stars you have. Stars determine your rank, and rank determines which opponents are piped into the next match. The Collection is a little more complex. It contains a set of cards which you may use to build decks. It also receives Quests which can be combined with statistics (from the Match) to unlock packets of gold. This gold can then be spent on new cards. Finally, real money can be spent on cards to boost your collection size. Note that the quests and purchases arrows are coming from outside of the system. Quests are provided periodically by Blizzard, and purchases are only provided when you open your wallet. In this sense, we can say that Hearthstone is an open system (that is, not a closed system). After a few games, the player will complete all their quests and max out their content for the day. It doesn’t stay maxed out, however, since a new quest will arrive tomorrow. This is how Blizzard encourages long term play. They inject just enough content to make you play, but not enough content to let you quickly progress through the game. If you do want to progress, you’ll have to return in the future. Isn’t this basically a ‘patchwork system’? A ‘clockwork system’, as described in Clockwork Game Design, is a system built using the ‘clockwork design pattern’. You start with a goal, then create a core mechanic that lets you reach the goal, and then create supporting mechanics that make reaching the goal more challenging. It’s called ‘clockwork’ because everything revolves around a central hub - the core mechanism. A ‘patchwork system’, by contrast, is any system that lacks such a design pattern. They are usually stitched together in an ad-hoc fashion, resulting in a system that is wide rather than deep. A networked system is not a patchwork or clockwork system, but it can contain patchwork and clockwork systems. To explain why this is the case, let’s look at a large and well known patchwork system - World of Warcraft. This game contains a number of different subsystems that all have to compete in the same space. This makes it difficult to balance one subsystem without affecting the others. Here are some excerpts from The Ludite’s article on WoW “Let’s look at the highly popular structured PvP experience in the battlegrounds. Players are divided into equal teams to compete with each other in a completely fair and balanced… Yeah, I think by now everyone knows what’s wrong with this picture: levels and gear. The problem is that no matter what tier you’re playing on, there’s always going to be someone who is arbitrarily weaker or stronger than you, whether it’s his less shiny equipment or his grind-certified privilege to higher HP totals and larger DPS potential. This is not an accident or oversight. This is a consequence of the PvP game having to coexist with a leveling grind and a loot machine. How about an experience that is less rigid and structured? Let’s talk about world PvP. You have this whole world to run around in and take all comers! Stake a claim in an area and fight for control! It sounds really exciting, but again, you’ve got all these ulterior motives yanking back the other way. Now that everyone in the whole world is participating, the power scaling problem is even worse. If you thought fighting that fully geared max level player was hard in battlegrounds, try doing it with a level thirty-eight nobody. Well, if we have to kill mobs to have fun, maybe we can try the raid content. Gather together your buddies for the most challenging PvE fights of all! Finally, something that World of Warcraft is suited for! After all, it uses the combat and movement mechanisms heavily. The dungeons are hard enough that they require very specific group compositions, thus reinforcing the role-based social aspect of the MMO. It’s perfect, right? Wrong. See, you don’t even get to do the raid content until you’ve done your time in the quest grind. If you’re missing a critical role from your raid composition, you can’t even substitute a spare player into that role without doing the entire leveling grind yet again. What about a less popular activity? Let’s roleplay! After all, roleplaying is an officially Blizzard sanctioned method of playing World of Warcraft. Maybe all these oddities produced by the leveling power curve are forgivable from a realism point of view. After all, maybe I should have to train up my character before I stand a chance in Blackrock Mountain. Realism it is! Until, that is, you find a very nice looking pair of pants you can’t wear because it’s “too high level.” That edgy leather vest? You must be this tall to ride. It doesn’t matter how well it fits the fashion sensibilities of your character, you haven’t sworded enough dudes to warrant clothing that manly. Or even worse, what about a mage who wants to put on a leather belt? Clearly he is of too frail a constitution to bear the weight of it even for an instant.” You could draw WoW as a networked system. But that diagram is going to look very jumbled and complicated. There will be a large number of subsystems, and each one will connect in several ways to every other subsystem. It would probably make more sense to draw WoW as a venn diagram. Each of the hundreds of mechanics in WoW is connected in a big, tangled web. It’s difficult to find a group of mechanics that affect only one subsystem. You turn a patchwork system into a clockwork system by pruning mechanics. You remove the mechanics that don’t relate well to your core, and are eventually left with something much more centralised. Alternatively, you can turn a patchwork system into a networked system by pruning interfaces. You restrict the degree to which any given mechanic can affect distant subsystems. The example diagrams from earlier all contain some complex subsystems, but they also all have highly restricted interfaces between these subsystems. The individual turns of a Hearthstone match has no impact on your collection - only winning or losing has an impact. The order you mine blocks in Minecraft, or the tools you use to mine them, have no impact on what you can craft later. Rather, only the sum total of all the blocks you bring back is relevant. Each subsystem in the network could be a clockwork system, or a patchwork system, or indeed any other kind of system. But by carefully restricting the interfaces between subsystems we can allow them to live near each other in harmony. Closing thoughts The networked system design pattern presents a more holistic way of looking at complex interactive systems, and lets us start combining wideness with depth. We can keep some of the popular parts of modern game design, like progression mechanics and subsystem variety, while mitigating many of their harmful side effects. The pattern is also useful when looking at more streamlined games, since even highly elegant games benefit from ranking ladders and other supporting subsystems.