During a talk at GDC 2017, Guerrilla Games Gameplay Programmer Leszek Szczepański gave a nice rundown on how the developer created non-linear narrative quests for Horizon: Zero Dawn.

We learn that Guerrilla performed extensive research on how quests work in RPG games, which is quite understandable considering that they never developed a RPG before.

The team needed a system that allowed them to create and manage quests, and they knew that such a system would have far reaching implications on what kind of quests they would be able to implement, and what kind of stories they would be able to tell.

Guerrilla's research brought them to rank the quest systems of previous RPGs on a scale based on how flexible they are and how strictly they define what a quest is. On the extremes of that scale, they had "relaxed" systems and "strict" systems.

Examples of relaxed quests systems are the Might & Magic and Wizardry series, alongside a lot of games created in the nineties. They don't have a centralized system managing quest progression, with most logic managed by scripts.

This system does not place any restriction, but it comes with a high costs in terms of complexity.

On the other hand, strict quest systems, that have a single centralized way to manage all quests, that have a pre-defined and rigid structure, and are built from pre-defined blocks. While this makes the developers' job simpler, it severely limits what kinds of quests can be created. An example of this system is Sacred.

Nowadays, it's rare to see games using either of the extremes, as there is a demand to balance intricate storytelling with significant amounts of content.

The system Guerrilla needed had four specific requirements, that you can read below:

Below you can see how the requirements placed the system used in Horizon Zero Dawn on the stricter side of the scale.

That said, the team noticed that most games created quests out of a sequence of steps that need to be followed. On the other hand, Guerrilla wanted to present the player with a "probability space" instead of a linear script. In order to achieve that, they implemented a model called "wall of sticky notes."

Each sticky note represents a plot point or event, while the lines represent cause and effect that link them together. This is a basic example of how it works (the steps are not representative of Horizon, so don't worry about spoilers).

In this kind of system, a single event does not need to generate just one outcome, but it can generate multiple, creating a sort of web of cause and effect.  The player can decide to be aggressive, experiencing step A, but that closes the possibility to experience step C, as the player is set on step B. On the other hand, it's possible to take a diplomatic approach initially, experiencing step C, and then still decide to revert to a violent approach, moving from C to B.

This results in multiple ways to complete the quests, making multiple personal narratives possible. All of these possibilities are created simply by defining the cause and effect relationships between scenes.

In practice, each step represents a scene, and each scene has a "verb" that defines what the player can do in order to progress. That verb also needs an object. For example, the player can "obtain" something, "kill" a monster and more. A value can also be added to the object, prompting the player, for instance, to kill a certain number of enemies.

According to Szczepański, the system led to success in some areas, but didn't work as well in others.

The graph structured allowed the team to create non-linear quests without having to resort to tricks or workarounds. On top of that, having a limited set of verbs allowed to create common quests easily, but since there still was a wide variety of verbs, the system did not hinder the creation of more sophisticated missions.

A relevant issue affecting the system is the "time travel problem." An example of that are bandit camps, and their interaction with the story. The team managed to work around the issue, but they're still looking for a proper solution.

Thanks to the system, the team, that never created a quest-based game before, managed to create almost 150 quests of various complexity for Horizon. On top of that, they also managed to have an unexpected success in having the system generate simple player jobs automatically. Yet, it isn't perfect and there is still room for improvement: the time travel problem needs to be fixed, and the list of verbs used didn't fully match the needs of the team. Some were redundant, while others were overly-specific.

At the bottom of the post, you'll find the full slides of the presentation with additional details. Incidentally if you are a game developer (to which this panel was mainly addressed) but didn't have a chance to attend, you can send me a mail requesting the full audio recording.

On top of that, if you want to read our take on Horizon Zero Dawn, you can read our full review here. The game is currently available exclusively for PS4.

[On-location reporting: Azario Lopez]