Home Blog The challenges of writing non-quest narratives

The challenges of writing non-quest narratives

Beyond Skyrim logo

Linton Ineson

Writing and Voice Acting Director for Cyrodiil.

These are the challenges we faced in trying to populate a region the size of a large DLC pack with meaningful narrative content that embraced player agency and featured polished presentation on a budget of $0.00.

Challenge #1: Choice and consequence in side quests without ballooning ‘dev budget’

Choice and consequence is an important element of compelling RPG quest design, yet side quests are generally designed to be ‘cheap’ content in terms of development overhead (few unique assets, little extravagant gameplay scripting, etc), and ‘true’ quest branching can often result in dev overhead ballooning exponentially.

To mitigate this, we essentially relied on (and leaned heavily upon) a few game design tricks:

  1. Back-loaded quest branches
  2. Multiple paths to non-specific objectives
  3. Emergent/cheap gameplay reactivity (minor dialogue changes etc) in lieu of quest branches
  4. Offloading reactivity onto cheap/easily-expansible systems

Ultimately, we ended up using a combination of these tricks in almost every quest we designed. Very rarely did we develop a quest with branching that occurs at the beginning or the middle due to dev overhead concerns. Many quests use almost all of these, in fact. One example is the quest Ugly Love, which features all four of these solutions in action – the quest branches twice, yet the first branch, mid-way through the quest, functions only to abruptly end it if the ‘incorrect’ solution is selected (the opening of the quest functions much like a typical murder mystery).

The quest ends with the quest-giver experiencing a moment of emotional weakness (that, as a writer, is in hindsight too convenient) before essentially having the player choose an ending via their dialogue choices, which plays out in a short scripted scene. The result? The quest-giver (a mercenary named Dumrag gro-Morgg) either slaughters his own wife and the involved nobleman in cold blood in a fit of rage, before verbally condemning himself and running away into the wilderness, kills only the nobleman before leaving, resolving to “leave this den of iniquity”, or… he does nothing, and leaves the manor to start afresh.

Yet the quest itself is completed as soon as the final scripted sequence is over. Adding additional story content after the narrative climax would be out of scope. So… how do we actually provide the player with the feeling that their choice had meaningful consequences?

The majority of the sense of consequence comes from the fourth solution listed above, one which I wish we had leveraged more often throughout development. I have a fair bit to say on this subject, so stay with me.

Open world games are about unpredictability as much as anything else. Open worlds that are predictable – or, at least, entirely predictable – are not compelling to explore, nor are they compelling to adventure in. Having the consequences of your actions be constrained to the quest within which those choices were made (or its resultant quests, in the case of a quest chain) is good, but it seems a somewhat myopic approach to design. This is one thing that I found very compelling about the quest design in The Witcher (yes, the first one) – it was unafraid to have choices in side quests spill out into the main quest, often in dramatic ways.

So, how did we go about killing both of those birds (consequence payoff and open-world unpredictability) with one stone?

We leveraged a random encounter system.

For those unfamiliar, the original release of Skyrim features a sort of random encounter system whereby hidden random encounter ‘quests’ are fired when the player enters a region designated as a random encounter spawn point. While many similar mod projects choose to forego similar systems due to the technical headache that is often incurred in setting them up (not to mention the content that must be created for it to function), it was our belief that such an easily-extensible system was too great a boon to forego.

And, so, we had one of our more technically proficient scripters (Cedric Poiron/Kestatwala) work on setting up a Cyrodiil-specific version of this system, with some in-house modifications. The result is a system that (much like the original Bethesda implementation) runs on a series of stacked nodes, each of which contains quests that have their own individual conditions. Whenever the player approaches an encounter zone, the Story Manager churns through these quests at random until it finds one for which the conditions are true and runs it. This ‘quest’ then essentially spawns the relevant NPCs into the world on markers and, where appropriate, runs scripted scenes/plays dialogue/etc.

