Storylets Play Together

Storylets encourage narrative designers to think in terms of systems, and allow story arcs to affect one another in memorable ways.

In my previous post on storylets, I showed how storylets can replicate standard interactive narrative structures that are familiar from video games or CYOA.

This post gets into the other things storylets can do for your narrative structure that would be harder to achieve with a conventional method. Specifically, storylets let you build a system where

  • episodic stories can feed into a larger narrative arc, and it’s easy to add new episodic content without ripping out all the existing stuff
  • the player is guided within, but not constrained to, a story they’re currently playing
  • different episodes interact with each other in fictionally and mechanically interesting ways

To take those one at a time:

Large and small narrative arcs

A big storylet-based story might have a long narrative arc and then a bunch of smaller internal stories inside it.

Bee was written for the Varytale platform, which is, alas, no longer available.

My game Bee, for instance, takes place over several years of the protagonist’s life. There’s an overall arc about her growing up until she’s no longer eligible for any more spelling bees, and the changes in her life that go alongside that. Within each year of her life, she experiences traditional holidays, trains, does chores, and develops relationships with the members of her family.

To track where the player is in this story, I tracked several different progress stats:

  • How many years have passed?
  • What month is it?
  • How far has she progressed with character relationships and their associated story arcs?

“How many years have passed?” controls high level progress through the story. When it reaches a high enough number, we’ll get to the endgame, a story about her last spelling bee ever.

“What month is it?” makes seasonal content available, and of course advances the year count. This means that

  • A storylet about Christmas has “month=December” as a prerequisite
  • Every storylet advances the month after it’s played, as an effect
  • If the month is December, the new month becomes January and the year stat is also advanced by 1

The character relationships, meanwhile, are mostly detached from those temporal measures. A player might progress rapidly through all the stages of a character story during the first “year” of the main narrative.

To generalize from that a bit, we can have episodic progress stats that track where we are in a small story (like the character relationships) and other stats that rise more slowly, or have much larger values, that track our progress through the main narrative arc:

In some games, completing an episode is what drives the main arc forward. Neo Cab works a bit along these lines: you can pick up 3-4 passengers a night, and it’s up to you which ones you want to drive.

But when you’ve ended your shift, the day ends and your overall progress ratchets forward, opening up new elements in the main storyline.


Guided but not constrained

A branching narrative struggles to tell the player more than one story at a time. Typically, the player has a tightly defined set of options at any given moment.

Conversely, parser-based text adventures and a lot of open world games can confront the player with a bewildering amount of freedom, leaving them unsure what they ought to do.

A storylet system can offer a happy medium here: contextually relevant options from all the stories you’re currently in the middle of, plus any “always available” elements. Making this comfortable for the player depends on some good UI design, as well, but the underlying system supports it.


Stories that interlock

Month, year, and character story progress are not the only stats in Bee. The game also tracks spelling skill, motivation, and family poverty.

These other stats aren’t progress stats, though. Motivation and spelling skill are resources. The protagonist needs motivation to be able to play certain storylets that improve spelling skill. And she needs spelling skill at a certain level to be able to pass the end of year spelling bee.

Meanwhile, poverty is a menace — something the player doesn’t want to increase, but which may rise as a result of events in the story. When poverty is too great, certain storylet options become unavailable, and others open up.

Seasonal events in Fallen London introduce new happenings in existing game locations, and unlock new elements within existing storylines.

This is still a fairly systems-light representation — other storylet games have lots of resources and menaces in play. In Sunless Skies, for instance, gaining too much terror unlocks Nightmare storylets that plague the protagonist with unspeakable visions.

Thanks to these abstractions, one story can meaningfully affect what happens in another.

Here’s the branch and bottleneck storylet diagram from last post, except this time we’re including the idea that the player will sometimes need to go outside the episodic story she’s in if she wants to get the means to unlock the next episode. And conversely, sometimes she might need to do some other, unrelated activity to prevent a menace stat from going too high:

Some lovely storytelling dynamics can arise from systems like this, dynamics that echo the effects you find in long-running series television.

Suppose this episode is about tracking down a family of werewolves, but in order to unlock a midgame storylet, Mulder needs clues from an informant. That’s his source stat. Fortunately, he already has an informant available, unlocked through earlier play. He does have to go back through a familiar action or two of putting a signal in his apartment window in order to get his informant to show up — but that’s the kind of content reuse that feels fictionally justified.

