May 18, 2003

Chopped Fresh, not Canned

by Andrew Stern · , 3:08 pm

In the comments of last week’s Expressive AI thread, Noah and Nicolas both make great points.

I think Noah is right that, for the foreseeable future anyway, lots and lots of human authoring will be required to make rich, quality digital fiction. Story generation AI is still in diapers.

But Nicolas is quick to point out that watching / reading chunks of human-author-created content – i.e., non-computer-generated, “canned” content – whether that be a paragraph of text, a snippet of video, a cutscene, what have you – makes the player / reader feel like the fiction is limited, too inflexible, too rigid, too prescripted. Doesn’t it? Fixed chunks of content make me feel like too much of the possibility and potential of the scenario have been sucked out of the experience, too often leaving me only a few table-scraps of variation, of agency. (If anyone feels differently about this, please disagree!)

My guess is that a way to progress towards richer, more deeply interactive fiction, will be, as usual, somewhere in between the ends of the spectrum – somewhere between large-ish chunks of hand-authored content and pure procedural generativity.

Human authors will still need to pre-write content, but we need to make the grain size smaller. Pieces of narrative content need to be no bigger than sentences, ideally sub-sentence phrases or words. We need to annotate these little pieces of content in some descriptive way, allowing us to write code that “knows” how to combine and recombine them into coherent, meaningful, varied, larger-sized chunks (e.g., sequences of narrative, dialog, action, etc). Once individual pieces of content are fine-grained enough, players / readers are finally free of that straight-jacketed feeling. It allows for the experience to vary and change on a moment-by-moment basis.

Except for cutscenes, most computer games already chop up their time-based content into little pieces, ready for easy sequencing – little one-second snippets of animations, sounds. Some of these pieces are even procedural – either fully generated by little algorithms, or little bits of canned content that get massaged, distorted and layered together by algorithms. This is why games are the most interactive things out there right now. But games have not expanded this technique beyond action-, strategy- or puzzle-oriented situations.

Furthermore – something I have strived to do in Petz, Babyz and Façade – once content is fine-grained enough, it becomes easy to make alternates, or as I call them, alts. Alts are variations on a piece of content, equally interchangeable. Alts are a way to achieve freshness and lifelikeness, to avoid roboticness. Very very important. In my work, every piece of content has at least 2, often 3, occasionally up to 6, in rare cases up to 10, alts. Note this is only feasible if the grain size is small.

At a certain point, of course, decreasing the grain size, and therefore relying more and more on algorithm, leads one directly to pure generativity itself. We suggest this in a recent paper about Façade:

“The system’s role is that of an editor, assembling a story from an array of story fragments, where each fragment was created by a human author, who presumably possessed some original intent on how the fragments could ultimately fit together. In this way, the degree of player agency – how “interactive” the story is – is proportional to the number of possible coherent orderings, which is proportional to the number of pieces of story content. Therefore the potential “goodness” of the story is still very much in the author’s hands, encoded in the quality of the content meaning of each piece on its own, and the narrative quality of the potential ordering of the pieces … However, once the grain size gets very small and the number of pieces gets very large, the line between editing (sequencing) content and writing (generating) content becomes blurry.”

Chris Crawford was saying basically the same thing way back in 1987 with his essay “Process Intensity“.

Authoring needs to shift from writing / animating large-ish chunks of content managed by small amounts of code … towards creating and annotating many more small pieces of content, managed by more complex, more expressive amounts of code.