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

Mailbag: The Unique Selling Points of Parser IF

@mattlaschneider writes: I’d love to see a series of posts geared towards people who are interested in learning to write parser IF in a post-Twine era… I could be totally off base, but I do think that parser IF has a lot to offer people who would normally otherwise be attracted to Twine.

We then had a long Twitter-thread argument about whether it was even appropriate to try to recruit people to writing parser IF, especially because I think many people who come to IF because of Twine have motives or needs for which parser IF is a terrible fit.

So let’s start with the reasons not to write parser IF, and we can come back to the question of how to write it if somehow none of my persuasions work on you.

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

Mailbag: Mysteries in CYOA

I sometimes print letters I’ve received and what I wrote in response. This is usually for one of two reasons: I’d like to pass on what the writer had to say, or the writer asked a question that requires a long detailed answer, and I think other people might benefit from seeing that as well.

I am experimenting with doing this in a more formal way, with a regular mailbag post. Reprinted letters may be edited for length; if so, I will note that editing has occurred. I do not do this without the permission of the letter-writer, so if you write to me and would be open to seeing your email appear as a blog post, feel free to mention that fact. On the other hand, I do not guarantee to print every letter that grants permission.


[Negotiation redacted, but this letter exchange began with the writer asking how much of a question they could ask before my response started to get into paid consulting territory. Which was considerate! In practice it didn’t seem like we needed to go there yet, so this is just a casual conversation so far.]

Briefly, then, the project is called [redacted] and is an interactive noir in the technological/interface vein of 80 DAYS, SORCERY!, and FIRST DRAFT. I’m using “ink” for the base nonlinear narrative scripting, and will be custom-implementing an interface in Unity (which I’m very experienced with, so won’t need to talk about that.) Broadly, [a previous game in the same world] is about sowing chaos in a city during a coup, and [redacted] is about the ensuing power vacuum, fallout, and human cost, in the general direction of THE THIRD MAN and CHINATOWN. 

That’s the premise, here’s the problem: I want to make something that is current in terms of IF design, and after MAKE IT GOOD, to a lesser extent AISLE/HER STORY, and recent releases (I’m behind on my IFComps), how exactly does one design an interactive mystery narrative? I don’t want to go Keyser Soze, it would be not-trivial-but-understood to just write a mystery novel with interactive stage business, but I don’t think either approach would be responsible to the player/reader. The aim is to make a solid CYOA-style mystery, and there is a very real problem with that format – any investigation is necessarily telegraphed by the options given to the player.

I can think of several approaches, but none are particularly satisfying. Additionally, there’s the problem of presentation/retention: Jon Ingold suggests that the ‘standard’ pace of an ink story should be 1-200 words between choices. I enjoy working within constraints, but the basic problem of a mystery piece with suggested actions complicates this particular guideline.

On top of all this, although I’m an enthusiastic hobbyist and pro-am IF theorist/creator, I’ve primarily used Inform 7 to date, which is entirely different than a multiple-choice approach, so I had also hoped to glean some insight about your work and study of CYOA and hyperlink/Twine narrative in recent years.

Continue reading