Now suppose that in the midgame, one storylet has Mulder insist on sitting out in the woods in a convertible to watch the full moon. But nothing happens all night long except they get a lot of mosquito bites, and in the morning the menace stat “Agent Scully’s Exasperation” ticks upward a little. Or a lot.

Now Scully’s exasperation score unlocks a whole new episode when this one is over, a Mulder-and-Scully-fight episode. Alternatively, Mulder realizes he’s gotten himself into trouble and engages in a menace-reducing activity of buying her an apology gift, as a beat between the plot beats of continuing to hunt werewolves.

All of those are elements that someone could bake into a traditional branching narrative as options at the critical points. But building the system of storylets means that there’s a whole reusable economy of menaces and resources.

It means that I could have holiday seasonal events where Mulder has extra options for cheering Scully up on her birthday, or where she’ll read his intentions differently if it’s around Valentine’s Day.

Or maybe the identity of Mulder’s informant changes depending on what has happened in the top-level narrative progression. Maybe any informant will do for getting the Information resource commodity, but the costs of doing so and the fictional tonality of the interaction shift a lot.

In fact, we might have a scenario where there are multiple sources available for information, and the player has to decide how long Mulder will spend investigating each of the sources before trying to move on from this point — the more intel-gathering storylets he plays, the better the outcome he can unlock:

…but other things might be happening at the same time. Menaces might be climbing; a time stat might be counting down.


At its core, this is standard game systems design advice: make sure your systems affect each other.

It’s possible to design with this kind of systems thinking in mind for (say) a branching narrative system, but storylets make it particularly natural to do so because they foreground the stats — what are you tracking? Which storylets become available, and which are locked, as a result?

This presentation by Tadhg Kelly, and this post on his blog, talk about four kinds of numbers in games — currencies, metrics, tools, and territory. Some of his definitions feel a little alien to me — I wouldn’t think of a tennis ball as a currency in the game of tennis. But using these broad categories and thinking about how they apply to stats in narrative design, we might divide them like this:

Progress stats, menaces, reputation, and relationship stats are metrics, advancing the storyline and opening up optional events.

Money, inventory items, consumable “favors owed” by other characters, and subtler items like energy are all currencies. Currencies are most fun if they have a backstory: the currency of Hell might not be acceptable to churchgoers. Creating fungible, convertible rewards allows different storylines to affect each other in fun and fictionally surprising ways.

Most of the storylet-based games I’ve played have at least some metrics and some currencies.

Some, but not all, also have a sense of territory — a stat representing the player’s location in the game universe, for instance. Territory works well with investigation or exploration gameplay where the player needs to figure out where to look next for something.

Tools, we might understand as things that open up new affordances and actions that wouldn’t otherwise be there.

Some storylet games use personality traits or skills this way, for instance by letting the player learn lockpicking in order to defeat any forthcoming locks. The challenge is that, to pay off properly, this really requires the content creators to be disciplined and make sure that there are regular opportunities to show off a particular skill or trait throughout the rest of the content. (There are procedural ways to help make sure that’s the case; that’s a more advanced design solution, though.)

Another interesting but less common way to design “tools” in a storylet system is to have something that affects how other options play out.

  • Reduce risk. Fallen London gives the player a supply of “second chances”, a resource the player can spend to guarantee herself a second roll of the dice on a risky attempt where she wants to increase her chance of succeeding.
  • Modify core metric stats. Inventory items and outfits might increase the player’s stats in particular areas, temporarily making certain storylets accessible.
  • Multiply / divide consequences. Make a storylet produce double the currency that it otherwise would! Make a compliment twice as effective on your relationship stats with the Countess! Etc.

4 thoughts on “Storylets Play Together”

  1. I am devastated that I cannot finish Bee, as the version at dendry.github.io/bee seems to be incomplete. Might there be an archive of the Varytale version lying around somehwjere?

    1. Not in a playable form. I have an archive of the text, and have occasionally looked into making it play again, or working with others to do so, but this hasn’t proved doable so far (and I haven’t had very much of my own time to put into the problem).

Leave a comment