I'd like to get some discussion going on procedural generation of quests and other narrative-type content. This is something which figures heavily into my own game plans, so I've got some self-interest in bringing it up here, but I'd love to get some more input on all this and share some ideas generally. I've also laid out a little bit of this in one of my
dev log entries, but I feel there's much more ground to cover.
Bluntly speaking, most of the quest content I've seen in games is pretty primitive, at least compared to other common narrative forms (books, movies, etc.). Even without procedural generation, designers are commonly guilty of subjecting players to endless FedEx quests, bounties, etc. The lame predictability of these simple tropes inhibits immersion and enjoyment. In the procedural space, it's understandable if ambitions have not tended to reach past this. After all, if it's hard to do by hand, it's harder still to automate, right? Perhaps that's fair; on the other hand, procedural generation has other attributes than being automated, and these may be of benefit.
As a particular example, procedural content generation systems have the benefit of being online; that is, you can keep generating new content as the player goes through the game. Nothing need be set in stone until it's been shown to the player. It's hard to relate this kind of freedom to anything experienced by a traditional designer. It's more like the position enjoyed by the Game Master of a pen-and-paper RPG, who may exercise constant, subtle discretion to the end of providing a (hopefully) satisfying player experience.
Every good Game Master knows how to ad lib; no matter how much you plan, the players will always surprise you. If the players start walking in the opposite direction from where the quest is "supposed" to be, a good GM will silently adapt the world around them so that it turns out they
do wind up where the action is. By adaptively serving up a narrative that feels like it was carefully planned that way from the beginning, the GM provides the players with a feeling that's greater than just being inhabitants of a fantasy setting -- they're the
heroes of the story, as it should be. The world conspires to draw them into their destiny. Nobody complains about this (unless it's too hammishly done, but you can get away with surprisingly much when you're willing to "cheat" behind the scenes); it's what we want and expect from a heroic tale.
In roguelike terms, the opposite of what we're talking about would be something like Dwarf Fortress. DF works incredibly hard to have a fully-operational fantasy world so that when you wander around in it, every little slice feels satisfying and real. But of course, most players will never see most of the content in that world. Most of the system is wasted, just to support the parts that you happen to wander through. True, it's just processor cycles, but the point is that if you can present a player experience without simulating the entire world, you can trim out a lot of fat. Moreover, you can gain a lot of control; DF can produce some entertaining narratives, but everything in the game is emergent and tied to the integrity of the world model. You'd be hard-pressed to shoehorn arbitrary structure into that world, in order to steer the player in a more focused direction.
So, can we conceive of a workable alternative model? Certainly, inroads are being made into online-adaptive PCG; a famous example being the "Director AI" in
Left 4 Dead which models player experience in order to orchestrate pacing and challenge. I believe this principle can be extended much further, into the dynamic, online generation of epic-scale narratives carrying complex plot structure.
As I envision it, the system starts with some ultimate goal, derived from some suitable plot archetype -- Defeat the Evil Menace, Rescue the Princess, Free Our People, Lift the Curse, Find the Maguffin, etc. As with any good Ultimate Goal, it is of crucial importance but somehow indefinitely deferrable -- there can always be more impediments and side quests thrown in the way of success. So, we start from that ultimate goal and work backwards, determining what complications exist and setting up subgoals for them. Each subgoal can involve just as much complexity as the original goal, so in this way we can build up complex structures of interdependent subquests.
Rather than letting it explode infinitely, we would of course tune the generation to our specifications, depending on just how hairy we want to let things get. And, importantly, the only fixed points in the graph are those that have already been exposed to the player in some way; the rest is open to being tweaked or rewritten at any time, for any reason we may see fit.
There are major challenges to this approach, of course. First you've got to compose a suitably-large set of plot "chunks" and provide ways for them to fit together variously enough to provide novelty. Then you need to expose these structures to the player in some sensible fashion, which could be tricky in such a generic system. I think that for a more static form, such as written fiction, this approach would fail horribly. But in a roguelike, the player's involvement in the action fills in for a lot of verbiage, and I think an appropriate balance may be struck. Even accomplishing this, there's still the task of ensuring that what's generated isn't utter hogwash -- there must be some kind of semantic constraints on how you plug Actors and Props into Evil Plots, or you're going to wind up with the Princess kidnapping the Dragon, or being sent on a quest to retrieve the fabled Rusty Dagger of Worthlessness.
So, that's my wall of text. Any takers? Anyone know of other significant work in this area, or care to chime in with their own ideas on how to accomplish what I'm talking about?