September 13, 2004

Writing Fable, part one

by Noah Wardrip-Fruin · , 1:58 am

Fable boxFable is one of this year’s most anticipated games — and with good reason. The creative team behind it has been responsible for a string of innovative games (e.g., Black and White, Dungeon Keeper) and this time they’ve set themselves a massive challenge. Fable, which will be released shortly, aims to re-imagine the adventure game so that it doesn’t center on hoop-jumping — it aims to situate a traditional hero’s journey within a simulated world. While some early reviews bemoan the fact that elements of Fable had to be scaled back, it’s clear that the game is still remarkably ambitious. As the player’s character ages, and as the world changes around him (“him” because plans for female heros were among those cut), he can choose at almost any time to explore and adventure in the world, pick up the plot of the hero’s journey, or try to use the actions available in the simulated world to route around what would be the next necessary step in a hoop-jumping adventure game. And, what’s more, this world isn’t just a graphical world. It’s also a linguistic one. It’s one in which the work of writers — James Leach chief among them — is central.

You can read quite a bit online about the work of Peter Molyneux and Fable‘s game design (e.g., in The New York Times). You can read quite a bit about the work of the AI team and the simulated world and characters (e.g., early reviews from places like IGN). I will concentrate, in these posts, on the writing of Fable.

I’ve been in occasional correspondence with James Leach since the panel that Andrew and I organized for SIGGRAPH 2002. But it was in preparation for my talk this summer on “Computer Games and the Future of Fiction” (which had to measure up to talks in the same series by the likes of David Macaulay and John Perry Barlow) that we got into some in-depth discussion of Fable.

James introduced his writing for the game’s story and world separately — and I’ll follow his lead here, starting (in this post) with the story. But, as you’ll see by the time I’m done, one of the impressive things about Fable is the blending that can take place between the story and world writing.

Fable: Been enjoying all the attention, have you?

Fable: Most of Bowerstone is talking about it...

The story

The work on Fable‘s story began with, of all things, writing a traditional short story — one driven by the “classic” hero’s journey elements. As James says, “The reluctant hero, the call to arms, the mentor all appear in the traditional way.” The initial short story set up one prototypical version of events, broken into scenes. Then these scenes were broken down further, with the dialogue pulled out and bullets for any important physical actions (those for which new animation would be required).

Here’s a sample from the arena entry scene:

• A GUARD bangs on the door with his fist.


GUARD ONE
Open up! There’s a new sandmeat delivery.

• The gate opens, you both walk in.
• You are escorted by two guards.


GUARD TWO
Oh look. A hero. I’m so excited.

GUARD ONE
Welcome to the Arena. Where the Heroes fight. And die.

GUARD TWO
Have you been nominated? Good. A couple of things you need to know. One, don’t attack the heroes fighting alongside you. Two, only kills earn you money. Any bleeding heart compassion and you walk out broke.

GUARD ONE
Yeah. Like in a hundred pieces.

• He opens gate at the end of Hall of Champions.


GUARD TWO
And this will be your palace for the duration of your stay.

• Guard opens cell door and you step in.


GUARD ONE
Good luck, sandmeat.

As you can see, by this stage there was already a focus, found in the dialogue, on the elements important to the Fable gameplay. At the next stage this became even more pronounced — as things were passed on to the animators and game scripters (as in scripting language, not movie script). What came back to the writers, after this, was a database of lines of dialogue aimed entirely at gameplay issues. It was, let’s say, without much care for language. Here’s the same scene as it came back to the writers:

TEXT_QST_005_GUARD_ENTRY_CHECK_10
GUARD
Welcome to Arena. Heroes fight here etc..

TEXT_QST_005_GUARD_ENTRY_CHECK_20
GUARD
You need to be nominated. And Guild Seal won’t work.

TEXT_QST_005_GUARD_ENTRY_CHECK_FAIL
GUARD
Not nominated yet!

TEXT_QST_005_GUARD_ENTRY_CHECK_PASS_10
GUARD
Been nominated now. Well done.

TEXT_QST_005_GUARD_ENTRY_CHECK_PASS_20
GUARD
Guard will show you in.

TEXT_QST_005_GUARD_ENTRY_CHECK_PASS_30
GUARD
You could die in here.

TEXT_QST_005_GUARD_ENTRY_READY
GUARD
Go in? Yes/No.