These wilderness encounters allow us to, relatively cheaply, bring back characters whose story arcs seemingly finished within side quests. Further, we can use them to offer the relevant character as a companion or otherwise attach gameplay function to them in a way that we previously couldn’t. While quests often require relatively extensive scripting and testing, a wilderness encounter generally only requires that dialogue be written and voiced – the scripting involved is generally minimal.

Additionally, by returning characters using wilderness encounters, we’re able to inject another layer of unpredictability and (for lack of a better term) believability into each arc, by giving the player the sense that their actions will have far-reaching consequences that may only be felt hours or even days after the relevant choice was made, potentially miles away from the location where they made it. In the case of Ugly Love, the mercenary Dumrag appears either as a beleaguered man re-learning the mercenary trade now that his wife (and battle-partner) has run away from him in disgust, leading to his availability as a companion for the player, or, should the quest have taken an even darker turn, a suicidal man begging random passerby (including the player) to slaughter him in cold blood.

As an added bonus, if the player refuses to kill him (or simply ignores him), his encounter quest is not conditioned out of the system – he can reappear indefinitely in his self-loathing bid for suicide.

This solution was used sadly sparingly in much of our existing content, however, as it was often developed before we had finalised our plans for the structure of the wilderness encounter system. In the future, I and the team intend to leverage this much more extensively to provide far-reaching and surprising consequences for player action and inaction.

Challenge #2: Inserting storytelling and quest-like content into non-quest content

Dungeons and open world regions deserve and should receive storytelling and narrative as a matter of course, whether or not they play host to a quest or even a single NPC. Yet how do you do that without potentially irritating a player who’s trying to dungeon crawl with overlong and intrusive exposition dumps?

The answer we eventually came up with was to blur the lines between quest and dungeon slightly – at least at some points – but to do so in a non-intrusive way. There are a few ways of doing this, and we settled on a three-pronged line of attack for the vast majority of dungeon content:

  1. Environmental storytelling – using the arrangement of props and level design to tell a story in itself
  2. In-game texts such as notes and books
  3. ‘Ambient’ dialogue

These are all fairly standard, but we also decided that we would elevate some select dungeons and turn them into much more narrative-heavy experiences – essentially ambient quests. There are two such dungeons in Beyond Skyrim: Bruma – Rielle and Frostfire Glade. The former features a lich who experiences an unexpected (and unwanted) resurrection while the player crawls through the dungeon. This is told through ambient dialogue that does not interrupt gameplay (fun fact – the way we accomplished this is to teleport an invisible marker to the player’s feet and have it speak on behalf of the lich), before the lich’s resurrection completes (conveniently) when the player enters his chamber. At this point we actually briefly break the rule of ensuring the storytelling is ambient-only to grant the player the opportunity to speak with the lich before the final boss fight begins – though we were careful to ensure that the player is able to simply back out of dialogue and start swinging their weapon of choice at the lich’s necrotic body, should they be so inclined.

While the contrivance of having a boss essentially taunt the player over the fantasy equivalent of an intercom is not necessarily a storytelling device that I think it’s wise to overuse, I do think it proves useful in instances such as this to use similar methods of adding characterisation to a dungeon’s end boss. Where there was previously an ‘Ayleid Lich’, there is now ‘Surilaron’. Where once there was a large health bar to wail away at guarding a treasure trove of epic loot, there is now narrative context and significance for the player’s actions – all without a single quest objective ever being added to the player’s journal, and without ever (significantly) interrupting gameplay flow.

For Frostfire Glade, we chose another route. We added a talking door that gates access to the final boss ‘room’ – one which speaks riddles in rhyming verse, no less – which cryptically hints that the player must use Frost Salts, an item replete within the dungeon, to unseal the door and progress. After entering the final boss chamber, a mysterious figure requests that the player slay the enemy – the Glade Guardian – before the dungeon is engulfed by a blizzard and a quest begins encouraging the player to explore the dungeon in search of prayer books that might be used to dispel the storm.

In both cases, any narrative is optional (the player is free to simply bash in the brains of the boss in the first instance, and in the second, they are free to simply back out and leave after slaying the final boss), yet the quest-like content we added to them allows the player’s actions to feel more meaningful.