As with everything, game design has a lot of different philosophies, people have different views on all sorts of little things. And recently, I grew more and more disappointed with the baffling game design choices in most of mainstream games. And people play and enjoy those games (mostly) without questioning anything. Yes, there are things like lootboxes and pay to win that gets a lot of attention recently, but we don’t have to dig deep to find even more systematic issues.
Can’t really blame the players for playing objectively badly designed games and enjoying them, I would give a lot for not seeing the cracks in game structure, inconsistencies and missed opportunities. But as developers, we can put a tiny bit more effort into designing game systems (honestly, it applies to a ton of fields, like ui/ux design, writing, etc).
So here is a very simple principle for designing your things!
Width
Have a look at this basic adventure game, represented as a collection of it’s systems:
We have two main systems: walking and your health points. Let’s assume the most basic versions of these, that you die when your health reaches zero and you get a game over and so on.
On a small tangent, this shapes the mind of players hugely. I’ve been watching my friend play Farcry Primal and Breath of the Wild back to back, and while with most games you don’t expect most things to work as they do in real life, because you get used to systems not being integrated, we are very surprised when they actually do. For example, my friend was constantly being shocked by how you can bake apples near campfires in BOTW, how you can combine different runes with the world, etc
Lets think how can we improve our game? We can go ahead and add another system. We can add new locations to our game, more stuff to explore! Sounds cool, doesn’t it?
That’s what a lot of developers choose to do, because it is the most obvious thing ever. More content means happier players, more play time, etc. But not really. You can add new stuff forever, but if it does not connect with the stuff you have already, it only grows your game linearly, it becomes more wide, it doesn’t get more complex/deep. And at some point, the player will get bored of coming to a new location and having nothing to do there.
So instead of adding new systems, always try and look how you can connect old systems between one another, or how your new system will integrate with the stuff you already have. The more connected it will be, the deeper your game will be. And this is exponential complexity/depth growth!
Depth
Here I’ve pretty much made a Move to Die clone, but for the sake of an example it works. The key here is to think how one system can affect your other systems in interesting ways. It does not need to happen always, your money system does not always need to connect with your visibility system, but it is an option, and an interesting one.
Obviously you can have as many connections between systems as you want, and I find that drawing them on a piece of paper or somewhere digitally really helps me to see the opportunities, that I might’ve missed.
Now, when our game is a little more complex, we can introduce another system, just as before, the system of biomes/terrain:
But this time we can make it so that some locations affect your movement speed, some locations are dark, etc etc, it’s all super simple and common examples, but no one really thinks about them as system interactions, we tend to think about them as a way to vary up the content we have.
Here you can see a tier-2 interaction between systems, some terrain makes us walk slower, and since our health regeneration depends on our speed, that means that it also affects regen.
Another huge plus of this approach, is that it connecting systems together is usually much faster and easier, than adding new ones. It does require some level of good code structure and planning, but I find it a lot more fun and rewarding. It works great for gamejams, since in a very limited amount of time you get a very very deep game.
A real world example
But enough of theory, let’s take a look at a real example. Here is Mario Kart 8 deluxe represented as a system graph:
I plotted only the "most obvious and important" systems, because they all have so many connections, that even right now it looks messy. But you can see, how every single system has connection to at least one more, and we have a lot of systems with 3, 4, or even 5 connections.
And even 10 years after the release of kart 8 on wii u, people find new tricks, they find new strats, new ways to play the game, because of how deep and complex it is, at the same time being so easy to pick up.
Have you ever heard "easy to learn, hard to master"? This is the exact definition of a deep, complex game. As designers, we should aim to produce stuff, that fits under this definition.
I hope you found this concept helpful! Cheers, Egor.