Skip to main content

Telling a story; Creating a Compelling Narrative.

Telling a story; Creating a Compelling Narrative.

In this blog I will talk about my own recent brush with story telling and go on to talk about how tools from creative wring can help you to better author the narrative in your games, whether they have a traditional linear narrative or a procedurally generated interactive narrative.

Narrative and structure in traditional fiction 

 

last week I started writing a story set in the world I'm developing for my game Vinland: 1936.

I hope the story will help me to flesh out my game world and develop my own expanded universe which will be a good place to set my games in the future.

After about a week of work, on and off I've progressed the story to outline stage. For each character thread I have half a dozen chapters which plot a course through the events of the story. Each thread is told from the perspective of a different character.


Actually I started writing as soon as I had my outline, but I've since gone back and deleted what I wrote. The problem was that the scenes just weren't compelling. They read like summaries of a boring office meeting or lecture.

Why? There simply wasn't any conflict, the characters didn't have clear goals, and when they did they achieved them too easily.

I spent some time talking to my old school friend, a Teacher of literature in the UK. He teaches creative writing and has written his own book, which I read last year called "Ape Flesh".

I told him I had actually looked at some online "How to..." posts about writing and they suggested using certain tools. Not computer apps, but formalist tools. Things like the "action-reaction cycle" and "Goal-Conflict-Outcome". I wanted to know if these were things that writers actually use.

Yes, it turns out they do.

Here's a pair of scenes from my Friend's scene map which he was generous enough to show me:



What is a scene map? Well it's what a novel is before it's written. It's an outline of each chapter, scene by scene.

You can see that scene number 69 is an "action" scene. This doesn't mean that it contains action, but that it is the POV character doing something (or trying to do something) while scene 70 is a "reaction" scene, i.e. the POV character reacting to what's happened.

The Action scene can be broken down in to three components:

It has a Goal; to get to the van. 
You need a goal or else your story becomes directionless. The characters float around not really knowing what they are doing (pretty common in bad novels).

It also has a Conflict; It's difficult because of darkness and mud. 
If the goal was too easy then it's not an interesting scene. Conflicts help to make the story interesting.

Finally it has an Outcome or a "disaster". They get separated.

Not every scene has to end in a disaster, but if it doesn't, and the character achieves their goal, there should be some bad side effect that negates their victory. If there's no disaster then the scene stalls and the book becomes difficult to read.

The reaction scene also has three components:

First is the Reaction; Eva is scared.
It's important to know how your characters are feeling, how they deal with stress and failure. This helps the reader to empathize with them. The reaction stage is a place you can do this without breaking up the flow of the story.

Next is the Dilemma; Is she lost?
Think of this part as the character's thought process. How do they go from failure to success, how do they move past their current obstacle. They have to identify the obstacle first and then come up with some possible choices.

Lastly is the Decision; Lewis finds her and they continue to the van.
The character has to choose a new goal. This will take you back to the start of the next Action scene.
The example here shows how the decision doesn't always have to come from the character. An outside source can force an unexpected result to the dilemma, for good or bad.

Here's one of my scenes written in the same way:


Now it is starting to sound like a real story!

Action/Reaction cycle in games

 

Anyway, this made me think about how this can be useful not just for novels but also for making games. This month's Blender Game Making Challenge is soon to start and the theme is "Tell a story".

So how do games tell a story?

Sometimes a game has a linear narrative, just like a novel. Other times it has a non-linear or interactive narrative. The tools I talked about above can be useful in any case.

If you google "Action-Reaction cycle in games" You will find a lot of articles on the subject with graphics like this:


Actually this structure is very naturally applied to games. It's how games work. Consider the following scene map:


To be complete we should consider the situation from the AI's (or GMs) perspective. it also has an action and reaction cycle which runs parallel to the player's. That's what's shown in the Action/Reaction/Processing/Decision cycle graphic above.

This is non-linear, interactive storytelling, a story that writes itself through the player's actions. So in fact we can't describe it as a linear map at all, we should use a tree:


