Stats and Narrator Viewpoint

coglogo2.pngI’ve written a few times before about handling stats in ChoiceScript games, and making particular choices available. But in writing my own WIP, I also wanted to make sure that the story felt distinctly different if the player gave the protagonist a different personality — not just in terms of which choices they were able to make (or make successfully), but also in terms of the inner narrative.

With that in mind, I set for myself the following (silly) goal: when I ran randomtest, after the very first segment of play, none of the narrative output should be repeated across more than 4000 of the randomized playthroughs. That means that

  • many plot beats are reached only on 1/3 playthroughs (or fewer)
  • those plot beats that do occur every playthrough are narrated in at least three different ways, depending on the player’s stats and relationships

This speaks more to the fiction than to the mechanics, but the aim was to make the moment-to-moment texture of the story feel malleable, not just the plot structure.

This was also a good time to do more with the extreme ends of my choice spectrum: as discussed previously, I wanted to give some acknowledgement to players who managed to work their way into the top (or bottom) 10-15% of particular stat ranges, because that demonstrated a commitment to playing a particular way and should probably be understood as representing more deliberate agency than other approaches. So a lot of my alternate narration is designed to capture those high-end or low-end variations in how people view the world.

As I’ve often found before, it often enriches an interactive fiction to approach that story with some mechanical disciplines in mind.

Continue reading

Mailbag: High-Agency Narrative Systems

Today’s mailbag entry (at the request of the submitter, anonymized and edited a little) gets into the question of how to create salience and quality-based narratives and other similar games, given that typically one has to build one’s own.

What I keep getting drawn toward on a personal level is your work–and other people’s work too–on procedural narrative generation. I have enough knowledge of coding to understand states and modeling systems and when to move from one to another on a conceptual level, but at this point I could not make one in any language or engine. I think this is something I would like to learn to do more of...

Obviously I’ll need to learn a language from the ground up. That’s fine. I suppose I’m asking what would be most helpful to focus on–not just in terms of C# or Ruby or Python–but other skills as well… most of my questions/interests are about event generation, procedural chains of causality, etc.

Further discussion with the asker indicated they are talking about the kind of quality-based and salience-based narrative systems I wrote about in the article Beyond Branching; this RockPaperShotgun column about Alcyone also gets into some detail about the state of play in this space.

Systems like this can achieve a combination of player freedom and agency that is hard to reach in CYOA or any other node-based system (I would include ChoiceScript here): there are often dozens of viable choices available.

Meanwhile, because you’re not tied to a specific simulation concept (like the standard parser IF world model), you can adjust the qualities of your QBN to the particular needs of this work. Track your protagonist’s health, her interest in opera, her sense of humor, her tolerance for pain; track her relationships with each of a dozen friends, or a dozen aspects of her relationship with one friend.

On the other hand, the tooling and the design abstractions in this space are not nearly as advanced as they are for parser IF or CYOA/hypertext/stats-based IF, so if you want to work with it, you probably have to build your own.

That’s a topic that could take a number of articles, and there isn’t as much writing in this space to point to as in the parser space.

Continue reading

Mailbag: Writing for Versu

g_ending_2@craigtimpany writesYou’ve covered Versu’s architecture, but I’m curious what that was like to write for… In particular I’ve been wondering how very non linear tools affect a writer’s flow.

For those just joining, Craig is asking about Versu, a system focused on agent-driven narrative. Versu and the games made with it are no longer available, but there’s information available about the system, including several papers at the Versu website, and past posts of mine here about the conversation system and about what it was like to convert Galatea to the Versu format.

During the first portion of its development, Versu content was driven through Praxis, the language that specified social practices and truths about the world state. Praxis is very powerful and allows the user extremely detailed control over what is true about the world, and what all the agents want; and the baseline implementation of conversational practices, among others, were written in Praxis. However, writing extensive dialogue in Praxis was essentially wrapping conversational elements in code — a high-friction way to compose, and one that discouraged revision. To address that, we developed a DSL called Prompter. I am not going to re-describe here everything about how that worked, since the attached papers go into detail.

But the core point to know is that, within Prompter, one wrote scenes. Each scene could have some opening text; some parameters about what was allowed to happen in that scene (e.g., “no one dies in this scene, but Veronius is allowed to have sex”); a body of dialogue that can be spoken only in that scene and nowhere else; and then one or more ways that the scene can end.

Using that information, the system would follow its own rules about how conversation and social actions could chain into one another, improvising a particular performance around the scene parameters the writer had set on the page.

Continue reading

Loose, Tight, Flat, and Bumpy Stats in ChoiceScript Games

