World of Smoke and Mirrors

AI Somnium is a Visual Novel about a Detective trying to solve a mysterious murder in future Japan. While the story of the game is great, one small feature that won me over is that when you are having a conversation with more than one character, you can see other characters' reactions to whatever is being said. It’s a small detail, but it really helps immerse you and convince you that the characters you are talking to are more than just props in the  main character’s story. That got me thinking about different ways that games try to convince the player that the world they are inhabiting is bigger than they are.

Three-way conversation in AI: Somnium Files. Notice, how the character in blue is annoyed at the character in pink.

Three-way conversation in AI: Somnium Files. Notice, how the character in blue is annoyed at the character in pink.

Developers who want to create an expansive world for players have to choose a spot in the spectrum between “simulate the entire world” and “lie to the player about the world”. For example, if I were to create a populated city in an rpg, I could create a schedule for every single NPC and have them follow it or write a system that simulates all of the people’s lives in the city. However, I could also just randomly spawn NPCs around the player and have them do random actions that make them look busy. One could argue that simulating an entire city is not very cost-effective, while randomly spawning NPCs might be not convincing enough. As such, I thought it would be interesting to look into different ways developers try to find a middle ground. How do developers strike a balance between cheap and convincing worlds?


Developers have to be clever about adding content. .The newest Animal Crossing game features hundreds of potential villagers that can come live on your island. However, the game has you interact often with the villagers and you slowly get to know each one over the course of weeks. Given how much you talk to each villager and how many of them there are, it would be impossible to create unique lines for each villager. Furthermore, having unique interactions between all the villagers would be even more of a development nightmare. So, the developers decided to give each villager one of 8 personalities. Each personality has hundreds of different text lines and different interactions with each personality. Since most players have around 7-10 villagers on their island, the chance of seeing the same voice lines from different villagers is very small. Furthermore, each villager has small and easy to add quirks that make them seem unique even if their personalities are the same. As a result, the player perceives hundreds of unique villagers that could come to their island. The Animal Crossing world seems huge! The lesson here is that grouping elements of the world together and making sure each group is well developed can help reduce development costs without losing too much veracity of the game world.

A chart showing how different personality types interact with each other.  Hearts is friendship, triangles is neutral and X is dislike.

A chart showing how different personality types interact with each other. Hearts is friendship, triangles is neutral and X is dislike.


Sometimes all immersion takes is one or two special moments that make you feel like all your actions . A long time ago, I was playing Bard’s Tale 3. While traversing one of the generic RPG villages, I was confronted by an angry NPC. The NPC explained that I kept running into other villagers and that it was really annoying. He asked me to stop bumping into others. While the scene was played for laughs, it also sent a clear message of “This is not just a regular RPG game, you can’t do whatever you want without consequences”. Note that the rest of the game falls into a lot of the regular RPG tropes, with unimportant NPCs being one of them. However, that small moment changed my perspective on the game. It was easier to see the NPCs as people. The lesson here is that sometimes all you need is one or two displays of the world being complex to prime the player into thinking your game world is more complicated than it is. 

It’s just a few examples, but it is interesting to see how developers try to handle this complex balancing act. Whether it’s by grouping elements together or crafting unique moments to convince you the world is complex, the techniques are very clever.