November 17, 2004

Writing Fable, part two

by Noah Wardrip-Fruin · , 12:05 am

In my previous post on writing Fable I outlined some of the work that the Lionhead writers (lead by James Leach) undertook while crafting the game’s story and the lines delivered by the more than 200 speaking characters in that story. But the story is only part of Fable. There’s also a sizable virtual world — and it not only provides a setting for the story, and a sandbox to play in when not concentrating on the story, but also another means of controlling some of the characters in the story. This means that the two types of writing that are discussed in these posts can both provide lines for the same speaker, and that in some cases the logic of the story and the logic of the world are connected via characters, widening the possibilities of Fable. More on this below.

First, however, let’s take a look at the writing of Fable‘s world.

The world

Albion, the world of Fable, contains villages populated by seventeen types of non-player characters (NPCs). As a hero takes actions in the world (whether story-related or not) NPC attitudes toward the hero change. Again, the result isn’t just communicated through graphics and AI — it also takes place on a linguistic level, and this (along with the size of the story) is what required the game to include more than 150,000 words of dialogue. (For reference, a two-hour, two-act play might run about 1/7 that length.) NPCs don’t just speak with the hero. They also make comments to one another (often about the hero, within earshot) and to themselves (just audibly).

In order to be able to respond appropriately to the hero, each NPC must have “in her/his head” a representation of what they know of the hero — measured in terms of alignment (morality) and renown (fame and power). An NPC might respond with fear to a hero with an evil alignment and high renown, but react with disdain and mockery to a hero that is equally evil but of low renown. A simplified way of representing this might look like the following, with attitude toward the player as a dot that moves as the NPC’s knowledge of the hero’s alignment and renown shifts.

EVIL   GOOD R
E
N
O
W
N
  Fear Awe Worship  
  Respect  
  Disdain   Friendly  
  None  
 

Each NPC might talk with the player for any number of reasons — what you look like, what you’ve just done, the fact that you’ve just talked to the NPC, etc. Over 100 of these were enumerated by the Fable team, including:

Being greeted
Being greeted again
Being followed
Wearing odd clothes
Carrying odd objects
Seeing an assault
Seeing a theft
Being assaulted
Seeing an assault
Being given a gift
Seeing a trespass
Being apologised to
Being insulted
Seeing murder
Seeing decapitation
Being courted
Seeing vandalism
Seeing kindness
Receiving kindness
Being cheated on (in marriage)

These reasons for speaking are then cross-referenced with the NPC’s internal representation of their attitude toward the player. The NPC then says something appropriate for this combination. For example:

TEXT_AI_DEED_REACT_CRIME_TRESPASS_NONE You’re trespassing.
TEXT_AI_DEED_REACT_CRIME_TRESPASS_RESPECT What brings you here?
TEXT_AI_DEED_REACT_CRIME_TRESPASS_AWE Your Lordship?
TEXT_AI_DEED_REACT_CRIME_TRESPASS_DISDAIN You shouldn’t be here!
TEXT_AI_DEED_REACT_CRIME_TRESPASS_FEAR Er, can I help you?
TEXT_AI_DEED_REACT_CRIME_TRESPASS_FRIENDLY Here, didnít you know this is a private place?
TEXT_AI_DEED_REACT_CRIME_TRESPASS_WORSHIP May I humbly ask what brings you here?
TEXT_AI_DEED_REACT_CRIME_TRESPASS_RIDICULOUS What do you want, fool?
TEXT_AI_DEED_REACT_CRIME_TRESPASS_OFFENSIVE Hey. You’re trespassing!
TEXT_AI_DEED_REACT_CRIME_TRESPASS_AGREEABLE You! Hello there!
TEXT_AI_DEED_REACT_CRIME_TRESPASS_UGLY You aren’t supposed to be here, you horror.
TEXT_AI_DEED_REACT_CRIME_TRESPASS_ATTRACTED Oh hel-lo there.
TEXT_AI_DEED_REACT_CRIME_TRESPASS_LOVE Wonderful to see you!

There are 17 different NPC groups, and James tells me that they all have different voices and wordings. NPC groups include males, females, guards, bandits, children, etc. Together with the many reasons for speaking and the many possible knowledge states about the player, this created the need for 14,000 lines of NPC dialogue for the world. And within this huge number of lines were nearly-impossible writing tasks, such as creating 200 different ways of saying hello that expressed different character types and degrees of awe. So here the team took advantage of the fact that they were using skilled voice actors. As James wrote to me:

In the end we actually explained to each voice actor how the tag indicates the attitude and let them ad lib whatever they wanted. This resulted in some extremely natural (not to say comic) lines, but we had to go through afterwards and transcribe each and every one for the localisation teams. And there were 60,000 words to check, some of which were drunken mumbles or, frankly, just noises!