coglogo2Previously, I wrote about setting, checking, and gating content in stat-heavy choice-based games such as ChoiceScript content.

In that post, I didn’t get into the question of stat distribution: over the course of the game, how possible is it to reach particular stat distributions? Can you reach the top and bottom of each personality stat (raise it to 95+, or lower it to 5-)? Can you do this easily/immediately, or only with persistent (or even perfect) choice selection? If you run a bunch of random plays and look at what levels the random player can reach for a given stat, is the distribution reasonably bell-curve-like, or is it more flat or multi-modal?

If it is easy to reach the ends of the stat spectrum, I’ll refer to this as having a loose stat system: plenty of buffs or nerfs are floating around the system and it’s easy to get to one end or another. A player doesn’t necessarily have to play with purpose in order to achieve a particular character build. The problem here is that the resulting experience may feel fairly low-agency, because there are so many ways to get a particular stat profile that it seems like the player’s particular choice blend doesn’t matter all that much.

The extreme case of a loose stat spectrum is on where being at the ends of the spectrum isn’t even that unusual: by the end of the game, the distribution looks nearly flat, with little or no bump at the middle. This is a very unresponsive stat system, and it’s not going to reward the player at all for playing one personality stat consistently.

The opposite is a tight stat system: buffs and nerfs occur less frequently or in smaller increments, and it takes time to reach very high or very low levels. The problem here is that the game may feel quite difficult, especially if there are special endings or consequences associated with the extreme ends of the spectrum; it may be that most players never manage to reach ideal outcomes without relying on wiki guides to help them map their choices. This is especially frustrating if there is one “main” outcome that is boring/losing and all the special/winning endings require near-perfect execution.

Continue reading

Mailbag: Teaching Spatial Storytelling

A Twitter follower asked me for resources to teach students to pair space and story in a meaningful way, and they were already familiar with my article Plot-Shaped Level Design.

Screen Shot 2017-04-21 at 1.36.22 PMTo state what will be extremely obvious to some of my readers, but probably new to others: this is classic craft territory for parser IF, where maps are generally developed in tandem with plot and puzzles.

The primacy of the map, in this tradition, is why Inform had a map index much earlier in its development than it had a scene index: charting the space, together with its doors and access points, was understood as more critical (and also easier to do programmatically) than diagramming a CYOA-style node structure.

Classic text adventures rarely experimented with treating space as continuous rather than room-based, even though the possibility of doing so cropped up in discussion at least as early as 1991, with another discussion in 1996. Some of that may have had to do with technical challenges, genre convention, and the relative difficulty of expressing quantitative information in prose. But I suspect another major factor was simply that the room-based approach to map design offered a lot of leverage in controlling which parts of the story the player saw at a time. Games such as Ether that allow for very free movement through a highly connected volume have to rely on alternative methods to control narrative presentation, or else have story content that can safely be encountered in any order.

In classic parser IF design, the companion of the map was the puzzle dependency chart. Puzzle dependency charts showed which barriers had to be crossed before which others; maps represented how this manifested in physical space.

In most parser IF, not all of the map is available at once, and the player has to solve puzzles to open particular areas, whether by unlocking a door, getting past a guard, throwing light on a dark room, etc.: many of the classic IF puzzles reward the player with access to new spaces, though there are many different ways of setting up the challenge initially.

That progression of spatial access was typically what let the author control the difficulty curve (only give the players puzzles that they’ve proven they’re ready for) and the plot reveals (put the more important clues deeper in the map). Often, reaching a particular location, or reaching it under particular circumstances, or interacting with an object there, would serve to trigger dramatic scenes marking a major advancement in the story.

Then there’s the question of pacing and content density. How much story material belongs in each room? How much real space does a given room represent, and how does that connect with narrative presentation? Adam Cadre’s review of Lost New York gets into detail about some of these topics, and the problem of representational space vs. literally simulating a large area.

So with all that background explanation, here are a few other resources beside the links already given, but if anyone reading wants to recommend others, please feel free to comment as well. Continue reading

Small Plotting Trick for Choice-of Work

Choice of Games pieces also very often involve multiple romantic or career options; and in my WIP, I found that there was kind of a risk of making all the romances be variants of “…and then you ride into the sunset with person X.” From a storytelling point of view, though, I don’t find that very satisfying, because it makes those characters interchangeable and makes it harder for them to have distinctive arcs in the body of the text.

Recently I tried an exercise that helped with this. It is really pretty trivial but I shared it with a few people who found it useful, so now I will share it more widely. The exercise:

Continue reading