Wednesday 28 June 2017

The Complexity Fallacy

It is easy to think that the player sees all of the complexity you put into a game, but nothing could be further from the truth. A game's complexity is basically meaningless when it comes to the end experience. All that matters is what the player actually perceives. 

Brian Upton once told me the following anecdote about a game that he got pitched to him.

The game presented to him was a space sim where the player took on the role of a space pirate. A big part of the pitch was the virtual economy that the game had. It determined what sort of goods that planets needed, what the prices of various things would be and so forth. In turn this then determined the trading routes that ships would take and what sort of cargo you were most likely to find on them. This was a really complicated system and I guess they planned on devoting quite a bit of development time for it.

Sounds cool, right?

Problem was that none of this complexity was really apparent to the player. The only feedback that the player got from the whole system just boiled down to what sort of ships and cargo they would be encountering. From this meager data it was impossible for the player to get any sort of insight into underlying systems. If all of that system was replaced with a random number generator, the player wouldn't notice. So in essence, all of this complexity was a waste.

The reason something like this happens is quite easy to see when viewed through the lense of the SSM Framework. In this framework we divide the game into three separate spaces: system, story and a mental model. Something like the virtual economy would go into to the system space. But the problem is that these systems would never end up in the player's mental model. Understanding how this works is a fundamental, perhaps the single most important, part of the game design. The player doesn't play a game based on what happens in the computer, they play it based on what happens in their head. Any feature that doesn't have a mental representation might as well not exist.

Tynan Sylvester, who is currently working on the popular Rimworld, has a great article that addresses this very issue.

In play, the Game Model is irrelevant. Players can’t perceive it directly. They can only perceive the Player Model in their minds. That’s where the stories are told. That’s where dilemmas are resolved. So the Game Model we create is just a pathway through which we create the Player Model in the player’s mind.  
The Player Model Principle indicates a source of risk. Namely, anything in the Game Model that doesn’t copy into the Player Model is worthless. That’s what happened with the ecologies in Ultima Online and BioShock. They didn’t enter the Player Model and so degraded into noise. This is a fairly obvious risk and is common in game design – all designers have seen players not understand a piece of their game.
What we want to do is create systems that are smaller and simpler than these giant hairballs, yet have more interesting, comprehensible interactions than simple systems like orbiting planets. What we really want is not a system that is complex, but a system that is story-rich. 
This is coming from a developer that is developing a hardcore simulation game. If it this sort of thinking applies to that genre then you can be sure that it applies to the entirety of game development.

Adding a feature is not about adding art and systems. It about is adding content that when played with will create a certain mental model in the player's head. In this sense, it's quite a bit like being a stage magician. Just like in games, the important thing in magic is not performing a hard trick, it is making the audience believe that you did one. In fact, many spectacular-seeming magic tricks have really boring explanations. But since the audience is never directly exposed to the method of implementation, it doesn't really matter. The only thing that matters is that the magician has a high chance of succeeding and what sort of reaction it gives the audience. Games works exactly like this too.

Most of the time, an increase in complexity is a bad thing. There is a higher chance of bugs, and it is less likely that you can maintain control of the system. This is why things like artificial neural networks doesn't have much use in games except for in very specific areas. While a neural net could accomplish a lot of cool things, robustness is more important. As a game developer you want to be able to intuit how a system works in order to properly use it in design. Go past a certain point of complexity and the output might as well be random. The KISS-approach is almost always the right one to take.

The simplest way of designing a system is, of course, not designing a system at all. It cannot get more simpler than zero. While this might sound a bit silly at first, it's a crucial part of game design. Last week I wrote about utilizing gaps of the imagination, which is really all about replacing something with nothing. The best way of understanding how to do this is to not see your features as concrete content, as complex machinery, but as experiences you want to evoke in the player. This is not just limited to fuzzy things like NPC emotions, but every single aspect of the game.

As I explained in the previous post, gaps have a lot of advantages over an explicit systemic implementation. Not only are they cheaper, but they are also more malleable and easier for the player to fit into their idiosyncratic view of the game and its virtual world. It is not always the solution, and sometimes the goal cannot be reached without having an actual system managing everything. The only way to make this decision is to look at games in the right way and understand that what matters is not the underlying machinery, but the mental states it gives rise to.

