Experienced Points

Experienced Points
Procedural Stories

Shamus Young | 1 Feb 2013 16:00
Experienced Points - RSS 2.0

If you throw the phrase "procedural content" out in conversation with your fellow gamers they'll probably say, "Oh, you mean like Minecraft?" That's what people think procedural content is - random hills and caves. Ten years ago the response would have been, "Oh, you mean like Diablo II?", because back then everyone thought it meant random mazes.

But of course "procedural content" can mean anything. Anytime you take some form of game content out of the hands of human artists and give it to an algorithm or a random number generator, you're using procedural content. I wrote about the procedural stuff in FUEL a few years ago, and that game still represents the most graphically impressive example of procedural content to date. (At least, in gaming. I'm sure there are a lot of people working on simulations and special effects, but I don't really cross paths with them.) Minecraft, while simpler in design and far less graphically ambitious, is obviously the superstar of procedural games right now.

I'm sometimes seen as an authority in the field. This is not because I've accomplished anything amazing. (I do stuff like this and this.) It's just that there are so few people in this field that if you're doing it, you're one of the experts. For my money, Miguel Cepero is the most interesting and prolific of the procedural hobby-programmers.

As a result of my status as a faux-expert, someone asked me recently if there was any chance of someone developing procedural stories.

Well. That's a hell of a question.

The answer, of course, is "it depends." Mostly it depends on what you mean by "story." If you just want an auto-generated story where NPC [name] from [town] asks the player to go to [place] and retrieve [item], then rejoice! We have that already. The Torchlight games create these Mad Lib style fetch quests. They get the job done as far as giving you a reason to fetch or kill something, but I don't think anyone really gets excited about them. If we're looking to make a real story, a satisfying story, a story that's worth discussing with another human being, then we have a serious challenge on our hands.

One of the basic ideas of computer programming is that you can't write a program to do something that you don't know how to do yourself. In fact, you have to understand the process well enough to explain it to someone else. That's what programming is. You're explaining to the computer how to do something. If you met someone who didn't understand stories or story-writing at all, how would you explain it to them in precise language?

Okay, all you need to do is write a good story.

What do you mean by "good"?

Oh, you know. Interesting and stuff.

What makes a story "interesting"?"

Uh. Gosh. I dunno. Surprising? Exciting?

How do you add those qualities to stories?

Geeze. I don't know! You're the writer, YOU figure it out!

The obvious answer would be to use templates. Think of Scooby-Doo. We begin with a pre-written story, and just fiddle with a few cosmetic variables to make "more" stories, which are just the same damn story again and again but wearing different spooky masks. That might work in a practical sense. People might like being able to replay a game where little side details are rearranged. But it's kind of cheating because this isn't really a procedural story. It's still the same story, for all the same reasons that Team Fortress 2 didn't magically become a different game because Valve added new hats.

There are lots of people out there who can write good, interesting stories that are surprising and exciting, but how many can pass the secret along like this? It's like trying to teach someone how to get an idea. I'm both a programmer and a novelist, and I don't think I could produce a program that was capable of generating a useful story without resorting to templates.

But is this something we want to do? In the context of a videogame, reliance on fixed narratives is seen as this unfortunate thing. We're always complaining about lack of choice in games and asking for more freedom. Why can't I team up with Darth Malak? Why do I have to keep the Enclave from turning on the Water Purifier? Why can't I take Clementine and ditch the rest of these incompetent losers? Why do I have to join the Grey Wardens? Why can't I just murder Reaver? Why do I have to work for The Illusive Man? If we somehow had software that could perform creative work like this, would it make sense to have it generate fixed stories for players to step through?

I think rather than procedural stories, we ought to be looking for ways to make emergent ones. Instead of a static story about a hero who does something heroic, it might be better to simply generate some starting parameters and drop the player into a sandbox style world. When the player enters town they discover that Anna has a crush on Bob. Carl is insanely jealous of Anna and would kill her if he saw her with another man. Dave is business partners with Anna and needs her help to succeed. Ellen hates Dave but likes Anna. Fred is looking for someone to steal Carl's prized sword. And so on. The player is then free to act or not act as they see fit. Their version of the town will be different from someone else's, and the decisions they make will form a unique story.

No, this won't lead to a proper three-act story with rising action, a climax, and resolution. It will instead be a soap opera of actions and reactions that won't end until the player abandons the game. The Sims series has this sort of thing, where players often wrangle characters into situations where stories can occur. This would simply be another evolutionary step of that idea, placing the player into the shoes of a specific character and giving the other characters distinct goals.

Would it work? Would it be fun? It's hard to tell. The only way to know for sure is for someone to build a prototype and see if they have the next Minecraft or the next Spore.

But don't ask me. I'm still busy playing Minecraft.

Shamus Young's real ambition is to write a program that can churn out a weekly column on time. Check out his blog, these books or maybe this software for more of his stuff.

Comments on