A possible approach to procedural storytelling: cheating

Shamus Young is back with his column called Experienced Points, and this time he’s talking about procedural stories.

Here, have an awesome procedurally generated city built for the suspended project called "Subversion" by Introversion software.
Here, have an awesome procedurally generated city built for the suspended project called “Subversion” by Introversion software.

Oh boy.

Systematizing storytelling in its purest form may be one of the hardest challenges that we as an industry will face. Sure, there are story templates that we could use but that would take a tremendous amount of skill and work for it to avoid constant repetition and generic characters. How many times can you play the hero archetype without getting bored?

Fundamentally, I agree with everything Shamus says in that column, though I’d wish he went into specifics and not just talk about storytelling in general. So, that’s exactly what I’ve set out to do. I’m not going to argue that my way of doing things is the best, but I think it might be interesting to go down this path.

My view on procedural storytelling is that it should mostly function as a DM guiding the players through a campaign. The lesson I seem to have assimilated from countless stories is that as a DM, you should prepare a believable world instead of a great storyline, because whether you like it or not, the players are the ones in control of the story and they are going to go wherever the hell they want to go. A DM should build a world with lots of opportunities for interesting interactions and then let the players loose like children in a candy store. Then, after a good session, the DM goes home and thinks about what happened, processes all the information so far and then transforms the world with consequences for the player’s actions.

A recently screwed over character suddenly is revealed to be a prince and a world war breaks loose. A previously fatally wounded character becomes a servant of the devil to survive the injuries. A romantic plot is hatched by the flirty conversation with the shopkeeper. A vindictive tyrant begins to offer compensation for information over who was the one to steal the castle’s food supply. The one little orphan bleeding out down the street that the players ignored was sent there by a trickster god and the players are going to suffer for it, because that’s the worst thing you could do to a trickster god: to ignore it.

Those are all the little and not so little details a DM can come up with depending on the player’s actions.

Basically, what all of this implies is that the game should be a sandbox created procedurally. The world created needs characters, motives, relationships and all sorts of fun stuff to be systematized. The world needs to be set up with interesting choices and situations and once the players go down a certain path, if that path wasn’t going to be interesting enough, then cheat a little and change or create relationships that weren’t visible to the player up until now. That’s the key to procedural storytelling, in my opinion, because any procedural engine can’t be expected to create interesting paths for every player without cheating. Yeah, turns out that peasant you pushed over was just that, a peasant. Yeah, you ransacked a town but nobody of note cares about it or has even heard of it. Yeah, nothing that you did caused anything of importance to happen … awesome.

Not every orphan needs to be a trap, not every peasant needs to turn out to be a prince, but at least one big consequence is needed per chapter or session for the players to be interested in the story they are telling.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s