The job of the writers, then, was to weave back into these lines (which were tied into the game’s logic) some semblance of the texture of language from the original story. The writers had to, as much as possible, work within the structure created by the scripters: only using lines with existing numbers and tags, leaving questions and responses in the places indicated, and so on. As James told me, “New lines can be added to explain something further or enrich the atmosphere, but as a default we try to work within the lines we’re given.”

The lines that are sequential end with a multiple of ten (_10, _20, etc). When lines needed to be added, the old BASIC technique was used — adding up to nine lines between numbered lines. Also, lines that could be chosen between randomly were numbered in this latter way. Random selection between lines was used to try to keep story events that can happen multiple times from triggering the same line each time. For example:

TEXT_SHOPKEEPER_ROBBED_01
SHOPKEEPER (ANGRY)
Stop! Thief!

TEXT_SHOPKEEPER_ROBBED_02
SHOPKEEPER (ANGRY)
Hey! You stole that!

TEXT_SHOPKEEPER_ROBBED_03
SHOPKEEPER (ANGRY)
Come back with that! That’s my stock!

The writers, in addition to writing dialogue, wrote directions to the animation engine — emotion or attitude tags, which were placed next to the narrator. Common tags indicate emotions such as fear, sadness, happiness, pride, annoyance, and anger. (The shopkeeper’s angry when speaking all of the lines above.) These determine body language and other choices made by the animation engine, and slowly decay over about ten seconds unless refreshed or replaced by another tag.

This, then, is the revised dialogue for the arena entry scene, rewritten by the writers and with emotion tags added:

TEXT_QST_005_GUARD_ENTRY_CHECK_10
GUARD (ATTITUDE_PRIDE)
Welcome to the Arena. This is where Heroes battle to become legends.

TEXT_QST_005_GUARD_ENTRY_CHECK_20
GUARD
You need to be nominated before you are allowed entry. And note that your Guild Seal won’t work in here.

TEXT_QST_005_GUARD_ENTRY_CHECK_FAIL
GUARD (ATTITUDE_ANNOYANCE)
You can’t come in without a nomination card. You think we just let anyone in?

TEXT_QST_005_GUARD_ENTRY_CHECK_PASS_10
GUARD
Ah, a nomination card. You must have done something pretty special to earn this.

TEXT_QST_005_GUARD_ENTRY_CHECK_PASS_20
GUARD
The Guard on the other side of the door will show you in.

TEXT_QST_005_GUARD_ENTRY_CHECK_PASS_30
GUARD (ATTITUDE_SADNESS)
Take a good breath before you enter. You might not see the outside world again.

TEXT_QST_005_GUARD_ENTRY_READY
GUARD
You ready to go in now?

As James put it, “It’s worth noting that the dialogue in the writer’s version two of the script bears fairly little resemblance to the original scene.” While the original story shaped the game, the dictates of the gameplay created the context for all the final language that is included in Fable.

This process was carried out, and then checked, and then voice acted, for the more than 200 speaking characters in Fable‘s story. In order to generate dialogue for this many characters, and keep them differentiated in his mind, James took on a new writing practice. When defining each character, he gave that character a set of “Driving Reasons” (or DRs) — which also turned out to be quite useful as directions for the voice actors, as well. Here are a couple examples of these:

The Innkeeper (a minor character)
DR1 — He’s drunk all the time.
DR2 — He hates his wife.
DR3 — He’ll say anything to get others in a conversation to avoid speaking to her.

The female Hero Briar Rose (a more important character)
DR1 — She’s aware of how physically attractive she is.
DR2 — She’s reached the exalted Hero status and is very proud.
DR3 — She’s disdainful of everyone else.
DR4 — She’s very insecure about Heroes tougher than she is.

Now, with all these characters, it was probably inevitable that there would be a mistake. Each line is tagged with the narrator’s name, and for some types of narrators (Guards, Bandits) there are quite a few, differentiated only by number. Unfortunately, as James admits, “we did fall foul of forgetting how many Guards or Bandits there were and we ended up having two BANDIT_8s sounding identical as they erroneously shared a name, despite being separate characters.” Luckily, BANDIT_8 and the character that should have been given the narrator tag BANDIT_9 are about two hours apart in gameplay terms, so it wasn’t a show-stopper.

That’s about what I have to say about the writing for Fable‘s story (nothing about the plot specifics is to be said before the official release). But I’ll be posting more soon, with information about writing for the world and more.

Update: on to part 2.

Fable: For a while he could control himself...

Fable: We heard the howling and feared the worst...

Fable: A hero of your stature deserves the glory of fighting in the Arena.