Survey of Storylets-based Design

Sketching a Map of the Storylets Design Space” is a paper by Max Kreminski prepared for ICIDS 2018, an academic survey of the storylet design space. I wanted to point my blog readers towards it, as it covers a lot of interesting territory in the quality-based narrative/salience-based narrative area (and in fact references my post on structures beyond branching narrative). Those of you interested in ways of structuring IF with more procedural complexity than a branching narrative may find it interesting.

The paper offers an overview of major storylet-based tools and works from both indie and academic experiments new and old, including StoryAssembler, StoryNexus, The King of Chicago, Reigns, and Ice-bound Compendium. It does not discuss Varytale, but then Varytale has been unavailable to play with for some years now, so there may not have been an accessible version for Kreminiski to look at since beginning their research.

Kreminski identifies four dimensions for looking at storylet-based systems: how preconditions for storylets are defined; whether individual storylets can ever be repeated; what sort of content is contained within a storylet (linear text? replacement grammars? branching content?); and finally, the “content selection architecture”, or how storylets are chosen as eligible for display.

Screen Shot 2018-08-29 at 11.10.31 AM.png

Kreminski also built a storylet system and a small prototype game of their own, a piece called Starfreighter. (It’s available on itch, if you want to look at it yourself.) The scenario is a fairly standard space-trading story, in which you accumulate crew and cargo and travel through a procedurally generated graph of solar systems. There are several cool presentational aspects here, including the way that you can select place names in your storylet and get extra information and see the location highlighted on the map. The actual content is not very deeply developed — there’s enough here that you can travel from port to port, do some trading, and have your hull damaged repeatedly by space debris, but it doesn’t dramatically develop very much more than that.

The structurally interesting bit about Starfreighter as a storylet system is that it looks not just for specific qualities (like Fallen London‘s “if your Connected: the Duchess is greater than 10”) but for resources that fit particular qualities, and subsequently binds those identified resources to the storylet for purposes of producing the narration. So for instance you might have a storylet “sell [cargo] on [planet]”, which would become available if you had any cargo (say, a crate of exotic matter) and were on any planet (say, Uinox), so that the storylet text would then be realized as “sell crate of exotic matter on Uinox.”

Continue reading

Mailbag: AI Research on Dialogue and Story Generation

I’m curious: do you follow much research that happens in stories and dialog these days? In the world of machine learning research, there’s much less in dialog and stories than other areas (e.g. image generation/recognition or translation), but once in a while, you come across some interesting work, e.g. Hierarchical Neural Story Generation (by some folks in Facebook AI).

For some years now I’ve followed work coming out of the UCSC Expressive Intelligence Studio; work done at Georgia Tech around crowdsourced narrative generation; game industry applications introduced or covered at the GDC AI Summit (though it is rarer to see extensive story-generation work here). I’ve also served on the program committees for ICCC and ICIDS and a few FDG workshops; and am an associate editor on IEEE Transactions on Games focused on interactive storytelling applications. Here (1, 2, 3) is my multi-part post covering the book Interactive Digital Narrative in detail.

That’s not to say I see (or could see) everything that’s happening. I tend to focus on things that look most ready to be used in games, entertainment, or chatbot applications — especially those that are designed to support a partially human-authored experience. I also divide my available “research” time between academic work and hands on experiments in areas that interest me.

So with that perspective in mind:

  • I’m not attempting a comprehensive literature review here! That would be huge. This coverage cherrypicks items
  • I will go pretty lightly on the technical detail since the typical readership of this blog may not be that interested, but I’ll try to provide summary and example information that explains why a given item is interesting in my opinion, and then link back to the original research for people who want the deeper dive
  • I’ll actually start by summarizing a bit the paper the questioner linked
  • Even with cherrypicking, there is a lot to say here and I am breaking it out over multiple posts

That Initial Paper

For other readers: the linked article in this question is about using a large dataset pulled from Reddit’s WritingPrompts board and a machine learning model that draws on multiple techniques (convolutional seq2seq, gated self-attention). After training, the system is able to take short prompts and create a paragraph or so of story that relates to the prompt. Several of the sample output sections are quite cool:

Screen Shot 2018-08-25 at 1.41.40 PM.png

But they are generating surface text rather than plot, and the evidence suggests that they would not be able to produce a coherent long-term plot. Just within this dialogue section, we’re talking about a tablet-virus-monster object, and we’ve got a couple of random scientist characters.

Continue reading

Next-Generation Design Tools for Narrative Content

This Friday I had the pleasure of speaking to the AAAI workshop Knowledge Extraction from Games, which focused on gathering information from games and putting that information to use: for instance, studying level design in a platformer in order to find standard rules about platformer design or to propose alternative level designs that the creators might not have considered.

I was invited to talk about this topic from a designer’s perspective, looking particularly at how these techniques could be valuably applied to narrative games. And the problem, as I outlined it, was as follows:

Games that aspire to offer a lot of narrative agency often face the following challenge: they need a number of distinctive, hand-authored units of content (whether those are dialogue lines for Character Engine, storylets in a quality-based narrative system, or choice nodes in a ChoiceScript game) where each individual unit may both affect and be affected by the underlying world state.

Continue reading

