Storylets: You Want Them

Storylet systems are a way of organizing narrative content with more flexibility than the typical branching narrative.

Very frequently, when I’m called in to suggest a narrative delivery system that will work for a particular game, I find myself sketching out some form of storylet-based solution. Storylets are simple, atomic, robust, and recombinable.

Here’s my basic definition of a storylet (though many systems may call them other things: events, snippets, etc):

  • there is a piece of content. It might be a line or a whole section of dialogue, it might be narration, it might be an animation or scrap of film
  • there are prerequisites that determine when the content can play
  • there are effects on the world state that result after the content has played

I’ve written some before about how this structure lets one get beyond standard branching narrative, with quality-based and salience-based structures. It is the concept underlying StoryNexus. It also underlies Threaded Conversation, the conversation library I wrote for Inform (eventually released, and now maintained, by Chris Conley).

You could even understand conversation elements in Versu and in Character Engine as a type of storylet. In those cases, there is quite a lot of other procedural work determining what content should be presented next and how it should vary. Quite a few procedural narrative systems work by defining some kind of model for stringing storylets together — so this can be an approach that will support an ambitious AI-driven concept.

At the same time, this design method isn’t only for the procedurally ambitious. You can make and explore the affordances of a rudimentary storylet system by writing your storylet content and quality rules on a set of index cards. And in fact I do sometimes do exactly that as a paper prototyping exercise.

This definition leaves a lot else out. It doesn’t say how much content is inside a given storylet, how that content is structured, or how it’s selected. Max Kreminski’s overview work explores a lot of the nuances here.

But for the present article, I’m looking chiefly at how many standard ways of structuring game narrative content can be rendered in storylets.

Common Branching Structures and Storylets

Storylets can be used to replicate a lot of classic structures from branching, Twine, or Choose Your Own Adventure contexts, if you give yourself a progress stat or quality to count how far you are through the story, and perhaps also allow for a menace stat to represent how much trouble the player is in.

For instance, here’s a gauntlet storyline, linear except where the player makes a mistake, as it might be represented in Twine and then as it might be represented in storylets:

And here’s a branch-and-bottleneck, where the player is allowed some variation and then channeled back for critical moments:

Or a sorting hat, where a key choice at the beginning determines which of several linear narratives the player will experience:

Or a loop-and-grow structure where the player goes through the same seasons over and over again, but with some growth and difference over time — the structure I used for Bee.

Time caves are possibly the most annoying type of work to build with storylets, because they make every piece of content access dependent on the exact route you took to get there:

So to represent this in storylets, you’d have to attach to each piece of content a unique identifier that you used as the flag to unlock the next piece. At this point, you’re not getting most of the value of using storylets — the robust ability to add things later, the possibility of making stories interlock in interesting ways, the design discipline of generalizing about how your narrative space works.

Any individual Varytale storylet could contain a Twine-like or Undum-like presentation of branching content inside it.

As a practical matter, though, most games of any size aren’t time caves. It’s way too much work and too much combinatorial explosion, making a story that branches and branches without ever recombining. The more common case is to have small time-cave-like segments embedded in a larger structure. And in that case, it’s possible to enable that kind of branching with some tooling finesses — Versu and Character Engine use tooling to make it easier to author explicit branching elements embedded in a larger procedural flow — or by embedding branching narrative content within a storylet, as Varytale did.

Common Video Game Structures and Storylets

Storylets can be unlocked by levels of gameplay, levels of resource gathering, or by repetitive grinds where they have to be played over and over again until the player gains enough skill to pass. (The latter was a common structure in the early days of Fallen London, though the system has largely moved on from that.)

Storylets can be interspersed with progress in a casual game like Lily’s Garden, letting the player open new sections of story by playing some match-3 or time-management or similar gameplay:

And if the gameplay between levels is something where the player can express any kind of choice — playing the level well or badly, with one strategy or another — a storylet structure will let you pay off the narrative consequences there:

Storylets can be used to imitate the progression of a geography-based level design, if we break that design down into accessible areas:

In short, many of the other options for assembling an interactive story can be replicated using a storylet structure.

But there’s more. Storylets can also be assembled into unusual solutions, like narrative deckbuilding and crafting concepts. Storylet-based stories can be extended after they’ve been written. And they can be designed to interlock with other narrative circumstances in the same storyworld.

Taken together, those features mean that storylet-based systems are often a good bet for a game that’s meant to last for years, to include DLC, to mesh with other gameplay systems, or to allow interesting player mods.

I’ll get into more detail about some of those points in a future article, if there’s interest.


15 thoughts on “Storylets: You Want Them”

  1. This is an excellent post.

    It occurs to me, for the first time, that ‘time cave’ has a multiple meaning of not just ‘in the style of The Cave of Time’, and ‘a liminal place wherein the working of causality is obscure,’ but also ‘a pit into which you may throw your time and work, endlessly.’

  2. Thank you for the illuminating post! Definitely very interested in hearing more about the points you brought up at the end.

  3. I know you reference using index cards as a rudimentary version of your storylet concept; but would you agree with an assessment that, on some level, “storylets” as you define them can be seen precisely as a “card-” or “deck-based” structure?

    Insofar as there is a meaningful unit (a card; can be any length/complexity) and it is loaded into or out of the “deck” of content depending on prerequisites. Once a decision is made based on (or within) the card, it then affects the world-state (stats or variables) which influences the “deck” – what is the next “card” to be drawn? Can another card be drawn? Are any cards removed from the deck?

    At its most basic level, games I can think of which use it, almost precisely with this “card” style iconography, are Reigns: Her Majesty and 60 Seconds!/60 Parsecs!.

    1. I do use cards as an analogy for this a lot, and so do many others (as you point out) — the workshop session I did for the London IF Meetup, we used big sheets of paper, but it was the same idea, just scaled up for visibility in a big room. ( ).

      I think the usefulness of the card/deck analogy fades the more internal complexity the content has (e.g. if a storylet contains a bunch of branching stuff itself) and the more complex the selection method (e.g. if a love-triangle storylet can fire any time there are three characters with the correct relationships in play). You could still try to think of those as cards, but they are less and less like physical cards at that point.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s