Conversations and Clues in Innkeep

Greetings everybody! It’s January, and we’ve been back to work on Innkeep for a couple of weeks already. In fact, a few core gameplay systems have recently firmed up through further prototyping, and I thought it would be nice to share some details about them.

In Innkeep, the fantasy of being an innkeeper has a few different components. Yes, you’re serving food and drink, cooking, putting more wood on the fire, bustling about. But it’s also a game about listening in on conversations, and about talking to people, trying to set them at ease so that you can wheedle more information out of them. That’s something I’ve been firm on from very early on. What I wasn’t entirely sure of for quite some time was just how conversation and charming could be implemented. I definitely had a general direction I wanted to go in. But it needed to meet several requirements…

Paused, Time Sensitive, and Unfolding

First, as I wrote in this old article on how dialogue might work in Innkeep, I wanted RPG style paused dialogue, where you can take your time to read fairly lengthy strings of text. This is because Innkeep is a game about living in a particular world, encountering the other people who live within it. The guests are unique characters with their own particular backgrounds and stories to share. 

Another core element of the Innkeep gameplay loop is that your time is limited. Limited time means that you must be selective about who you eavesdrop on, who you spy on, who you talk to, etc. The basic idea informing this limitation is called “content as reward”. Your experience of the game might be quite different to somebody else’s, depending on how you develop your character, what conversation choices you make, etc. So, while the conversation system needs to pause for player comfort, it still needs to be time sensitive in some manner.

On top of this, we also want conversation options to be uncovered gradually, rather than available all at once. As the player spies on their guests, eavesdrops on their conversations, or smooth-talks them, they can discover entirely new topics to talk to them about. Sometimes these topics might even be secrets that a guest is actively hiding from the player!

In summary, we needed a system that allowed for paused dialogue, yet was time sensitive, and would allow for the gradual unfolding of new discoveries and conversation topics.

Enter, Storylets

A starting point that we have stuck with is the master’s book, a UI element in the form of a journal, where we may access information about our guests. But this was only part of the puzzle. Something else needed was a way to organize conversation options, and present them in a manner that allowed for maximum narrative freedom, while still also providing a sense of ‘mechanics’ for the player to get to grips with, encouraging intentional play. The answer was ultimately a version of something outlined in Emily Short’s blog, particularly her writing on a concept she refers to as “Storylets”. 

Storylets are an amount of content (like a paragraph of text, or a few lines of dialogue), which are accessible on the basis of certain prerequisites, and have certain results. These prerequisites are expressed as states, like “Stranger”, “Comfortable”, or “Likes Cats”. Thus, they are “qualitative” states. Importantly, the player is generally made aware of what those states are, and often of what states might be needed in order to do something.

For example, imagine a character who has committed a terrible crime (content), but they aren’t comfortable speaking about it while sober (thus the prerequisite here is “drunk”). If we serve the guest some strong spirits, making them “drunk”, we now have access to the storylet content by speaking with them about it. After hearing that content, we have the result, which is that we now know this crime (which can now even become a prerequisite for some other storylet!) 

A key aspect of storylets is that what is visible / accessible to the player can be pruned on the basis of prerequisites being met. For example, in Sunless Sea, a certain location like London might contain hundreds of possible storylets. However, the player can only see those that are very important, or actually have their prerequisites already met. This is referred to as “narrative deck building.”

Some of the Strengths of Storylets

After exploring the system and how it works, we quickly realized that it would be a great fit for Innkeep. There are a number of benefits.

  • Conversations can feel natural, and grounded, and unique. Instead of approaching a character, looking at your list of charms, and trying option 5, you are presented with a number of choices that are influenced by what you have already learned, what your skills are, the state of the guest, your own state as the player, etc. 
  • Storylets use content effectively. Although on the one hand we want to write a reasonable amount of (concise) content for each guest, this system avoids a situation where a large number of possible dialogue options need to be written, simply because a player might ask a guest about X. 
  • Storylets are suitable for sleuthing gameplay. For example, with the earlier example of the guest who committed a terrible crime, it might be that we learn we can get him to speak while drunk if we first speak with a friend at the same table. Multiple ways of learning such facts can be provided, acting as breadcrumbs for the player.
  • Storylets can let the player develop their character, and be expressive. After all, we can track values not only for guests, but for the player. This includes ‘skills’ in the sense of ‘being versed in a certain conversation topic’, ‘having a dirty mind’, etc. 
  • Storylets can support intentional play. Tool-tips can be used to show what conditions have been met, leading to a dialogue option being unlocked. Showing some of the mechanics in this way helps the player engage with the system proactively.
  • Storylets let us craft little qualitative narrative questlines / narrative arcs for every guest. Rather than guests merely having some explicit “trust” score that we want to get high enough, we can imagine also having different possible emotional states we might want to push a guest towards, in order to reveal their secrets. 
  • Storylets allow for dynamic eavesdropping. For example, our conversation with a guest might make them feel sad. This state opens up the possibility that a special conversation may take place at that table, where someone might tell them a joke to cheer them up (which we can then eavesdrop on).
  • Storylets can account for guest comfort, without a numerical value. Guests can check to see if they are warm, well fed, and have enough to drink, and can be given appropriate values, such as “comfortable”. 

(We’ve also been working on a new font. It’s still a work in progress, but coming along quite nicely!)

In Summary

Alongside the above listed benefits, a storylet approach fits with the way that time is used in game to prioritize player action. As engaging with each storylet advances time, the player is motivated to discover high quality storylets if possible. 

For Sunless Sea, the ship-based travel to different locations is the connective tissue for these little story elements. For Innkeep, we have the passing of time in a single location, where there are multiple possible modes for acquiring new game states (clues from spying, or eavesdropping, or conversations). The situation continues to change in a way that is dynamic and interactive, but also from a systems perspective in a way that is relatively simple.

We’ve already got this new system up and running in Innkeep, and it’s feeling like a great fit. Going forward, we will gradually iterate on the different related systems (such as how tooltips are displayed, etc.), while writing out content and integrating it with the 3rd party narrative software that we have hooked up to GameMaker.

Very much looking forward to sharing more about it over the course of this year. Maybe even in the form of a dev diary video. 🙂

Best,

– Daniel

[Wishlist Innkeep on Steam!] [Follow me on Bluesky] [Join the Discord Channel]

(On the road to the Weary Pilgrim. Five of the six gods of Cirrhul. )

Leave a Reply Text

Your email address will not be published. Required fields are marked *