DINE

Screen Shot 2017-04-23 at 9.26.07 PM.png

DINE is, as I posted earlier, an unusual interactive fiction system that takes typed input but does not handle it through a parser. Instead, it uses text classification to find a response that is most coherent with the player’s input — a measure that depends heavily on linguistic similarity.

To author content for DINE, the author writes example player inputs (such as “I picked up the photograph”) followed by the response text that the author has in mind. Both the sample input and the actual output are considered when the system chooses a proper response. The system also applies a penalty to any output text the player has already seen.

There’s one final affordance: next to each paragraph of output is a “Huh?” button. Click it to reject the response you were given, and the system will search for the next best fit. It’s not guaranteed to work more with the story than whatever you read last, though.

DINE is not a particularly ideal tool for the kind of experience we associate with parser IF. If you do >INVENTORY twice in a row, you might well get a totally different response the second time — and one that is not especially coherent with the input. Indeed, there’s no way to explicitly author world state, other than as “pages” for the player to land on.

Different DINE pieces handle this in different ways. Olivia Connolly’s “A Quiet Street” offers quite long pages of story between interaction points, and sometimes sets up obvious single tasks for the player to try next, as for instance here, where the game directly tells me what to do:

Screen Shot 2017-04-23 at 10.30.21 PM.png

At its best — for instance, when the circumstances of the narrative made one particular action feel compelling, but didn’t explicitly spell out what that action was — this could achieve a pleasing level of fluidity, as here, where I know that there are strangers approaching the house but that my mother hasn’t seen them yet:

Screen Shot 2017-04-23 at 10.39.00 PM.png

Continue reading

Those Trojan Girls (Mark Bernstein)

Screen Shot 2016-11-30 at 1.09.05 AM.png

Those Trojan Girls is a hypertext novel by Mark Bernstein, written in Storyspace. Storyspace is Bernstein’s project, and the blurb for Those Trojan Girls describes how the tool might add to the possibilities of the medium:

Those Trojan Girls is also the first published hypertext to use the new Storyspace 3 facilities for stretchtext and sculptural hypertext – ideas explored in the research literature for more than a decade but that remain little known outside the research community.

In practice, stretchtext and sculptural hypertext refer to ideas that already exist in interactive fiction. As discussed in an interview with Bernstein here, “sculptural hypertext” refers to having pieces of text that appear based not on links but on other variable conditions, similar to quality-based narrative. Stretchtext refers to replacing a section of text with a longer, more detailed section, which is one of several things Twine texts do fairly routinely with text replacement macros. So “little known outside the research community” might be a slight exaggeration.

But the point, I think, is that the piece is attempting to introduce some of these features and methods to a community of practice — academic/literary hypertext — that has historically not paid terribly much attention to the IF community of practice, despite very significant overlap in many of the technological affordances of their tools.

Those Trojan Girls is definitely unlike game-like hypertexts, and avoids the kinds of agency found therein. I’m not sure I’d say there’s much of what I typically think of as “readerly” agency either. It’s hard, for instance, to decide on a theme, character, plot point or other element you want to pursue and track that train through the narrative (in contrast with Arcadia, which is designed for exactly that type of reading, or if, which thematically encourages completionist rigor).

There are a few formatting challenges familiar from Twine and not exactly solved here. Some blue links expand in place, while others lead through to a new passage of text — a frequent complaint about Twine works as well — and in Storyspace (or at least in this implementation) one can’t predict which is which without either clicking through or referring to the map, which appears in the lefthand side of the screen and moves as you read:

Screen Shot 2016-11-30 at 1.24.02 AM.png

Continue reading

Nothing for Dinner (Nicolas Szilas et al, IDtension)

IDtension_conversation_menu.png

“Nothing for Dinner” is an interactive drama released last fall by Nicolas Szilas and collaborators, using a tool called IDtension. Szilas works out of the TECFA Lab at the University of Geneva. If you read my writeup on the book Interactive Digital Narrative, you’ll have seen a mention of Szilas’ article there. Though it would have been out of place in the book overview, I wanted to come back and look more closely at what “Nothing for Dinner” accomplishes.

The premise of the story is that you’re a young man whose father has suffered a stroke that affects his behavior and memory. You need to get something ready for dinner, but your father keeps getting in the way, and other events spontaneously happen — a school friend coming over to get back a textbook she left at your house, your sister’s DVD player breaking, a phone call from your mother with extra chores — to add blocks to your progress.

The system is clearly quite dynamic: I played three times, and the sequence of events was very different each time, with some blockers appearing only in one of the playthroughs. Also, the conversation menus are dynamically generated to let you try various approaches to any of the currently-active problems, or to give emotional feedback to the other characters about what they’ve just done.

IDtension_grandma.png

If you try to cook dinner alone, your father resentfully complains that you never want to do anything with him; if you try to involve him, he may get annoyed and refuse to help you; if you let him cook by himself, he’ll break things and make a mess. And whenever your father gets upset, your grandmother comes over to chide you for not looking after him.

It’s a very effective mechanism for making me rapidly resent my entire family for offloading all the emotional and practical labor onto me: like a time management game, but with more passive-aggressive commentary, and less opportunity to get anything done.

Continue reading