When a player gets the game
October 22, 2019
Recently, and for the first time, I contributed some writing to a video game. I’m a longtime player of video games, and I know how computers work, but even so, the experience surprised me. Turns out, making media always has a texture that’s different from consuming it, and you’ll never know what it is until you do the work!
The game, called Neo Cab, is set in a near-future city, its streets given over to self-driving cars. You’re the last of the human cab drivers and your passengers are just as strange as you’d expect. It’s an emotional survival game in which you manage the push and pull of your driver rating, your bank balance, and your own emotional state in order to stay on the road and dig deeper into the story.
A talented team of artists and programmers steered the Neo Cab project, and I was just one writer on a team of several. Here are three things I learned as a passenger on this particular trip:
1) WRITING WITH INK
Video games with branching choices have been around for decades, but the tools used to write them have looked a lot like the tools used to program them: dense, cryptic syntax; prose obscured by a thicket of code.
These days, there are better tools, and one of them is Ink, a lightweight format developed by the UK game studio Inkle, best-known for their narrative adventure game 80 Days (which, for my money, is the best-written game of all time).
An Ink document looks like a mashup of a screenplay and a recipe. Here’s a scene from Neo Cab where Lina—that’s you, the last human cab driver—is talking to her passenger Agonon, the leader of a small cult:
AGONON: Do you deny the deep truths in The Book of Hunger and Hardship? AGONON: Do you oppose the great PAIN WORM? * LINA: I don’t—um. What? -> RiseOfThePainWorm * LINA: Whoa, I thought we were just both in a bad mood? LINA: What's a Pain Worm? -> RiseOfThePainWorm * It was going to take a minute to process the phrase "Pain Worm"… >>react:LINA.squint AGONON: Well!? Where do you stand?
As you can see, it’s mostly plain text, which is great: you truly feel like you’re writing, not programming. It’s easy to focus on the dialogue. But there are a few extra affordances, too. The lists marked with asterisks stand for branching choices. In the example above, the player can choose to say either of those three things, then see what happens next.
The funky little arrow, ->, moves the story along. Later in this Ink document, there’s a section marked like this:
= RiseOfThePainWorm Agonon's voice dropped deeper. Like he was speaking from inside a cave. >>react:LINA.awkward AGONON: You carry me now on my nightly quest to seek the Pain Worm.
So, although an Ink document looks a lot like a screenplay, it’s fundamentally nonlinear: you don’t read it all in order, but rather follow the arrows based on the player’s choices.
There are also tags marked off like this, which operate like stage directions:
Those aren’t displayed to the player. Instead, they connect the writer’s script to the game’s graphics, triggering different animations. These vary from game to game. Most of Neo Cab’s animations involve emotional reactions, but another game could just as easily offer a trigger like:
>>effect:huge_explosion or >>music:creepy_strings
All in all, writing with Ink was a delight: it gives you enough space (literal white space!) to focus on the text, while allowing you to track suggestions and revisions, just as you would in a normal novel or screenplay draft. These extra tools—the branching choices and leaping arrows—spin things out into a different, more interesting dimension.
2) NON-INFINITE MONKEYS
Publishing code is very different from publishing other kinds of media. With words, music, and moving images, there can be all sorts of drama behind the scenes—a tortuous editing process, a bizarre hack to create some visual effect—but once you have the finished product in hand, you know what you have. When a reader or a viewer decides to give it a try, the media will, with certainty, “work.”
But that’s not the case with code! Even the simplest video game is a fiendishly complicated knot of logic. And even when its programmers are clever and cautious, there are bound to be bugs lurking in the depths, just waiting for a player to, for example, press A and B together on the keypad while their character holds a torch and looks straight up—a combination which, because it was never accounted for, suddenly causes the whole world to go black . . .
So, how do you find those bugs ahead of time? What’s the video game equivalent of copy editing? For Neo Cab, it looked like this:
Now that @neocabgame is out, I can post some behind the scenes stuff! Here are two of our testbots, running 18 instances of Neo Cab at 5x speed. For every clock hour we get 90 hours of gameplay testing. That is nearly a month of gameplay every 8 hours. #alwaysBeTesting pic.twitter.com/QAZcffP2FC— Mighty Ben Britten (@benbritten) October 4, 2019
Every time Neo Cab’s code was updated, a studio in Melbourne called Mighty Games ran hundreds of copies of the new version in parallel, each “played” by a simple AI, and waited for one of them to freeze or crash. The AI players didn’t have to be “good”; in fact, it was better if they were “bad,” banging on random keys, waving the cursor around wildly. It’s that kind of unpredictable behavior that can trigger the bizarre combinations that reveal deeply-hidden bugs.
As it happens, even after a non-infinite but very large number of monkeys had banged on the game for a non-infinite but very large amount of time, Neo Cab still concealed a couple of gnarly bugs. After being discovered by some of its first players, they had to be fixed in a panicked rush.
Thus, I am here to tell any writer who has ever contemplated the strange calm of a book’s launch: be grateful.
3) GETTING IT
Video games have a robust reviewing ecosystem, and a game’s overall success—at least financially—is linked pretty strongly to the overall kindness of those reviews, by professionals and players alike. Most people who play Neo Cab seem to like it, with a level of enthusiasm ranging from “cool concept” to “I’VE BEEN WAITING FOR A GAME LIKE THIS.”
But in games, as in books, it’s not the positive reviews that are the most meaningful. No; the reviews that make you pump your fist are the ones demonstrating that somebody got it. In a review of Neo Cab on the website Ars Technica, Sam Machkovech writes:
“This is where Neo Cab avoids the biggest sci-fi clichés. You’ve seen these ruminations before, about the exponential growth of technology and its impact on feeble, emotional humans. What’s unique here is how the game smoothly asks you to mind characters’ emotional responses to so much rapid, high-tech change. And, yes, it’s significantly interactive; a second playthrough proves that some conversations diverge in meaningful ways.”
Emphasis mine, and: exactly.
Books, zines, movies, Netflix shows, video games: they’re very different formats, and yet, this part is always the same.
I don’t know if this is true for all writers, but it’s true for me: regardless of medium, you’re doing the work because there’s something you want to sling across the chasm between minds. That something doesn’t have to be ~a message~; more often, it’s an observation, a feeling, a vibe. And you’re hoping, more than anything else, to get that little blip of confirmation, the flash of a far-off signal lantern that says: message received. —Robin Sloan, author of Sourdough and Mr. Penumbra’s 24-Hour Bookstore