This type of action-reaction cycle can be authored, you can design the game this way, or it can be procedurally generated. Because of the way the branching of decisions could easily become unmanageable (1>2>4>8>16>32>64>128 etc...) procedural generation is an option.

If you're going to author the story directly (by designing the levels and story by hand), you need to find a way to limit the branches of the story. This can easily make the game seem restrictive if it is done wrong, you might make it so there is only one dungeon accessible at any time for example. It would be better to make sure there is something in the dungeon that you need before you can realistically visit another one. Character levels and level appropriate monsters make a great organic method of channeling the player. In games without character levels you could use a MacGuffin.

Even if you're using Procedural generation, limiting narrative choices can be an important part of your job. Procedurally generated games can easily become boring if there is no clear narrative thread, if there's no goal or direction, or if the generated content is too random (see no-man's sky).
Again, character levels can help. Equipment and loot can be used as ongoing goals to drive the player onward. Creating prefabs or epic items can help to stop the game from being too random. This is why the procedural generation model works so well in roguelikes which have so many of these elements.

Conclusions

 

If you're making a game, whether a linear narrative like a point and click adventure, or a non-linear narrative like a roguelike it pays to think about the action-reaction cycle:
  • Think about character goals: Does the player have a clear idea of what they are supposed to be doing fro the start?
  • Think about conflict: Is the game too easy or too hard? This can make it boring.
  • Think about disaster: Does the player have something to lose, or can they just reload a recent save game? If you haven't explored the idea of permadeath, now's a good time to look it up. 
  • Think about Reaction: How does the game make the player think and feel? Do they react to it? Maybe you need to think about atmosphere. 
  • Think about dilemmas: Does the player have an meaningful decisions to make? Does what gear they use or what tactics they use make any difference to the game?
  • Think about decision: If they have decisions to make, are they too easy? Are there too few meaningful decisions?
I think that taking this approach could help you to better author your games so that they are compelling and interesting. A game which you can't put down.


Comments

Popular posts from this blog

Upstairs / Downstairs.

I've decided to make my prefabs multilevel. Later this should allow me to add pit traps and other great stuff. It also makes it easier to line up stairs so that you can exit them on the same co-ordinates where you entered them. The prefab editor is pretty much finished, it just needs some code for loading up prefabs from a saved dictionary, so that they can be checked or edited. The entries will need to be forwards compatible, so I'll be loading each tile and then translating the indexes to a new array, that way if I add extra indexes or extra info (like traps or puzzles) I'll be able to update existing prefabs to work with the new standard. Click for a video.

Advice needed on tilesets...

I need some advice on which is the best way to handle building the dungeon. Right now I'm using prefabs for my dungeon, they have a north south east and west section for each "room": The basic tileset. This has several advantages, and also several disadvantages. Firstly I can have curved rooms, I can have tunnels and other interesting shapes. The tilesets can look quite nice with a little work. On the other hand I can't easily get the navigation data before building the map and once the map has been built I can't make changes to the layout, like having active pit traps or believable secret doors. Although the rooms are interesting, they are quite repetitive, and it takes a lot of effort to make even a few different variations. Also rooms are constrained to one size. A newer version of the tileset with a lot of variant parts for making more interesting rooms. To create a tile set is a real headache too. Planning how to lay out the UVs, trying to cra

Video Diary 8

Things are moving along well, there's been a lot of progress on the action manager side of things. Actions have finally moved to the UI, so you can initiate actions by clicking the appropriate button. I've set up some dummy actions to show what happens visually when actions are taken, but the actual dice rolls and such are yet to be integrated. The UI objects are also being added, though some are non functional or empty at the moment. Click on the image to see this week's development video. Every time I add something big I also add about a dozen small things. Like the selection box visualization. Previously this was using render.drawline, and old fashioned Blender function which can be impossible to see at certain resolutions, or at certain frequencies. I replaced it with a function that adds planes of the right size and scale in the right location. I also made all characters a little bigger. I still need to do some work with vectors and final target locations t