Hi there super duper awesome profile viewer! My name is Tabitha. I am a 22 year old college graduate with a passion for one thing above all else: story-telling. No matter the media, story-telling is my love, and I think I'm pretty decent at it. Currently I'm working to finish editing my first completed novel, and I'm also the head designer and lead writer over at Machines in Motion, a startup indie game developer! We're currently creating an awesome procedurally generated horror game called "The Kingsport Cases"! It's awesome! Thanks for checking out my mediocre profile. Have a great day!

Report RSS Dissecting How Stories Are Told Procedurally Part 1: The Skeleton

Posted by on

Horror games are touchy things. You play them over and over again, showing the title off to your friends--each friend--until at least everyone has screamed once. But then the game becomes stale. You know the patrols of the monster, memorized where all the key items are, and understand that when you turn this corner a beast is going to assail you and then poof away as a hint to your character's insanity. At some point, the horror bleeds out--it isn't suspenseful anymore. What's the answer to this problem?

Randomization, or: procedural generation.

Now many games out there have randomized monster spawns, patrols, or frightening events, and they've all done a good job of it so far. But somehow, even those games lose their fear factor after a while; each time you play you lose stake in the setting, the creepy atmosphere, and above all: the story. Machines in Motion's recent development The Kingsport Cases is attempting to procedurally generate not just the maps and monsters, but the story too, thus making every playthrough uniquely frightening. In the next few developer blogs, I'm going to illustrate the concepts behind randomizing the story, and how we hope these ideas will keep players on their toes, no matter how many times they've played our game.

It all starts with the story. The story is what holds the setting, suspense, and atmosphere together. Let's look at the key elements story has in our game (and though the chart is very cute, please be assured our game is going to be rather frightening. There's a reason I'm not the artist):

The five key elements of story in our game are:

  1. Character Roles: Which characters are allowed and what they do.
  2. Conversation: Dynamic conversation which reveals plot and knowledge, and brings characters to life.
  3. Knowledge & Clues: Hints at the overall story and how to change the outcome.
  4. Recurrence: It's The Kingsport CaseS , not Case. More on this later.
  5. Plot: What is happening, and where is it happening?

The first four elements will get their own blog posts, but for now I want to talk about Plot, because not only is it the most simple aspect, it is the skeleton of the story for which all other pieces are the meat. The Plot is simple and will be the most static and scripted part of the story. Without this solid ground to stand on, nothing else can be accomplished; however, there will be several different plots and storylines in our final product.
So, when our game decides to pick a plot, these are the things it works through:

  • What is the plot? Cult-themed? Zombies? Rats in the Walls?
  • What enemies, character roles, and clues can be in this plotline?
    • There is a LARGE list of each of these, and the game chooses which ones can be in the plot, then from there randomly selects from the smaller list.
  • What is the state of Dread? How much time does the player have to discover and stop the problem?
  • What locale will the game be in? Forest? Manor? Lakeside Villa?
  • Places clues, characters, and randomly generates map.

There it is, in its simplest form. While the Plot is the least randomized aspect of our game, procedurally generated maps, character roles, and the like can twist, morph, and complicate even the simplest plot a great deal. This aspect is merely the ground for a great game to stand on, and we hope you'll check it out when it's finished! Thank you for reading this post! Part 2 will be coming soon!

As always, for more information on us and our game check out our website:
Kingsportcases.blogspot.com

Post comment Comments
AlceX
AlceX - - 14 comments

Very interesting indeed, I've always thought of procedural story making machines. It looked so hard though, making sure that every possibility is of good quality and creating elements that mix and combine with each other in ways that make sense. I'd definitely like to see where this goes.

Reply Good karma Bad karma+2 votes
TabKey Author
TabKey - - 17 comments

Thank you for your comment! The idea behind procedurally generated writing is not an easy one, that's for sure, but we're working day and night to make it a reality. If it works (And we're confident it will), it will be pretty cool, we think!

Reply Good karma+1 vote
Pabo
Pabo - - 179 comments

I agree with AlceX, it's a very interesting approach, one I've been thinking about as well some months ago. My (theoretical) approach was more based on dynamic systems and their interaction, and less on randomization, but there was always the problem of the artificial feeling (or just utter nonsense) of the language.
Breaking it down into these five categories however is a very good idea, I've never really thought about it that way (and to be frank, it seems like a much more elegant solution than one giant convoluted system :P). I'm interested in how these categories work together - looking forward to part 2!

Reply Good karma Bad karma+2 votes
TabKey Author
TabKey - - 17 comments

Thanks Pabo! :) We brainstormed bunches of ways to make the system work before finding a decent solution! It requires a lot of writing and careful game design, but the payoff will be great (or so we hope). I'm glad you mentioned dynamic systems, because really, that's what our conversation nodes are all about. Thank you again for your comment! I hope part 2 is worth checking back for!

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: