CreatorsOk
vrengames
vrengames

patreon


Game Design - The Value of Known Unknowns

I've had the basic idea for this post rattling around in my head for a couple of weeks now, but the recent release of The Return of the Obra Dinn has me into action. Today I want talk about information, how it's used and presented in games, and how that information directly affects the experience a player has.

First off, I'm going to hand out some praise to The Return of the Obra Dinn. The game is made by the creator of Papers Please, with a different but similarly unique graphical style. The game is a murder mystery writ large; you are an investigator in the 1800's sent out to investigate the ghost ship Obra Dinn, which drifted back into it's English port after being assumed lost off the coast of Africa. The ship is littered with bodies, and it's up to you to discover the fate of all 60 recorded passengers and crew that originally set sail. The key tool to help in the investigation is a strange pocket watch, which allows you hear the last few seconds of sound the corpse heard and see the scene that surrounded them at the moment of death. Armed with the pocket watch, a pair of sketches of life on the ship, and the ship manifest you can deduce the identity and final fate of everyone aboard the Obra Dinn. The game is a masterpiece and I would highly suggest it.

The Return of the Obra Dinn is a game entirely built around information. You are given small bits of explicit information (names spoken between characters), and piles of implicit information (who calls who "sir", where people in different scenes) and expected to puzzle out the fate of the ship. It would be very easy for the whole game to be an exercise in madness, but the game does a masterful job of presenting critical information in useful forms. In particular it makes a huge effort to divide Known information, Unknown information, and Unknowable information.

Initially the identities and fates of everyone on the Obra Dinn are Unknowable. Until you begin investigating there is no possible way for you to piece together any information, and the game makes this very clear by presenting you with a journal with every "chapter" of the voyage tail empty. As you discover bodies the chapters begin to fill in with a framework, and Unknowable facts become simply Unknown facts. That change is a critical one, because it stops players from wasting time trying to deduce completely impossible facts and has them focus on facts that are hard but possible to figure out.

Once the player has guessed enough Unknown facts correctly the game confirms a set of them and makes them Known. By confirming facts, bit by bit, the game again stops the player from wasting time double checking correct answers and focuses their efforts on that sweet spot of difficult to deduce but knowable facts. The end result is an incredibly engaging Sherlock-Holmes-esque mystery.

This concept of having Unknowable, Unknown, and Known facts is applicable to a huge range of game styles. As an example in a very different genre I will look at Star Craft 2. At the start of the game the enemies location and actions are fundamentally Unknowable, and this is reinforced by the game providing fog of war graphics that remind the player they have no idea what is happening in an area. As the game goes on the player gains the tools to figure out some of this information: enemy locations can be scouted, scans can be used, and so on. With time we can say the enemy plans become Unknown instead of Unknowable. The player is also provided with information that is absolutely true, guaranteed by the game: their own mineral count, the race they are playing against, and the time the game has been going on. By applying the Known information the player can try and deduce facts about their opponent, which may or may not be true but are better than random chance. You may know that Zerg players often expand within 6 minutes, or Protos often take an early third on one particular map. 

This deduction of Unknown information from Known information can be very satisfying and forces the player to engage with the game. This engagement relies on the clear presentation of Unknowable and Known information to let the player make intelligent deductions. Games that fail to present this information (or purposeful lack of information) often feel random, arbitrary, or unsatisfying because the player cannot guess at the internal game state of the game or predict what the outcome of their actions will be. As an example of this lack of information we can look at Eve Online. In Eve some NPC's can be used to find the location of players, making it possible to hunt them down as they move around. However, the existence of these NPC's is not made obvious by the game (or wasn't when I played several years ago, it is possible it has improved). Because of this less experienced players would imagine that their location is Unknowable, and move around the map with that expectation. More experienced enemies, on the other hand can make it Known quite easily. When a player is suddenly ambushed in a back water system they have no idea how they were found, leading to confusion and eventually frustration that their internal model of the game does not match the information the game has been giving them.

This concept of information is useful when thinking about Lab Rats 2 and is one of the major sections of the game that I am working to improve. Currently there are a number of features or effects that depend on things like: Obedience, Sluttiness, player Charisma, and character stats. Many of these features do not give any feedback or prior warning that they depend on those stats/scores, and so the results of them feel random. Generally there is no intention to keep this information hidden, it is suppose to be Known but is never actually provided to the player so it is effectively Unknowable. If the output of the game seems to be random the player cannot do any better than provide random input, which produces an unsatisfying game. 

The new opinion system that is being added for v0.10 is a good example of effectively establishing Known, Unknown, and Unknowable information: characters have a set of opinions but they player does not know what they are. Instead each opinion is listed as ??? on their character screen. The number of opinions is easily seen, but what they are is Unknown. To discover the opinion the player must either: stumble upon that opinion in action (like a character loving to flirt and getting a boost to happiness from it) or make small talk until the person reveals some new details about themselves. Opinions are revealed on the girls character screen as soon as they are seen in action, removing any book keeping work from the player, who otherwise would have to keep track of minor +1 or +2 happiness changes and try and deduce what caused them. All of this means the player is left with a clear list of Unknown but discoverable facts and a list of Known facts that can be used to plan future actions.

Going forward I will be working on improving the game feedback about what actions require and what they will cause to help the player make more intelligent, engaging choices in the game. I hope you enjoyed this little dive into the value of information in games and that it proved educational!

Comments

vscode is better for node.js (but still serviceable for python), I use IntelliJ/Pycharm for python.

Mylen Ploa

I think that the game will soon require some kind of database management system, for example mysql, to store character data. Look at game "hentai high school"- a similar implementation was made there.

I checked The Return of the Obra Dinn out after reading it was made by the same guy who made Papers Please and I spent 6 of the last 24 hours completely entranced by it. While the art style is captivating its the gameplay that really pulled me in. I like Detective-Style games and enjoyed the Sherlock Holmes series, but this game does deduction in a much more elegant and rewarding way. I actually feel accomplished when I put together clues in my head. Also the importance of (excellent) audio is very welcome. Thanks for recommending it, I likely wouldn't have even noticed it without you.

Paul Te

Not to be pushing microsoft, but if you like visual studio, you can use vs code for python: <a href="https://code.visualstudio.com/docs/python/python-tutorial" rel="nofollow noopener" target="_blank">https://code.visualstudio.com/docs/python/python-tutorial</a>

mazterlith

Hey Vren, just curious, what tools do you use for writing code? I'm getting a handle on Renpy and Python and the syntax, and I've been screwing around with simple rpy scripts to add content to the game but working in notepad is getting cumbersome. I've used visual studio for work in C++ and unitys built in editor for C#, but I'm new to Python.


More Models and Creators