In 2016, Ken Levine (of Bioshock fame) gave a talk on “Narrative Legos”. I just got done watching it, and think it misses some fundamental aspects of what makes storytelling work, and because I have a blog where I can talk about things that I don’t think are much interest to people other than me, I’m making my second blog post of the month. I will try not to retread anything from the previous post, “Programming the Monomyth”, but there will necessarily be some overlap. Also, note that I haven’t read any responses to Levine’s talk, so I apologize if I’m retreading things that were immediately brought up some years ago when he first gave it.
Narrative Legos, a quick overview
From the talk, and the examples that Levine gives, the conception of the world is of a place with different Locations and Factions, with notable individuals called Stars which have Passions.
A Star’s sentiment is the aggregate of their individual passions, and a Faction’s sentiment is the aggregate of the Stars of that Faction.
Part of the idea here is that these various passions will motivate the player to do specific things which will then increase certain passions and (necessarily) decrease others, and the “story” will arise from that, with events gated behind certain passions, aggregate passions, aggregate sentiments, etc.
I am very skeptical that this approach will result in anything like an overarching story, and most of this blog post is about why that is (and what to do about it).
Story Structure and Story Circles
The general flow for a story is that tension increases, then there’s a break, then tension increases, then there’s a break, then tension increases to a peak, then the story ends. Stories generally follow this structure of escalation, which, with events leading into each other, allows for the story to have a feeling of weight and momentum.
The basic story circle, as laid out by Dan Harmon, is that a character starts in a place of comfort, has a need, goes forth, adapts, gets what they want, pays a price, and returns, having changed.
One of the ideas that Harmon brings to story circles is the idea that they are nested, such that each TV show might contain a story circle, but each character has their own story circle, and each season has a story circle, and each episode has a story circle, and each scene within the episode has a story circle. The story circle approach works, in part, by having this structure everywhere.
Quest design in games pretty naturally follows this pattern:
- The player starts in a quest hub
- They take a quest
- They go find a new location and enemy
- They figure out how to beat it
- They accomplish the quest objectives
- At the cost of (usually temporary) resources
- They return to the quest hub
- They get a reward
(Levine actually talks a bit about how this combat->non-combat->combat loop tends to be satisfying, and I agree, which is why it shows up in so many games, even games that don’t follow the open world structure. Slay the Spire gives you break after every fight to pick a new route, and sometimes you go rest, sometimes you go shop, sometimes you have an event, but eventually you go back to fighting. Of course, Slay the Spire also has a (small) reward at the end of every battle, representing a tight loop even if you do lots of battles in a row.)
So you might be looking at this and thinking “well, narrative Legos seem like they provide a basic story circle, what’s not to like?”
What’s Not to Like: “Player” Agency
Bob the Blacksmith is an orc who hates elves. The player learns this about Bob, then goes out and kills some elves. This makes Bob happy, and Bob offers better merchandise to the player. Who is this story “about”?
Bob the Blacksmith is an orc who hates elves. The player kills some elves, and Bob learns about this. This makes Bob happy, and Bob offers better merchandise to the player. Who is this story “about”? Is this even a story?
I think one of the fundamental problems with an NPC-based approach in general is that it creates a disconnect between the player, their character, and the goals that the player is pursuing. The player’s pursuit, “make Bob like me” or perhaps “get better merch” is disconnected from the game mechanics of “kill some elves”. From certain ways of looking at this, it’s either Bob’s story in which Bob does fuck all, or it’s the player’s story in which they’ve been given a random quest. Yes, on a meta level, because of competing desires and the zero sum approach, the player is needing to choose between aligning themselves with the orcs or the elves, but a decision like that does not make a narrative, and that decision is outside the scope of the actual quest/goal structure.
A game which is built upon the desires of NPCs will not be conducive to a player character having their own agency or story. The story circles that the game generates, if it generates them at all, will disconnect motivations from actions, and will focus the story on those NPCs, rather than the character, which is always going to be a weaker play experience.
What you want is for the player to hate the elves, decide to go out and kill them, kill them, and have some intrinsic or extrinsic reward for doing so. This makes it so that it’s a player story rather than a messy bridge between differing motivations.
I think what’s especially egregious about the player killing elves to get merch from Bob the blacksmith is how many levels removed from the reward it is, and one of the big reason that’s a problem (besides the fact that it’s bad storytelling) is that the game doesn’t actually know why the player is doing what they’re doing, and so can respond to what the player has done, but without having a grasp on the internal and external motivations, is going to be forced to remain agnostic to that.
What’s Not to Like: Tension
Under the proposed system (and proposed six years ago now, so maybe has changed), tension is uncontrolled. What do I mean by this? Look at the tension map of a traditional story again for a second:
As established, traditional quest structure does follow the story circle method. However, when you chain a bunch of those quests together, you don’t get the above diagram, you get something like this:
Tension does not increase over time because quests are tension agnostic. If you kill an elf, Bob’s Passion increases, if you kill another elf, Bob’s Passion increases, etc. There is no upward ratcheting of tension, there is no larger design that’s being moved toward, and the story circle is not spinning.
I think that this problem is a little less inherent to the approach though, because you can fix it. The easiest way is to have some kind of discounting built into the system. If Bob the Blacksmith has the “Hates elves” passion, then perhaps killing an individual low-ranking elf increases his meter +1 … but once you cross a sentiment threshold, Bob already knows that you’re an elf-killer, and each killed elf is worth less than the others, or each elf-antagonistic action you take is worth 1 less (making killing a low-ranking elf worth 0). This would at least add some progression back in, and require bigger risks or actions from the player, which would feel like it was taking the story into deeper places, and it’s a relatively quick fix to the basic proposed architecture. It would also reduce the possibility of grinding (if you give a player the option to grind, they might do it, even if they don’t find it fun).
(Outside the scope of this post, but there is also a limitation of the approach, which many games share, which is “How exactly do NPCs learn information?” You kill an elf, that makes Bob the Blacksmith happy … but how’d he find out about it? Implementing knowledge systems is super complicated and with relatively little payoff, especially because it’s difficult to make legible to the player, so I’ll give this one a pass.)
The other big trick to fix the tension problem is to gate things behind conditions, which I believe is one of the approaches that Ken Levine intends to use, at least according to the talk. If you have positive sentiment from X number of characters, some new event happens in the world, or some new character appears, or … something.
I think that this comes with some problems of its own, namely that a story will be stronger if there’s some cohesion between cause and effect, and if there’s a through line or leitmotif or something to connect two events together. A good way of doing this is might be for certain passions to trigger certain outcomes, or to save on asset/story budget, for certain outcomes to have their origins or flavor reskinned to match what’s come before. An example:
The player has been killing elves to curry favor with Bob the Blacksmith, or possibly just because, or possibly because the elves have shiny things that the player wants (again, there’s the motivation-agnostic problem). Elves, as a faction, hate the player, and the player has been escalating matters in order to further curry favor with Bob, as per my proposed change. Once a certain global threshold is passed, we get a Counter-Escalation Event where things become more serious. This is, per Levine’s framework, authored content, but it can be pulled from a hat and then rewritten so that it makes sense in the context of the elf genocide the player has been enacting.
- The elves, worried about their position on the world stage, have made a dark pact and unleashed a barely controlled ancient-evil.
- The elves have hired a trained assassin from the planes of Shadow to go kill the player.
- An elder spirit of the elves rises from the sacred groves.
- Elves have forged an alliance with another race in order to acquire more power, at great cost to themselves.
The point here is to introduce something new, which keeps things fresh, to do it in a way that relates to player action, This keeps the story circle as intact as possible. And by committing to only those events that can be reskinned, we can keep budget for story and assets down. It doesn’t matter whether it’s the dwarfs, orcs, elves, or humans that hire an assassin, it doesn’t matter which one makes a dark pact, what matters is that it’s a direct response to what the player has (ideally intentionally) done, and furthers that conflict.
If you’d like, you could have multiple stages to these escalations, or methods of de-escalation … but that comes with more effort and more costs, and one of the things I really try not to do when talking about media is to say “this would be better with more budget”.
It would be even better to have some foreshadowing in place, which you could do at certain thresholds before the big escalation event. Dark rumors of the elves hiring on warlocks, for example, or the paranoia of the elf king, or … whatever, so long as it A) warns the player of the consequences of their choice and B) makes it seem like it was inevitable.
My biggest problem with the NPC approach is that the stories are stories instigated by the NPC. The easiest way to change this while keeping the basic concept of narrative Legos is by applying the same system to the player: give the player some passions.
This biggest problem with this would be getting player feedback, i.e. understanding why a player is doing all the things they’re doing. If they’re killing elves, are they doing it because they hate elves, as retribution for something an elf did, is the fact they’re elves irrelevant, is this mercenary killing … ? The easiest way to collect that information, at least in the established RPG paradigms, is through dialogue (or perhaps monologue). When you talk to other characters, the dialogue you pick reflects something about you, and certain sliders are changed behind the scenes in response to those, in the same way that NPCs have their Passions changed. Mass Effect has already done this with their Paragon/Renegade options, this would just be a more complicated version of that, but if you have a system like that set up for NPCs, the work of applying it to the player is … well, honestly, still probably a lot of work, depending on how much you want to put into each option.
The numbers that Levine throws out are ten passions per character, with three chosen as “relevant” in each playthrough, and for that to apply to the player character, you could have them either random or player-chosen, or even have them change over the course of the game (since change is a fundamental aspect of narrative).
Giving the player a “hates elves” slider is way better than giving one to an orc, because it implies and rewards a role the player can play. It gives the player a story circle, even if it’s a rudimentary one. If the player starts out hating elves but then has a lot of positive interactions with elves that push that slider around, eventually they might have a “likes elves” slider instead, which would look like character growth.
I’m less sanguine on this, mostly because of the effort factor, and because it’s a departure from the paradigm. Getting player feedback is also a sticky issue, one that’s solvable with input via dialogue, but it’s not been done at the scale I’m imagining, and a game’s thirst for content can quickly become insatiable if you’re writing a lot of content checks that you’ll have trouble cashing.
Blogging Takes No Effort
I think it’s easy to say these things, but significantly harder to code them into a game. Mostly, I’m just talking about the framework as laid out in the talk, and how I think it could be improved without having to toss the whole thing. I’m not a game developer or designer, unless you count DMing, which I personally don’t, and my experience is largely in programming and writing, elemental components of games, but separate from them. Worse, my ideas here are difficult to test, because you would want full systems available and can’t just create a quick generator or simply prototype without at least a week or fulltime work, maybe more (and that would be just to get a simple HTML5 version where everything was stubbed and there was no gameplay).
Maybe Ken Levine’s next game will use his Narrative Lego approach, and he’ll have already thought of everything I’ve mentioned, or maybe he will have thought about it and discarded it, making no less great a game in the process. I don’t know. At the start of the talk, he said that he wanted to try something new and different, something that would allow for x^y possibilities rather than just x possibilities. I like that idea, I just worry about the 10,000 bowls of oatmeal problem, and the need for stories to have structure to them, and character growth getting pushed to the wayside.
This is one of those blogposts that I would love some comments on, mostly because I’m not sure how right I am, or how much I might be underselling the amount of work necessary to do what I would want to see done.