This vast amount of amusing material creates, in some sense, another game within the game. As happens in many writing-rich environments (such as IF) players spend time exploring different interaction paths with the game and the NPCs in order to find different amusing dialogue. However, Fable is constructed in such a way that this sort of probing tends to annoy NPCs. As probing continues, an NPC’s attitude can move, for example, from Friendly to Disdain — changing the tenor of the lines delivered. Luckily, these derisive statements can be some of the more amusing.

It’s also possible to interact with NPCs in Fable non-verbally, and this is where much discussion of NPC interaction in the game has focused. For example, one can give gifts, pose, flirt, and woo. One can even marry NPCs — though what might seem a huge life event doesn’t have that many in-game consequences.

Fable: Don't tell me you forgot to get her one? Well I'm not bailing you out this time, son.

Fable: My advice to you, don't get tied down to one woman.

NPCs: in the story and in the world

Now, finally, to what may be the most interesting thing about the writing of Fable — the connections between the story writing and the writing for the world simulation. The main site of this is in characters who are part of the story. A number of these characters had their story dialogue recorded by a voice actor who also recorded dialogue for a class of NPCs. These story characters are classified as belonging to the appropriate NPC groups, and their story functions may also be represented by the world simulation in alternate ways. This allows Fable to seamlessly switch the characters between “story” and “world” control. As James puts it, “This has never before been implemented in a game and hugely adds to the richness.”

For example, a bridge may have a keeper who is part of the story — and as part of this tries to send the player on a quest before allowing use of the bridge. If the player steps out of what is covered by the story dialogue for the bridge keeper (say, by threatening him) the keeper will fall into his NPC dialogue. And if the player decides to kill the keeper instead of going on the quest, and succeeds, it doesn’t “screw up” the story. The player can then just use the bridge whenever it is desired. Of course, if anyone sees this, other NPCs may begin to trust the hero less and fear him more, which is appropriate. After all, it’s one of Fable‘s design goals for the game and story to be shaped by the moral choices of players.

This is the subversion of hoop-jumping that I mentioned in my previous post (and for which I took some flack). I think it’s an interesting design goal, even if I didn’t make it at all clear when I characterized it as “situating the story in a simulated world.” It’s not greater simulation, but a different use of simulation. To summarize with another quote from James:

Not only does this subvert the ponderous quest-after-quest nature of many RPGs but it gives the player the sense of power, freedom and lack of accountability which, as a Hero, the game is about. Of course, it’s not a violent short-cut to winning. There is always a bigger gatekeeper…

It strikes me (especially in light of our recent discussion of the fact that bigger isn’t better) that games could also benefit from an inversion of this. Rather than giving particular characters in the story the ability to also fall back on the behavior of a class of NPC, any member of certain NPC classes could be used to fulfill certain functions in a story/mission (by being “taken over” by the story logic). So when it’s time for the function to take place it’s not a matter of somehow getting the player and the appropriate character together, across however much game distance, but just of getting the player together with some member of one of the appropriate NPC classes (for which the necessary story dialogue has been recorded). Or a matter of choosing the best NPC to use for the function, if several are immediately available. Actually, given how not-radical this idea is (and how not-technically-difficult), I imagine it’s been done. I might be forgetting something obvious. Can people point me at examples?

Final thoughts

While this kind of process writeup could be done for any number of games (I’m sure you’re all dying to hear about how this year’s Madden was penned) I think Fable is a particularly interesting example because Lionhead clearly takes writing seriously and is trying to think about how to better employ what writers know in their development processes. After all, how many other major commercial games released this year had the writing of a short story as one of the early steps in its creation? Who else is employing enough writing and acting talent to send players on a search for verbal easter eggs located via NPC interaction (rather than on a search for mini-games, or whatever)? A game like Fable helps us imagine an alternate game industry, in which writers are first-class citizens.

And it’s clear from the example of Fable that working in this way is, in some senses, more difficult. It might be a thankless job to do the stereotypical game writing task — writing dialogue for characters defined by someone else, who are doing actions determined by someone else, in a level designed by someone else. But it’s an easier task than participating in the rounds of design, compromise, and revision that James Leach and his team went through when working more equally with game designers, AI developers, and others on the Fable team. Yet James’s is the kind of challenge to which I hope more writers will have the opportunity to rise.

In the meantime, game industry writers will keep doing the best they can — and perhaps, like Rob Swigart (who commented on the first post in this series), find outlets for innovative writing in other areas of the computational media field.

Fable: There's nothing left for you in Oakvale. And if you'd stayed, you'd be as dead as the rest of them.