If I Can't See It, It Doesn't Exist: Systems and Simulations in Games
/Dreaming up worlds can be a very fun activity. When we make a game with a complex setting, we may be tempted to try to simulate as much of the world as we can so that it can truly be alive. Games like Dwarf Fortress show us how satisfying playing in a well simulated world can be, so it is tempting to think that simulating more and creating more complex systems leads to having a better game. However, game developers have limited development time. We have budgets, constraints and all manner of things preventing us from making another Dwarf Fortress. So the question is, what should we simulate and how should we simulate it so that our game is improved? Below are a few lessons we can learn from existing games:
1) Make complex systems only if they are relevant to game mechanics/goals
Oblivion and Stardew Valley are both great games that share one surprising similarity: all inhabitants have simulated daily routines. Below is a picture of Roderic Pieranne, an NPC character in The Elder Scrolls 4: Oblivion. Each Sunday Pieranne leaves his wife and home to sleep with another woman in a local inn.
Here is a picture of Mayor Lewis from Stardew Valley. Officially he’s single, but through the course of the game the player learns that he is in a secret relationship with another NPC, Marnie. Every Wednesday Lewis goes to Marnie’s house to spend time with her.
What is the difference between these two characters (other than that one of them is committing adultery and the other isn’t)? Players who have played Stardew Valley know about all of these behaviors while most Oblivion players are not even aware of Roderic, less so his routines. Both characters have detailed routines, so why is it that in one game players are aware of the schedules and in the other they are not? The main reason for this discrepancy is that Stardew Valley’s mechanics encourage the player to visit and follow the NPCs in the game often. In addition, there are only a few characters in the game, so the player has time to become familiar with their routines. On the other hand, Oblivion is a game with hundreds of NPCs where you spend most of your time exploring dungeons and fighting monsters. Interacting with NPCs is very limited and you very rarely talk to a given NPC more than 3 times. Therefore, there never is a point where you would become aware of the NPCs simulated routines. This raises the question of whether it was worth it to create all of these detailed schedules if most players never notice them. So, this leads us to the first lesson: complex systems and simulations have to be relevant to mechanics and player goals or otherwise the player may not realize the system exists.
2) Show and tell the player that the simulation is doing things
There seems to be consensus among gamers nowadays that game AI “sucks” nowadays. When asked for examples of good AI, two games stand out: FEAR and Halo. Why are these two games seen as great AI examples? I don’t think the answer is “better AI systems”. If that were the case, we would see more modern examples of games with “fantastic AI” given how much money game studios pour into making sophisticated AI systems. I think this a design issue at its core, which is illustrated by a few points Mark Brown makes in his video “What Makes a Good Game AI?”. One observation that he makes is that enemies in FEAR are very aggressive and loudly shout out what they are planning on doing. So, if a player is fighting a group of enemies and one of the screams “Fall back!”, the player thinks that the AI made a decision to retreat. This gives the player the feeling that they are playing against thinking enemies, when in reality this action is just the result of a single AI system controlling agents.
Furthermore, Mark Brown mentions that enemies in Halo were seen as smart partly due to the fact that enemies had enough health to make decisions before being killed by the player. As a result, the player could see the enemies move or attack in smart ways instead of just mowing them down the moment an encounter started. So, simply telling or showing the player that choices/events are chosen by the system lets them know the simulation exists and therefore makes the simulation feel real.
All in all, the main thing to consider is that systems and simulations in a game have to be visible to the player and relevant to the game mechanics if we want them to really improve the gameplay experience. Otherwise, we could have spent a lot of energy on something that just makes the player go “oh ok cool”.