Storylets are an attractive narrative pattern for generating or managing dynamic narrative experience in interactive projects because they provide a way to pick the next available content to play next. Within such a system, there are three core aspects (Short, 2019);
Each Storylet contains its content, what the prerequisites are for its availability, and how it effects the collection of values (state). Written out, this might appear as the following example:
In the above example, the storylet would become available to be used next in a story if its three prerequisites are met: the tower is in the story, the princess is in the story, and the princess is in the tower.
We use the term more broadly; for our purposes, storylets are discrete, self-contained, and reorderable modules of narrative content, gated by preconditions that determine whether they can be presented to the player at any given moment in time (Kreminski and Wardrip-Fruin, 2018).
Essentially to make something a storylet and map it into your design you just have to answer three questions, what is the game tracking and how can this fit into the storylet? Where is its content? (As storylets are always composed of content) and How are the values changed?
Kreminski identifies four dimensions for looking at storylet-based systems:
Quality Check: Each storylet is compared against hard coded and pre-designed qualities or numerical stats to which when met the stoylet is available
Location: A type of gating that prevents storylets from being played until the player is at a certain location in the world or narrative
Dynamic Query: Essentially the same as Quality Check BUT the interesting difference is that Storylets can actively change the qualities pre-set by the designer, creating a system that dynamically changes pre-conditions depending on the game state.
This is kind of obvious. It essentially details whether storylets are usually repeatable and can be replayed or if they are not.
Branching: A storylet approach where each storylet has branching decisions that effect the outcome of the discrete narrative
Templated Text: The simplest possible storylets contain fixed, static text. Other systems extend this mechanism by allowing for the substitution of variables from the game state into otherwise static text templates
Replacement Grammer: Storylets that use procedural grammar to provide variety in the storylets, especially if they are repeatable. Essentially switches around words and statements in the storylet depending on the context.
Player choice: The most straight forward approach in which the game selects a section of storylets that the player has available to them at the current time and allows the player to choose between them.
Salience-Based: Salience-based selection, compares the actual current game state to an “ideal” game state with which each storylet is tagged and selects the storylet that represents the closest match. Some storylets, tagged with highly specific state conditions, match the game state only rarely but are especially relevant when selected; others, tagged with highly generic state conditions, are used as fallbacks when none of the more specific storylets represent a good match for the current state
Drama Manager: Narrative content is structured as a pool of “beats” and a drama manager makes selections from this pool in response to the player’s actions. Definitely the most complex and simulation focused.
Pathfinding/Search: The use of pathfinding or search algorithms on a graph of possible future directions for the story to take. Similarly, in Emily Short’s Glass [19], player and non-player characters take turns “steering” a conversation through a graph of interconnected discussion topics, with the goal of successfully steering the conversation onto specific topics. Short refers to this approach as waypoint narrative
Weighted Random-Selection: Extends simple random selection with an additional layer of complexity: a “weight” for each available storylet is calculated based on the current game state, making some storylets more likely to be selected than others. Reigns uses a weighted random approach, framing it in terms of a “deck of cards” metaphor: a storylet (or “card”) that is highly relevant to the current game state may be dealt into the “deck” multiple times
The storylets will occur outside of missions in the overworld segment and within the levels. For our prototype however we are strictly focusing on how they could work within the levels themselves, tying into combat, side and main objectives and characters within each combat room.
The player can trigger storylets by reaching locations and interacting with objects, a character dying, speaking with other characters and fulfilling main and side objectives. These storylets, especially the character related ones, will carry over decisions into other storylets as well as take account of character stats, abilities, class and potentially location.
Big Events
Smaller Stats