World Models Rendered in Text

Last month I wrote a bit about text generation and generated narratives overall. This month, I’ve been looking more at parser games — games that typically are distinguished by (among other things) having an expressive (if not very discoverable) mode of input along with a complex world model.

My own first parser IF projects were very interested in that complexity. I liked the sensation of control that came from manipulating a detailed imaginary world, and the richness of describing it. And part of the promise of a complex world model (though not always realized in practice) was the idea that it might let players come up with their own solutions to problems, solutions that weren’t explicitly anticipated by the author.

It might seem like these are two extremes of the IF world: parser games are sometimes seen as niche and old-school, so much so that when I ran June’s London IF Meetup focused on Inform, we had some participants asking if I would start the session by introducing what parser IF is.

Meanwhile, generative text is sometimes not interactive at all. It is used for explorations that may seem high-concept, or else like they’re mostly of technical interest, in that they push on the boundaries of current text-related technology. (See also Andrew Plotkin’s project using machine learning to generate imaginary IF titles. Yes, as an intfiction poster suggested, that’s something you could also do with an older Markov implementation, but that particular exercise was an exercise in applying tech to this goal.)

There’s a tighter alignment between these types of project than might initially appear. Bruno Dias writes about using generative prose over on Sub-Q magazine. And Liza Daly has written about what a world model can do to make generated prose better, more coherent or more compelling.

Continue reading

Narrative Design for Indies (Edwin McRae)

narrativedesig.jpgNarrative Design for Indies: Getting Started. This is a brief Kindle book published in October of last year.

Edwin McRae is a writer and narrative designer who specializes in indie projects, and has written some blog tutorials and guidance for ink, as well. His book is designed to help aspiring indies figure out what they might need in the area of story, whether they need to hire a writer, and what expectations they should have going into that process.

McRae’s approach is very much conscious of resource constraints. Voiceover is expensive: what can you do without it? What methods of delivering story are affordable and easy to sneak into your story? How can you manifest important story information through gameplay and flavor text that you needed to create anyway?

Continue reading

Venom, Beeswax, Fallen 落葉 Leaves

Having come up with an idiosyncratic terminology (Venom, Beeswax, Mushroom, Salt and Egg) for talking about some aesthetic aspects of procedural literature that matter to me, I now find myself reverting to the same terminology even when talking about other people’s work.

Fallen 落葉 Leaves is a procedurally generated poetry cycle in this year’s IF Comp. It draws on sample texts from Confucian poetry, and combines them and other elements densely, producing couplets with a great deal of strangeness per line. In my terms, it’s therefore heavily applying the principles of Venom (particularity, color, surprise) and Beeswax (varied, allusive, culturally rich source material).

The effect is indeed a bit like reading the translation of something whose metaphors, idioms, and cultural references are outside one’s personal ken:

800px-Shi_Jing.jpg

Some phrases sampled from the Shījīng (詩經),
the Confucian Book of Songs, the Classic of Poetry,
as translated by Arthur Waley. — author’s note for Fallen 落葉 Leaves

To start, you select an adverb from a menu and a verb from another menu; then a poem is generated in couplets, with your adverb and verb plugged into one of the couplets. You may repeat this loop as many times as you like, your adverb and verb changing the contents of the cycle overtly and perhaps also in more subtle ways. The author suggests that a hundred or more moves might be appropriate, and that one might want to pull out specific couplets. Looking at the source code reveals that there are many variables being tracked, perhaps iteratively across repeated builds of the poem.

Because the phrases are so allusive, it is not always easy to extract even a notional meaning from them. More often, I found that I could come up with something but that it was a general rather than a precise interpretation:

You sniff oil — writing home about our walks on the terrace —
Your sailing moon, your arrival — sing my pulse.

The first line is easy enough to imagine: the correspondent stopping mid-letter to breathe in the scent of a perfumed oil, possibly. “Your sailing moon, your arrival” perhaps refer to the time when the lover is to set out and rejoin the poet; “sing my pulse” indicates, presumably, that the poet’s life and heartbeat are in some way responsive to the lover’s movements, or else described by them.

Taken as a whole, though, across multiple sonnets, the experience becomes suddenly Mushroomy: overtly repetitive and generative, not concealing how much it is the result of mechanical operation. The grammar that generates sonnets seems to hit the same major points in each couplet, with allusions to erotic time the lovers spent together in the middle, and then a disagreement (with the player’s adverb/verb choice) toward the end, and the lover departing. (Sometimes on a “well-dressed horse,” which I thought was particularly good.)

Continue reading

Casual Procgen Text Tools

Last Thursday I was at at the PCG-meets-autotesting unconference at Falmouth, which organized into a bunch of work-groups to talk through ideas related to the conference theme. This was a really fun time, and I am grateful to the organizers and my fellow guests for making it so intriguing.

Our morning work-group started with a suggestion I had: what if there were a casual text-generation tool like Tracery, but that provided a similar level of help in assembling corpora for leaf-level node expansion? What would help new users learn about selecting and acquiring a corpus? What would help them refine to the point where they had something they were happy with using? (And for that matter, are there applications of this that we could see being useful to expert users as well? What could such a tool offer that is currently difficult to do?)

