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?