The Complexity Budget: Moving the Focus

2012, February 29th 11:54 PM

We've spent time talking about Anno 2070's subtle shifts in complexity. We've spent time talking about Gyromancer, SquareLogic, and FF13's attempt to unearth new game mechanics by removing complexity. But we haven't talked about adding complexity, and we haven't talked about explicitly moving complexity.

So let's talk about that.

Starcraft 2 and Supreme Commander

You could just as easily compare Starcraft 1 and Total Annihilation, but I'm sticking with these because it'll be easier to find screenshots. (And no, we're not going to talk about Supreme Commander 2. That game didn't exist.)

Starcraft 2 and Supreme Commander, on first glance, occupy the same genre. They're both real-time strategy games, where the player is given control over a base filled with resource gatherers and production structures, has to construct an army, and is told to go blow up the bad guys.

It's the same genre, but the two games differ drastically after that.

A race in Starcraft 2 consists of 13 to 15 units and 15 to 18 buildings. Most buildings have orders they can be given, either to produce units or to produce upgrades for units. The units themselves almost all have a gimmick – sometimes a passive gimmick like the Observer's cloaking field and cloak detection, sometimes an active gimmick like the Marine's stimpack. Combat in Starcraft 2 is mathematically simple, without any worries about ballistics or dodging. A fired shot will always hit and always do a predictable amount of damage, albeit with a little travel time. However, the complexity of the units make combat fast-paced and difficult to perfect.

Supreme Commander takes a dramatically different approach, with almost fifty units and fifty buildings per faction. Production buildings build units just like Starcraft's, but control over your utility buildings is limited to a simple on/off switch. The vast majority of units have no gimmick, either passive or active, and while there are technically "fifty units" the majority of them are simple upgrades on previous units – like the "Conservator T1 Interceptor" vs the "Swift Wind T2 Combat Fighter" vs the "Corona T3 Air Superiority Fighter". In Supreme Commander, there's no reason to build the older models of aircraft – you'd always want to build the new, higher-tech version.

First, there's a moving of complexity. In Starcraft, you upgrade units by researching upgrades at your various structures. In Supreme Commander, you upgrade units by building a new factory, then producing upgraded units. The result is that, while Supreme Commander has two classes of "thing" – buildings and units – Starcraft 2 has three classes of "thing", adding upgrades into the mix. Supreme Commander simplified the basic concepts available in the game by adding far more types of unit.

Ironically, despite having well over three times as many units as Starcraft 2, Supreme Commander's units are, overall, much simpler. Most of Supreme Commander's units do three things: they move, they shoot, and they die. In the meantime, Starcraft's units can do all sorts of things, from kamikaze explosions to directed area-of-effect attacks to mind control to teleportation.

Supreme Commander's base-building is significantly more complicated. Structures in Starcraft are largely passive, acting as large lumps of hit points that let you build things. Supreme Commander leans much more heavily on active buildings with weaponry, giving you an entire range of close-range and long-range defensive buildings, as well as a small number of ultra-long-range artillery buildings. To supplement this, Supreme Commander provides a range of defensive shield buildings that can protect nearby units and structures from incoming fire. Finally, Supreme Commander's energy-generation buildings also act as augmentations for nearby structures, doing anything from reducing resource consumption to increasing fire rate.

To compensate for this dramatic increase in complexity, Supreme Commander's bases are far easier to automate. While Starcraft's factories require manual intervention for every single unit, Supreme Commander's factories can be set to automatically construct units without the user being involved. This is a good thing because Supreme Commander armies are far far larger. Starcraft limits the player to an army of 200 "food", and the vast majority of units take one or more food – some reaching up to eight food per unit. Endgame armies frequently number around 50-75 actual units. Supreme Commander, by default, limits you to 500 units, but this is more of a computer performance limit than a game balance limit.

So, the Complexity Roundup so far:

Starcraft has more complicated units, more base management, and more complex upgrades to deal with.

Supreme Commander has more complicated base layout and far more units, but once your base is laid out, it mostly manages itself.

From what I can tell, the goal with Supreme Commander was this: Make the player spend effort only on things that are actively improving their position. Building a larger base is worth spending time on. Keeping your base running is not. Changing your production is worth spending time on. Mass-producing units one at a time, by hand, is not. Your base is meant to run itself while you're away. So what do you do during those times you're "away"?