In games, if a tree falls and nobody hears it, it is a feature you should cut.


  1. Obviously if a feature cannot be perceived from the player in any way it should be removed, but I don't think this can be used as an argument against complexity in game systems. And most complex games that I know of seem to avoid the pitfall of hiding the complexity.

    The information-gap approach is interesting of course, but I tend to think of it as a feature that functions complementary to the systems and not as something that can replace the systems to an important effect.

    "Most of the time, an increase in complexity is a bad thing. There is a higher chance of bugs, and it is less likely that you can maintain control of the system"

    The increase in complexity has its benefits though. Namely, it allows for deeper world simulation and additional gameplay depth/variety.

    1. "The increase in complexity has its benefits though"
      Yeah I guess one thing to have in mind is that when you have deeper systems there is more for the player to get out of it. But I think it is vital to understand that there is no direct correlation between depth and complexity. For instance, Go has super simple rules but is still really deep.

      I could make a tic tac toe that has a physics simulation and all sort of complex stuff, but it is unlikely that would make the game any deeper.

  2. This is pretty interesting stuff and I agree up to a point. But I also believe that actual deep simulation-driven gameplay is pretty under-explored and has a potential to generate player experiences that would not be possible without it.

    The decision whether to make something like that should depend on your intent, the type of game you want to make and your fundamental approach to game design. And I guess it also comes down to how much of an "authored" experience you want.

    Though I 100% agree that the player's perception of how a system
    behaves and how it actually works can be very different and it's always in a game's benefit to convince players that there is more going on then there actually is. This is very important for making believable AI.

    But some games simply wouldn't work as well or at all without actual complexity. For things like DwarfFortress thats the entire appeal.

    It can also be a tool for game design. The developers of the first DeusEx game mentioned in interviews they basically made game systems that would work together and a lot of the design was figuring out how to influence them and how to make the right tools to give to the players, so they could come up with their own solutions to the obstacles in the game. Solutions that the designers often didn't even anticipate. That's the sort of thing you cannot accomplish without actual complexity under the hood.

    My main takeaway from this though is that you should carefully choose what could benefit from complication(being simulated) and where it's just a waste of time. The space game you mentioned definitely didn't need a simulated galactic economy that nobody could possibly notice or understand. But Minecraft wouldn't be the same if water and lava didn't spill out and affect the rest of the environment.

    1. > "That's the sort of thing you cannot accomplish without actual complexity under the hood."

      I can agree that immersive sim derive their openness and depth from complexity. But I think a much more important factors are connectedness and consistency, and how graspable these things are.

      For instance, the typical Deus Ex example is that you could place mines on the walls and then climb them and that the devs didn't think of this. But this is not really something that relies on a complex simulation, it something that relies on consistency in behavior - here in regards to what players can jump on.

      Many times, consistency = making things simpler. So the fact that you can pull of the "jump on wall mines" is because the collision algorithms are not very complex.

      > "But Minecraft wouldn't be the same if water and lava didn't spill out and affect the rest of the environment."

      But this is something that is quite easy for the player to see and experience right? And again, this feels to me more a matter of how consistent the simulation is.

      The complexity would then be in how this system work. A complex one would mean that you try and use fluid dynamics and what not. A simple one might just use something similar to Game of Life. And in this case, I think it is often best to go with the simple version.

      This said, I think it is important to point out that of course having many connections is part of what makes things complicated. So yeah, keep things as "simple as humanly possible" is not a rule that you can apply to any situation. The simplest game is one where nothing happens and how fun is that :)

      But I many times, things that seem complex and deep when you play it are often generalizations and simplifications of systems. For instance, when we added physics in Penumbra we did that because it was simpler than just using custom animations to every single drawer. But despite the system being much simpler under the hood, it feels much more complex to a user when they engage with it.

  3. I think that the true point to consider is this: "Any feature that doesn't have a mental representation might as well not exist."

    I don't think that "creating complex systems" is a waste. More so the waste is "creating complex systems that fail to make their way to the mental model"

    If in the first example, the one of the space pirate, the player is able to influence the economy, breaking commerce routes or saturating the market with an specific resource to disrupt the prices, now how cool would be that? Wouldn't it be better that a situation where no matter what you do, the demand or the price of everything keep getting values that the player don't understand where come from (because it was decided to just use a random number generator)?

    Having said this, I totally advocate on using the "gaps of imagination", focusing all the complexity and systems to where they will be noticed. There is no point (IMHO) on create an incredible and complex world that will never be seen.

    Using again the space pirate example. My approach to the game would be control everything with that "random number" solution until the player decide to interfere on an specific commerce route. At that point, if the "random number" said it is "planet A selling ice to planet B", then prevent that route to change in the future, and also give some "lore" to the planets to explain why the Planet B needs Ice and why planet A is able to sell, stablish some kind of "Ice depot" almost full on planet A and almost empty on Planet B and make the Ice price to be proportional to the difference between how much filled are the depots and the distance between planets, and then repeat with the next commercial route and use that info to make AI ships that are spawned on the proximity to select existing routes if available and if not rely again on the random number generator.

    This way you add complexity where the player is looking and you don't need a hiper-complex system that need to be super efficient and optimized because takes into account full galaxies running on the background.

    The last point would be tracking how many commerce your system can handle, so if the player is going from planet to planet creating dozens of commerce routes that will be never used or affect the player, start forgetting about the less used ones... going again to the random number approach and use another "gap of the imagination" if the player decides to come back to a forgotten route: Something happened that changed completely that route and planet necesities (a war? a cataclism? who knows...)

  4. When are you guys planning to speak up just a tiny bit on the games you're developing at the moment? Roughly at least? I'm sorry, I'm just really curious.

  5. Thomas, a game with a perfect game design that doesn't feel to the player just like a "videogame" instead it manages to create a serious world that could really exist is "Gothic" (2001).

    Everything got crafted by hand. There are no hundreds of generic quests, an endless landmass with the depth of a puddle like you know from "Skyrim" (2011) or other conventional RPGs. There are no skill-trees where you simply spent skill points to learn new talents. Everything is directly connected first hand in the game world. There are no tutorials, no quest message boxes and such things that let you feel just playing a game. "Enemies" are not there to fight you. They are there to live. In a coherent world. Gothic is far more believable than all modern RPGs. You are not a super hero with an arsenal of weapons and armors, instead you are a normal person like Daniel in Amnesia.

    Gothic is a game that every developer should have played and studied before understand how to create a believable world. This is game design par excellence. In 1997 a hand full of german students started in a garage to develop this game. Unlike all these Triple-A-RPGs, Gothic is not designed for commercial profit. It has always been their dream and it's the best game of all time.

    You should give it a try, Thomas. And I would like to read your thoughts about it.

    1. I always meant to play Gothic, and I still have the discs somewhere, but I never installed it.

      To what percentage do you think you might be adding "rose colored glasses" to this old game? :)

      Like, I still think that Thief 1 and 2 are some of the very best games ever made.

      And I still adore them when I play them, but also realise that I cannot "sell them" to people as superb games to play now, without getting mixture of reactions from people if they actually play it (as it's also kinda old, and kinda clunky in places).

      * Still the best games ever made, though. ;)

      Same for the first few King's Quest games. In my mind, they are still the amazing "open world" games with "amazing possibilities" that they represented to me at age 8. And they still inspire me (especially King's Quest 3)... but I realise I can't really sell people on playing them now and having that same experience... :)

    2. « To what percentage do you think you might be adding "rose colored glasses" to this old game? :) »

      Here is the thing with Gothic, the same level of world detail hasn't really been attempted by other games in the open world genre. Like when it was the last time you remember trying to force your way inside the castle gate, getting killed by the guards, and then listen to them mumble disappointed that you didn't have any gold on you? Or getting in an ambush, managing to kill the enemies, and then finding a letter in their boss's pockets that explains that they were got paid to kill you, so you can now follow the instructions on the letter to find who wants you dead? Gothic is full of details like these that are simple absent in other open world games.

    3. Exactly this is why Gothic is not just the best in my "rose colored glasses". There are so many details that makes Gothic unique and better compared to other RPGs. It's a fact that Gothic is a paradigm of immersive world- and game-design.

      It's old, but pure gold and still better than modern RPGs.

    4. Dude, this 'when will you play Gothic' shenanigan is getting old. Every time you're mentioning Gothic here in the comments, you're derailing the discussion.

      Look, we all have our favourite games, and by the way, I love the first Gothic, but here in the comments section of this blog it's better to discuss Thomas' ideas, games directly related to them and how Frictional games can be viewed through the lens of these ideas.

      Besides he already told you years ago that RPGs are way too long for him, we can assume, nothing has changed since then, he is a very busy man, a game developer after all.

    5. Anonymous, I really understand your comment and this will be my last request for Thomas to play the Gothic series. I think he actually noticed it and hopefully he decides to play it some day in the future. If not, then not. Everything what I can do is to recommend it.


Note: only a member of this blog may post a comment.