Jump to content

Dynamic Narrative in The Hit

Peer Reviewed by Servant of the Lord, jefferytitan, jbadams

narrative story design writing
I'm currently working on a player-driven dynamic narrative system. This is the blog post I wrote in response to Ken Levine's 'Narrative Lego' GDC talk, which was originally published on Gamasutra.com. Since then I've filled in some of the gaps, and I'm planning a follow-up article, but for now I'm working full-time on developing The Hit.

4: Adsense

I've been dreaming about a player-driven dynamic narrative system for the last 20 years, and trying to come up with a workable design for the last 5. The Hit will be the first part of that to see a public release. I’m going to need as much user feedback and player metrics as possible, so I’m designing the game to be enjoyable and attractive from the start, and only building in the framework for the dynamic narrative system. Once the game is released, I’ll start to add more of the dynamic systems, and develop systems for creating richer and deeper narrative content.

One thing I should make clear: I’m not trying to create a dynamic narrative system for a traditional FPS or RPG, though if anyone reading this is, I hope they will find the following to be useful. Instead, I’m building the game around the dynamic narrative system, and many of the design and mechanical systems in The Hit stem from that.

Here's an overview of how the dynamic narrative system will work.

Level 0: Pedestrians and The City

At the simplest level, the City is full of pedestrians. Each pedestrians has an NPC style [which just describes, in numbers the game can understand, how the character looks] and a looped path, which they will walk along forever. The pedestrians are very simple, and ridiculously cheap in terms of processor time, so thousands can exist simultaneously in a scene. They’re also synchronised across the network, so that other online players will see exactly the same pedestrians on the same street.

The City itself is composed of sections (each about half a block in size), which each have a set number of assigned pedestrians. Generation rules for each city section will dictate the percentage of different NPC types (suits, casual, etc.) which will be generated for each section.

This is where I am at the moment. I’m concentrating on making The Hit fully playable and polished for an initial release, at which point I’ll start building the level 1 systems into the game.


Level 1: NPCs and The Cloud

If the player interacts with a pedestrian (Initially, if they speak to the pedestrian, photograph them, or follow them for a set amount of time), some procedurally generated information will be attached to that pedestrian, and it will become an NPC. NPCs will have a name, a job, and two or more destinations (usually home and workplace, though they may also have a car, which they will use to drive from one to the other). The simple looping path they follow will also be replaced by a path with a start and an end, so that anyone following will see them behaving realistically.

The data used to create the NPC will be taken from the cloud, which is a persistent and continually changing set of information that covers every aspect of the gameplay. It is essentially a reserve of pre-generated information, so the game always has suitable data on-hand for when it is required. During quiet moments of gameplay, the cloud will be creating new sets of data, including NPC data, but also procedurally generated posters, signs, billboards, graffiti, paint-jobs etc.

If the NPC data is not used (say, if the player begins a conversation with the NPC, but doesn’t learn their name, or discover where they live or work), it is either discarded completely, or returned to the cloud, and the NPC will revert to being a pedestrian again. This avoids the need to store data about every single pedestrian in the city, memory which can be much better used elsewhere.

This is where I think the system described recently by Ken Levine at GDC falls down. It is not necessary to simulate everything in the game-world, as long as what the player experiences feels real enough. More signal, less noise. Dwarf Fortress, the reigning king of emergent content, doesn’t actually create a narrative through simulation, it just generates enough ‘noise’, with a specific enough context for the the player to be able to create a signal from the noise. However, most players won’t have the patience to filter out all that noise in order to create an interesting narrative.

The pedestrians are essentially a programmed animation of the flow of people through a city. As long as that animation is convincing enough, as long as the NPCs are believable enough people up close, and as long as the switch between them is not too obvious, it will appear to the player as though everything in the world is fully simulated.


Level 2: Characters and the Director

An NPC isn’t quite a character yet. Characters can be created in one of two ways: Firstly, if the player spends enough time in the vicinity of the NPC, it will request character data from the cloud. The other method is via the Director. Similar in purpose to the Director AI in the Left 4 Dead series, the Director is constantly watching over the player, and can make decisions about the various narrative threads which are in play. It can pull data from the cloud on the fly, and attach it to NPCs in the game.

Characters have traits, which can have exclusion rules, so that conflicting traits are never assigned to the same character. Traits are modular, and can be common, rare or unique. Most unique traits will have a story (see below) attached to them.

Examples of Traits: Hard of hearing, Southern accent, Religious, Unsociable, Gung-ho, Insanely Jealous, Relative is a special character, Deathwish, Serial killer...

A small, but important part of creating abstract systems is coming up with ways to represent that system visually, so that users can create and share content quickly. One of my goals is to open up The Hit’s systems to story designers, who will need an easy way to map traits onto their characters, or to understand how collaborators have set up those characters. It’ll most likely end up looking something like the Chakra system, or the Kabbalah.

Characters can also be created by designers, either in full or in part, in which case the modular system will allow the designers to rapidly bring a new character to life. For The Hit, I'm not planning to use spoken dialogue at all in the near future, which will make prototyping and testing significantly cheaper and faster.


The Story Game