The intention, I think, was to set the player up as . . . well, as a Supreme Commander. (They're not subtle.) You have hundreds of units and you order them all around constantly. The trailers showed the player doing pincer attacks, feints, all sorts of clever military maneuvers.

Unfortunately, this doesn't work out well in a modern real-time strategy game. In real warfare, many of these clever military maneuvers worked due to limited information, bad communication, and extremely slow units. It's easy to do a pincer maneuver when the enemy is nearly incapable of relaying orders from one side of their formation to the other, and it's easy to do a pincer maneuver when the enemy is unable to look into thick brush. It's a whole lot harder when the enemy has a circle of visibility around their units roughly equal to yours and when the enemy can retreat at the same speed as you can attack.

And "far more units" isn't really a source of complexity in itself. When your units do individual important things, it certainly can be – if you're familiar with the game, imagine trying to efficiently manage a 1000-food Starcraft 2 army – but in the world of Supreme Commander, more units simply means a larger blob of death that gets moved around the map as a sort of conceptual amorphous accumulation of power.

Supreme Commander tried to move a large amount of Starcraft's base management and micromanagement complexity into largescale strategic positioning . . . but it turns out that really doesn't work well in the RTS genre. The end effect is to take a complicated game and just make it simpler, and that's one of many reasons Supreme Commander was unsuccessful.

But with that in mind, I can talk about a more successful example.

World of Warcraft raids vs God of War boss fights

I'm not going to even pretend that one of these was inspired by the other. We all know that's not true. But they make for an excellent study on how you can get dramatically different gameplay by moving complexity around.

For the sake of this discussion, let's just ignore the whole multiplayer thing. Assume your World of Warcraft pals are simply AI bots, and the boss lives or dies based on your success at your role in the fight.

World of Warcraft characters are very complicated. Even standing in one place trying to maximize damage on a single target, you're generally juggling half a dozen abilities or more, each of which has to be used properly in order to do your job right. Many of your abilities interact with each other in complicated and nonobvious ways and have to be activated in the right patterns. If you start having to move, or deal with large groups of enemies, or target-switch often, it gets far more complicated.

Conversely, controlling Kratos, God of War's main character, is quite simple. Maximizing damage is a matter of mashing a single button repeatedly, and your alternative attacks vary in only a few simple ways – usually recovery time or area damage. Kratos has no complex interacting moves. The only interesting thing Kratos does in terms of combat techniques is his combo moves, triggered by pressing the buttons in certain patterns – but Kratos has only a small number of these combos, and they are both completely predictable and easy to trigger.

Kratos is, fundamentally, much simpler to control than a World of Warcraft character. Basic understanding of Kratos's abilities takes minutes at most, and expert control takes perhaps a few hours.

Simplifying his control scheme opens up a lot of space for complexity in other places. Namely, bosses.

Much has been said of the complexity of World of Warcraft bosses, and in a sense, this is accurate. The most difficult boss fights tend to take a month or two for the best groups to kill. But this isn't a particularly even comparison. Warcraft bosses are intended to be tough to kill, while God of War bosses are intended to be relatively easy to kill. Challenging, yes, but doable. We're going to compare Warcraft bosses that are roughly the same difficulty as God of War bosses.

When making this comparison, the Warcraft bosses start looking simplistic at best.

Complicated bosses might do something every fifteen or even ten seconds – simple bosses will often have thirty-second-long periods of time where you're simply standing there whaling on the boss. Some bosses, such as the semi-infamous Patchwerk, have literally no gimmicks. They stand there and beat on you, you stand there and beat on it, if you survive long enough to kill it within the time limit, you win. Meanwhile, the God of War bosses tend to require a response every five seconds or so, at most. There's simply no time to get complacent and no time to rest – the boss will be smacking you if you let it.

Modern Warcraft bosses will usually have two or three basic attack patterns – "run away when he does this", "don't stand in fire", "get ready to cast a lot of healing spells", but all of these are telegraphed with a clear indicator and several seconds of spare response time. The God of War bosses often give you one second's worth of notice, at best, and frequently require that you quickly and accurately recognize the boss's movement and respond in the correct manner out of several options.

World of Warcraft has chosen to put a large amount of the gameplay complexity into the character. Once you understand your character – and that can take a phenomenally long time – most of the bosses end up being relatively similar. God of War, conversely, has chosen to put a large amount of the gameplay complexity into the boss. Each encounter is dramatically different, but your character is relatively simple and easy to deal with.

Proper complexity budgeting isn't just about putting complexity in the spots you want complexity to be – it's also about taking complexity out of the spots you don't want. If Kratos had a complicated control scheme it would take away from the real goal of the game: beating the shit out of horrifying monsters the size of a house. But if World of Warcraft had a simple control scheme, then the process of creating new bosses would be far more complicated and expensive, possibly resulting in huge budget issues. You can't get away with strictly removing complexity because that results in a dull game, but likewise you have to stay below an upper threshold, or your game is impenetrable and unplayable.

I could probably go on with more examples for months, but this has gone on easily long enough by now. I'd like for you readers to analyze a few games based on complexity. Take a look at what a game explicitly avoided adding, or what a game added that was unnecessary. Compare two games in seemingly the same genre but with different behavior.

I've found this to be a surprisingly powerful tool for analyzing game design, and I've already modified some of my game plans by reconsidering where I'm putting complexity. If you find anything interesting using it, let me know!