Wednesday, October 11, 2006

Generative Stories = Pain

Like many of my compadres, I have a lot of interest in generative storytelling. Storytelling which isn't entirely preprogrammed and can adapt to the player.

There are a lot of problems everyone else has mentioned, but these problems all have workarounds. Dialog is a pain? Use symbolic languages. Dynamic characters a pain? Painstakingly program them on top of some mythical middleware. (Mythical Middleware... Mythical Middleware... I want to start a company named Mythical Middleware...)

But there's one problem that people don't really address. When I finally noticed it, I went "whoa!". (That's a Wayne "whoa!" not a Bill & Ted "whoa!")

All my attempts - all everyone's attempts - have been based on putting characters in a world.

Well, durr, right? Not exactly.

Take a look. That ever-so-popular story-game about divorce? Took place in one house. (Wasn't even really a story: just a vignette.) Crawford's storytron engine? You build a world, and release people to inhabit it. Even story games you've never heard of, like Jaruu Tenk or any recent text adventure game... they all are based around locations.

Characters are made to inhabit specific locations. Sometimes, which locations they inhabit changes based on a schedule or even on occasional special events, but the fact remains that they are thought of as part of the local world.

Sometimes you get characters who aren't. For example, in Knights of the Old Republic and Planescape: Torment there are party members who follow you around. But they are considered wholly separate from the location. Occasionally, they have a triggered comment based on who else is in your party or whether you've just walked into some place the writers thought they should have an opinion on. It certainly isn't generative: it's painstakingly scripted. Taking hundreds of hours.

That's the problem, you see.

A story is really about people in places. There are occasionally vignettes which take place in one place, but even close-to-home stories like My Big Fat Greek Wedding have dozens of sets which any or all of the characters visit at the drop of someone's big fat Greek hat.

Characters who stay in one place or aren't affected by places aren't actually in a story. They're backdrops. Occasionally, one has a little vignette where they ask you to save their grandpa or give you a golden moose head in exchange for painting their house. The main characters - the ones that are actually in the story - have every movement and every moment painfully scripted out.

This is because we're taking our ideas from movies and books. We're making characters like we would see in movies and books. Police Commish spends most of his time in the police station, save for when he's out looking at a crime scene. Leggy Dame shows up dozens of places, and for each place what she says, wears, and thinks is carefully (and literally) spelled out by the author.

So we do the same thing.

Perhaps we should think about transfering in some LARP design instead.

In a LARP, each character acts in character regardless of what they have, where they are, or who they're with. If you play the hard-boiled private eye, you interact with EVERY possible person, location, and widget like a private eye. "It was dark and quiet in the hotel lobby. Too quiet. That's how I knew before they came out: Ninja." "The gun had recently been fired... but by whom? Who could accurately fire an invisible laser?" "The magician was out of magic, so I stepped over and broke his staff like a toothpick. The glint in my eye said I would be happy to do the same to his neck."

Yeah, yeah. "But Craig, nobody can program a character to act in character everywhere. If we could, you wouldn't be writing this essay."


But you can.

So long as you're careful about characters.

Sure, you can't program a private eye to act in character everywhere. Well, you can, but not affordably. But how about a malfunctioning robot? How about a feral elf-child? How about an overloading psychic? A disdainful, inhuman demigod? How about a dog?

Or, if you prefer, simply don't use any dialog. The noir detective can't wax eloquent about the way his client's dress shimmers, but he can have dress-related thought bubbles while muttering incoherently in a smoky voice. Think the Sims, except where the conversations actually have some bearing on the local color.

Of course, this doesn't solve the issue of having them actually be part of a story. But it's a new angle. Don't think of characters in terms of where they can be found. And don't think of characters as separate from where they are. Think of characters as travelling from location to location, and interacting meaningfully with every location, every event, every person. Or, at least, the interesting ones.

That's what a story IS.

You can even think of the world as not existing - any given location only begins to exist once it is needed for the story to progress. It is generated pseudorandomly within the story's restrictions...

After all, that's what writers do. This idea of a predesigned world? Piss-poor for storytelling.

When you think of it like that, you can come up with a plot-fragment array and start gluing things together, leave a lot to the player's imagination... suddenly, things seem a whole lot more plausible.

At least, they do to me. Comments?


Patrick Dugan said...

This is a pretty good manifesto for the "emergent" approach to interactive storytelling, as opposed to the generative approach. Basically the way I describe it is the emergent approach outsources the algorithm of compiling and structuring the plot from various fragments to the user, resulting in a system that is much easier to program, and perhaps more conducive to interaction.

I think generating locations psuedo-randomly rather than pre-designed ones is a good idea for later generations of systems, for the first generation I'd say focusing on the character's character in relation to other characters, rather than places and props, is a good place to start.

For instance, a game that focuses on the social dynamics of a small group in a tightly constrained environment might work as a casual drama game.

Craig Perko said...

That's precisely what you DON'T want to do. Every character is a very complex organism. Every location, item, or event is a very SIMPLE organism.

Corvus said...

My reply got a little long, so I relocated it to my blog (link).

Patrick Dugan said...

Are you suggesting a difference from the coding paradigmn you presented back in June? For instance, instead of coding how people form and have relationships, are you suggesting scripting for specific things that is polymorphic to each character? I probably sound like an idiot, but elucidate please.

Craig Perko said...

They're not compatible theories, but I see no reason why the old algorithm is now INVALID. I haven't gone far enough along this line of thought to have a working theory as to application...