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.
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.
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.
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 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
http://www.TheHitGame.co.uk
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
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.
Conclusion
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
http://www.TheHitGame.co.uk
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