This is a question that comes up very frequently in the narrative design conversations. This post is a tour of some possible answers.
Select or Generate Content
Content selection systems choose what piece of content to show the player next. They often function on the level of scenes or individual lines or barks in a more freeform story.
- Content selection systems might rely on salience, QBN, drama management, and other systems for how the content might be chosen.
- Storylets offer one way of atomising content and making it ready for content selection.
- Features of the corpus of available content will also have a big effect on the results; this is standard procgen theory territory. Midway through this Heaven’s Vault review (by the picture of the Sprinkletti) I talk a bit about corpus aesthetics
I’m saying least about this one, not because it’s boring, but because it’s a field already under constant and extensive discussion. A majority of conversations about “procedural narrative” are looking at these possibilities.
Manage Player Options
Gating, filtering, and locking systems determine which specific actions are or could be available to the player right now, or that help the player surface possible options to take next if they have a very large possibility space of actions to work with.
They might do things like lock dialogue options or add elements to interaction menus.
- This Inkle post goes into code-rich depth on their “conversation distributor” approach to generating choices in Overboard! The design and implementation here treats the problem as a content selection problem, but one looks at individual dialogue quips rather than larger units.
- This post talks about Restless and its interface for accessing options; the relevant portion is towards the end of the talk.
Designers thinking about narrative consequence often think they need to deliver those consequences through content selection – “you did this thing, and therefore there’s a big consequence with story branching!” Unlocking new options is sometimes clearer to players and less expensive to build, though: “you did this thing, and therefore you have the option to take a variant approach later!”
Natural language input systems – whether a text adventure parser or an intent-recognition chatbot or voice interface – are typically trying to map the player’s freeform input to a fixed list of possible actions, or to a combination of possible actions and/or objects. (There are exceptions applying one continuous deep learning model to both understanding input and generating output, but those systems are unsurprisingly a lot harder to control.)
So the whole complex arena of understanding player expressive intent depends on also having a narrative model of what the player plausibly might intend, and what sorts of options the game is currently able to offer. (For added challenge, those two things don’t always match.)
If you’ve read much of this blog, these two categories are likely familiar. The thing I’m most interested in right now, after the fold.
Resolve the Consequences of Actions Taken
Resolution systems that determine how success or failure (or other types of outcomes) are determined after the player makes a choice/performs a verb.
These systems vary a lot, and can be:
- Basically non-existent. A given choice option always produces the predicted changes to the world model, so all the narrative systems are focused on content selection and option management instead.
- Non-deterministic. A player’s choice succeeds or fails depending on a stat roll or other randomiser. This is output randomness, and it tends to bring a lot of challenges in a narrative game, especially if a given option can’t be re-attempted or the player doesn’t have clear guidance on what would make the stat check more likely to succeed. Still, there are ways of doing this that can be satisfying, especially if individual successes and failures are less consequential than the overall trend.
- Skill-based. There is some gameplay associated with a particular choice that determines how successful the player is. Many games do this, usually by outsourcing narrative elements to other, non-narrative gameplay systems. (See for instance Griftlands.)
- Deterministic, but highly dependent on prior world state. Complex deterministic outcomes can be just as obscure as a stat roll, if the player doesn’t get sufficient indications of how the resolution system works. If the player does understand that, though, this approach can be very satisfying, offering lots of perceivable consequence. (See also Stacey Mason’s Responsiveness in Narrative Systems.)
In thinking about deterministic resolution mechanics, I look especially at board games, from classics like Diplomacy on. (Tabletop roleplaying games often have good non-deterministic mechanics – also incredibly useful, but I think more familiar and more frequently mined already by video game systems designers.)
Convey the Results to the Player
Performance or reporting systems determine how an event or piece of story will be presented to the player.
Performance systems are used to:
- Drive selection or generation of procedural dialogue lines, textual descriptions, animations, character expressions, postures, or gestures; selection of UI elements, vision filters, lighting or music
- Direct player attention dynamically to things that matter at the moment
- Mix together and accurately represent complex state from multiple underlying models, such as “this character is agreeing to do what you want, but they aren’t happy about it” or “this character is greeting you, but they are in a sad mood”
- Avoid verbatim repetition of the same words, postures, or performances in a way that might break immersion in the game world (the “arrow in the knee” problem)
One of the design spaces I’m most interested in right now is making the resolution of actions itself produce rewarding chunks of narrative, using a system that combines complex action resolution with a juicy, narratively satisfying reporting of the results.
I talked about one approach to this in my talk for Innovations in Procedural Narrative, around how certain player requests or actions in Mask of the Rose can lead to multiple procedurally assembled lines of dialogue or action, and reflect in detail why an NPC does or doesn’t want to do what you asked of them.
There’s a lot of room here to do more, though, especially if we’re thoughtful about what we mean by “narratively satisfying reporting.”
In Mask, it means that characters will tell you why they’re turning your request down – but they’ll tell you in a range of ways, in dialogue designed to communicate character and setting above and beyond the mechanics. A character might choose not to honour a request because they don’t want to side with a particular faction – but their refusal might take the form of a one-sentence anecdote about why they don’t care for that group, or a proverb that allusively suggests what their reasoning might be.