November 17, 2004
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.
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.
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 again
Wearing odd clothes
Carrying odd objects
Seeing an assault
Seeing a theft
Seeing an assault
Being given a gift
Seeing a trespass
Being apologised to
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_RESPECT||What brings you here?|
|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.
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?
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.