The Director is essentially playing its own game with the player, and has a few rules it operates by. It has a memory of when the most recent plot-beats (events related to other events) occurred, and will try to ensure that beats continue to happen on a regular basis, occasionally punctuated with standalone incidents. It also knows how far the player is along the current major and minor story arcs. That part’s a bit more complex. Probably the best way to explain it is to use a card game as a metaphor.

Stories are made up of discrete events, and can exist as individual events, chains of events, or arcs. There is no limit to how long a chain or an arc can be, and stories can also be nested inside larger arcs.

Each event will have a trigger condition, where a set number of pieces need to be in place before the event can begin. Conditions can be acquaintances (or rather their traits), objects or information, and can be thought of as cards in the player’s hand. The Director will constantly be sorting its list of events into order of desirability. If the player is missing just one card for a high-value event, the Director may decide to 'force' the card into the player's hand by means of a smaller event.

Example of an Event 1 (Western genre): The player has tracked down the Jacoby gang, who have holed up at the family farm. Through stealth and strategy, the player kills the gang one by one, until only 18 year-old Larry Jacoby remains. Instead of fighting, he throws down his gun, and offers to trade his freedom for a particular piece of information. This event could be used to force a character (not necessarily Larry himself) into the player's hand, or an item, or even just information, regardless of whether or not the player lets Larry Jacoby live, and could also provide an exciting and surprising story beat.

Example of an Event 2 (Fantasy genre): the player has a magical artifact, and is on friendly terms with a powerful special character, who discovers that the artifact is both incredibly dangerous, and also sought after by a powerful evil special character. He/she decides the player should transport the artifact to a location where it may be destroyed, and calls upon some capable friends to assist the player. This could be the start of an epic arc, and would also allow for the introduction of many characters at once.

The advantages of this system are many: rapidity of development, flexibility and game variety, and it also will allow designers to create and alter events as they go, instead of having to design everything at the outset.

One point I should stress here is that events will be, as far as is possible, player-directed. The Director is continually trying to set up events around the player, but they will be left for the player to trigger unless it becomes absolutely necessary to force an event. In order for this to happen, the Director can have triggers for multiple events in play at any one time, and will increase that number, and therefore the likelihood of triggering an event, the longer the player goes without experiencing a plot-beat. When the player does trigger an event, most of the other triggers will be removed from play until they are needed again. Only some one-off events will remain; we don’t want the player to be confused by multiple plots. Again, this could be another big advantage over a traditional RPG Quest system. It will allow designers to pace the story, rather than letting players stack up multiple missions in order to maximise their chances of gaining XP from any location.

Multiplayer is being built into The Hit from the start, and should offer less problems than in traditional narrative games. Because characters and events are generated per-game, designers will never be faced with the problem of characters existing in different states in each player’s game. Also, characters can be shared between players while they are connected, then withdrawn to their respective games when they leave the session. The main effect multiplayer will have on gameplay is that the Director will have more cards to play with, and therefore more opportunities to create events and advance the story.


As I said at the top, right now my focus is solely on making The Hit an entertaining and engaging experience, and get the game out later this year, and then start releasing the user creation tools soon after that. If everything goes according to plan, the first dynamic story content should be appearing in the game before the end of 2015.

Dan Stubbs


This article was originally published on Gamasutra.com in April 2014

Update: The Kickstarter for The Hit is now live at https://www.kickstarter.com/projects/374958068/the-hit-stealth-action-in-a-dynamic-city

About the Author(s)

I've worked on videogames, applications, simulations and training software for the defense industry and several other large organisations, worked in animation, taught Unity workshops, have been heavily involved in organising various game jams, meets and one festival, and I occasionally write about games and gaming. I left an awesome job a couple of years ago so I could make games, and I've been working on The Hit on and off for most of the time since then.


GDOL (Gamedev.net Open License)


Jun 26 2014 06:02 AM

This looks promising, I like the story arcs stuff and how the Director can "force" some info/character on the player to start a story :). I'm glad to see it has been Greenlit, I'll have my eye on it. Wish you the best of luck :)

Jun 26 2014 02:44 PM

This was a very interesting read!

The only thing I hope in this game is that there aren't too many content bugs prohibiting the player from finishing a story-line.

Jul 28 2014 04:18 PM

The amount of programming required for all of this sounds insane. Like, my brain can barely comprehend it at the moment. Sounds interesting nonetheless.

Sep 09 2014 05:43 PM

Looks interesting, the graphics of the buildings make me think of GTA3 (which I loved) and the idea behind the game makes me drool. I'm keeping an eye on this one :).

Sep 10 2014 08:10 AM

Great overview. I'm working on something similar myself buy you've clearly taken it further. I hope you'll write more articles in the future showing some more the technical details. Hope all goes well with your project!

Sep 10 2014 12:56 PM

I've been making games for many years, although none that have gained much public support.  That being said as soon as I read "Instead, I’m building the game around the dynamic narrative system" That's when I knew you were on the right track to tackling the dynamic element.  I look forward to seeing your progress.  It'll be interesting to see what kind of game you "invent".  I myself am tackling the dynamic aspect, but from a different angle, for the creation of an entirely new kind of game.  One that I hope will attract a following (isn't that every creators dream?).  I too am designing the game around the AI driven environment.  AI rich environments are unexplored virgin territory.  Best of luck to us both.

Note: GameDev.net moderates article comments.