Left4Dead’s contextual storytelling and JRPGs

A few days ago, I read through Elan Ruskin’s excellent 2012 GDC presentation on how Valve handled character dialogue in Left4Dead and I felt like I understood about two thirds of it, which is pretty good.  (I read it instead of watching it because GDC doesn’t seem to have any videos on YouTube from that long ago, nor do they seem to upload videos that get this explicitly technical, but Ruskin put his slides and script online, which is a very awesome thing to do.)  Left4Dead’s dialogue system is a marvel and it’s my opinion that anyone interested in making character-driven games should make themselves familiar with how it works.

(Because Left4Dead and Left4Dead2 are basically the same game, I’ll be mostly referring to them as if they were just one title.)

In particular, I’ve been interested in how systems like this could apply to JRPGs, which are my main area of interest but have been developmentally stagnant since at least the PlayStation 1 era.  Other genres have thoroughly pilfered what were once considered to be RPG mechanics—variable statistics, unlockable abilities and so on—but RPGs haven’t done the same in return, and its most critical flaw, the strict segregation of storytelling and gameplay, going almost entirely unaddressed.   For a genre that sells itself on the strength of its writing, it’s not a great thing for plot and character development to come to a halt the moment a player starts navigating a dungeon or fighting trash mobs.

Per the presentation, Left4Dead2 has about 10,000 lines of spoken dialogue, which Ruskin notes is a “moderate” number for an RPG but a hell of a lot for a first person shooter.  And by FPS standards, L4D is pretty unique and its format presents it with some special needs.  In particular, L4D operates on cooperative campaigns that run across multiple maps, which made them very expensive to produce (only 14 were ever made across both games!) which in turn meant that intended play had to be based on the audience wanting to play through all of them multiple times.  Whereas a more conventional multiplayer FPS such as Overwatch can release multiple maps at once, the release of a new L4D single campaign had to be a major event unto itself.  Also, unlike most multiplayer FPSs, L4D doesn’t have the benefit of an opposing team of human players to provide events.  This would make it more like a single player FPS, which would be more narrative driven, but still carrying the additional replayability demands that would normally only apply to multiplayer games.

The solution they eventually developed for keeping gameplay fresh was clever and elegant, and I won’t regurgitate it here.  But given how unique the game’s demands were, it is worth considering how applicable their system would be to other genres—in this case JRPGs (because of course it’s JRPGs).  Genre differences aside, I see the following structural differences:

  • Even if they have branching plots and multiple endings, JRPGs are still considered, both in development and as finished products, to be single playthrough games. Left4Dead campaigns are intended to be played through many, many times.
  • L4D has very few formal cutscenes. There’s an opening and an ending and that’s pretty much it.  Everything else is communicated through gameplay systems.  The cutscene—taking away control from the player in order to play out narrative—is an immutable part of the JRPG experience and probably can’t be significantly changed.
  • Every L4D campaign has fundamentally the same plot: The Survivors are trying to get somewhere that has a promise of safety.  The details are different between campaigns, and the campaigns do have a canonical order, with one campaign designated as a beginning and one as a final ending…but the actual objectives never change:  Get to a place and get rescued.  While some older JRPGs effectively do operate this way, running the same explicit plot ten times in a row is going to kill your game real fast.
  • Standard non-hybrid first person shooters only have one mode of gameplay. The control scheme is always going to be “you’re in first person and holding something in front of you”.  The standard JRPG has entirely separate modes for field, battle and menu.  Trying to break down those barriers is a worthy exercise, but true success would probably leave you with an entirely different genre of game.

Given that JRPGs are linear and have a single story one can expect to be experienced only once, something as elaborate as L4D’s dialogue system may seem like overkill, but I can think of a few places where it could be put to good use:

  • Player characters speaking during fights. If games employ this (which most modern JRPGs do), it’s typically reserved for major, climactic boss fights between the party and story-critical antagonists.  Otherwise, expressions of character personalities are limited to grunts, skill announcements and generic taunts.  Personality-driven, context-sensitive interactions between player characters almost don’t exist.  The chief exception I know of is Final Fantasy XV, which uses this to great effect.  (Undertale makes beautiful use of its battles for storytelling, but those fights are both heavily scripted and serve as active, not passive, character development, so I’m not counting it here.)
  • While some games have instances of characters talking during dungeons, these are generally announcements of things that are off screen or that the player could reasonably miss.  There’s also usually not terribly many of these lines, since they’re intended to be functional and not immersive.  Some games like Persona 3 will even employ a dedicated character for the purpose, which would seem to both acknowledge that there’s a roughly 25-hour character development opportunity here and also flush that opportunity down the toilet.
  • More specific to MegaTen games, demon conversations. These have always been either scripted events or, more often, a series of randomly selected and disconnected questions for which the player can eventually memorize useful answers.  As any given encounter has very little staying power in the overall player experience, building a character for individual enemies is both difficult and not really worth the effort, but making the conversations more context-sensitive can, in the long run, make demon contact more consistently fresh and make the world feel more alive.

All of that being said, I also see some risks to this kind of implementation, and some open questions that I don’t think anyone has tried to answer yet:

  • It hasn’t been tried in a less action-oriented game yet. I mentioned FF15 above, which does employ these techniques, but there’s definitely an argument to be made that it’s not actually a JRPG.  At a minimum, it must be considered a hybrid.  While this lets them merge battle and exploration elements (a laudable goal they’ve been working towards since at least FF10), it doesn’t answer questions about how this might work in a slower or turn-based game.
  • It’s probably highly sensitive to cast size. Left4Dead and FF15 both employ very small casts of four main characters each.  For character-to-character interactions, every new cast addition increases the needed dialogue exponentially.  Large JRPG casts already have a major issue with spreading character time too thin, which leads to game bloat, less developed characters and a shallower experience no matter how the writing is approached.  The amount of effort that would be required for this kind of system to work with a large cast would probably render it impractical.  The flat characters shall remain flat.
  • The importance of voice acting is unclear. Left4Dead and FF15 are both fully voiced and I have no idea what that means for a game that only employs text.  Voice runs through an entirely different brain channel from visual and tactile information and can be easily processed in parallel with everything else.  Meanwhile, text is visual and occupies screen real estate, putting it in competition with other information.  It’s also not inherently real-time, so there are questions of how it gets handled:  Does it require player confirmation or is it timed?  (Timed seems better.)  If it’s timed, people have different reading speeds, so how long do you leave it on screen?  A major feature of context-sensitive dialogue is that it’s responsive to a situation changing while the scene is playing out, so if a player can adjust display timing according to their preference, does that mean slower readers would get less out of the system?
  • It is not trivial to implement. The back half of Ruskin’s presentation assumes a lot of knowledge about databases, which is an entire skill set that small developers may have no experience with.  For my own purposes, it’s especially problematic because GameMaker does not currently have any kind of native database system.  For Behemoth I’ve been using the GMSDB plug-in, which operates as a SQL-style database.  That’s been a life saver in a lot of ways but, as Ruskin notes, SQL is not at all appropriate for managing contextual dialogue, as each potential fact would require its own column and most of those columns would be irrelevant, which is going to lead to a massive but almost empty database, which takes up a lot of space and slows down lookups.  It’s not clear to me if it’s even possible to implement this kind of system in GameMaker or if I’ll have to grit my teeth and port the whole project over to Unity.
GameMaker, please help me. Please.  GameMaker, please.

I know I’ll be returning to that presentation at some point, hopefully when I have the knowledge to decipher that last third, but in the meantime, conclusion paragraphs are bad.