This idea sprang from some of my own discovery that I spend a lot of my own procgen development time simply on selecting and revising corpora. What will productively add to the feel and experience of a particular work, and what should be excluded? How small or large do the corpora need to be? Is there behavior that I can’t enforce at the grammar level and therefore have to implement through the nature of the corpus itself? (I talk a bit about those concerns during my PROCJAM talk (video, slides), especially under the Beeswax category.)

We had a great conversation with Gabriella Barros, Mike Cook, Adam Summerville, and Michael Mateas. The discussion ranged to cover a number of additional possibilities, some of which went considerably beyond the initial “naive user” brief here.

Continue reading

Mailbag: Studying IF and Narrative

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.

*

Hi! 

[Identifying information removed.] I’m in the formulation phases of an honors project, for which I am working to create and advocate for interactive fiction as a literary medium. In doing so I’ve been trying to explore interactive fiction and engage with creators, and I’ve repeatedly had people refer me to you! I’ve been spending time reading your blog and your IF work, and I was wondering if you would answering a few questions (or, at least, directing me to more reading material). 

• First, I am a bit curious about how you would define Interactive Fiction. When beginning reading about it, I began with my preformed definition of the medium that has since been a bit challenged. Initially, I had been using the term to describe any fiction that is interactive, i.e. video games and visual novels, as well as traditional text-centric fictions. Would you say that Interactive Fiction, at least in regards to how it is broadly discussed, is more of a straightforwardly defined medium consisting of text-based fictions, multilinear or otherwise? Where is the line between video game/visual novel/interactive fiction?  Nick Montfort, in Twisty Little Passages, suggests that a work isn’t truly interactive fiction if it does not utilize a parser and have an interactive world. What do you think about this? (I know that this is probably a question without a very quick/easy or objective answer, but I would still love to hear your thoughts).

I intentionally avoid trying to specify such definitions.

In recent years, we’ve seen a lot of community upheaval around what is or is not “real” interactive fiction, which somewhat mirrors the broader arguments about what is or is not a “real” game. These are not bloodless battles: they’re pitched fights about who gets access to resources, coverage, and respect. In that context, I’ve become much more cautious about trying to provide exact labeling instructions for IF.

I’d also say that it’s common to see choice-based and hypertext work included in lists of interactive fiction and submitted to IF comps these days, so it seems that at least a significant part of the community is inclined to include those.

Continue reading

Bowls of Oatmeal and Text Generation

In a comment on my recent post on text generation, Dryman wrote

I was wondering if you’d been following some of the recent games criticism discussing where procedural content has ultimately failed to be very interesting or engaging (in games such as Spore or No Man’s Sky), and might have some general thoughts about how procedurally generated text content can potentially be made to resonate more strongly than was the case for the largely graphical reskins in those games. Much of the discussion has focused on what Kate Compton has called the problem of “procedural oatmeal” – i.e. it is very easy to pour 10,000 bowls of plain oatmeal, with each oat being in a different position and each bowl essentially unique, but it is very hard to make these differences *matter* to an audience, and be perceived as truly different in any memorable or thought-provoking way.

(“Some of the recent games criticism” also includes this article from Mike Cook on changing how we talk about procedural generation.)

In response to which, I partly want to point to Bruno Dias’ recent Roguelike Celebration talk, which addresses exactly this point: that procedural generation is not a way to get large amounts of content from small amounts of input, and that procedural generation requires an appropriate design approach.

But to speak for myself: I think the key question in oatmeal-avoidance is whether the generation is connected to anything mechanical. I might be able to generate haiku, or funny food names, or imaginary constellations, or names of funny English-sounding towns, but all that generation is purely decorative unless it is tightly correlated with gameplay — and the player will soon realize that it is decorative and start looking past it.

But what kind of mechanical connection is required? It would be a lot to ask that every procedurally generated variant needed to correspond to different gameplay affordances — that procgen is only interesting if having 10K output states means 10K different verbs or verb clusters or play strategies that could be unlocked.

That’s a very demanding design problem. It’s not completely inconceivable to have elements that work together to generate fresh mechanics: Dominion‘s longevity comes from the fact that the cards play off one another in really interesting ways and make each other useful (or not useful) quite quickly: Peddler might be pointless in a game without +Action and +Buy cards, but in a game with a good action/buy engine and, say, Bishop, it might become a massive source of victory points. There are entire blogs devoted to pointing out productive Dominion card combos and strategies. But that’s a challenge in mechanics design, and if every application of procgen text had to be that mechanically rich, we wouldn’t need it very often.

But there are other applications as well, happily. In The Mary Jane of Tomorrow I wanted pretty much everything the robot said to serve as a reminder of her current training state: it acts as both status information and as a perceivable consequence of what the player has done with her. Show her a book about cowgirls, and she’ll start speaking in a funny accent. Teach her about botany, and suddenly she’ll get really specific about the types of apple she can bake in an apple pie.

Procgen methods are great for this kind of low-levellayered consequence: representing how the player has changed the world state persistently in a small way, rather than massively in a way that forked the narrative.

Continue reading