How I Learned to Tell Stories on Purpose

In this write-up I'll explain how I went from having basically no idea how to construct a story, to making players cry with my story. (In a good way, this time.) There are big spoilers for the Frog Fractions Hat DLC below, so maybe play it first?

When I ran the Kickstarter for Frog Fractions 2, most of you probably guessed that I had no idea what I was going to make. I had made Frog Fractions entirely improvisationally, and I figured I could just do that again.

The trick is, when you get something right the first time, you haven't learned anything. You have no idea which elements were your innate talent and which were accidental. The most important accident, I discovered much later, was that I built Frog Fractions in chronological order, and I designed each scene to follow naturally from the previous ones.

By contrast, I started work on the sequel before I knew where I'd be hiding it, so there was no previous scene to work from. Instead I started building gameplay vignettes that were individually entertaining. It turned out to be very difficult to fit these together into something that felt cohesive, and I feel like I only partially succeeded.

I had no idea how much of the success of the first game -- even to me, a not-particularly-story-focused player -- stemmed from it being at its heart a buddy comedy, the story of two friends going on an adventure together.

I started work on Hop's Iconic Cap with these intentions:

  • Like Frog Fractions and Glittermitten Grove, I wanted to build it improvisationally. It's more fun that way, and leaving the design loose means you can reshape it on the fly, as you learn more about the game you're building.
  • Like Frog Fractions and unlike Glittermitten Grove, I wanted the game to flow easily, like watching a movie, which meant all the minigames should be easy and also that if possible they should be recognizable riffs on existing games that the player already knows.
  • Unlike Frog Fractions and Glittermitten Grove, I wanted to figure out how to tell a meaningful story.
With storytelling on the brain, I replayed The Secret of Monkey Island and noticed that it doesn't have a story so much as it has "there is an antagonist" and "there is a love interest." The lesson being your characters don't really need to be complicated to be compelling. They basically just need to want stuff, and the story can be those wants playing out, and charming dialog can paper over a lot of storytelling weaknesses.

So I started by spewing character traits into a Google Doc. Here's the section for "Frog Kid," the character that became October:

  • 🔥🔥🔥 Talks using lots of emoji. ⚡️⚡️⚡️
  • Goes on road trip with you. Wishes they were with mom, who does all the cool stuff.
  • Playing Game Boy literally all the time.
    • You revisit old locations from FF1 together, but they've seen it all and act bored.
    • Kid turns out to be more engaged than you thought. Texting mom about your cool adventures -- mom thinks kid likes you more.
    • Use game boy at the end to hack ad agency servers?
  • Rides Draggy's kid because that's what you do?
    • Draggy's kid has a Wonderswan??
  • Or maybe rides on your head.
(Draggy doesn't have a kid. Draggy's a lifelong bachelor.)

Then, while I was doing the technical work of porting FF1 to Unity, I spent a bunch of time talking to friends who knew about storytelling, about how to take these ideas and turn them into a story. I found Laura Michet and Xalavier Nelson, Jr. to be especially informative resources.

The opening scene of the game came to me as I was thinking about the kind of person who'd be replaying Frog Fractions after eight years. I decided that Hop should embody the player who was looking for adventure but didn't know where to find it, so they were revisiting old adventures. I made Hop run a nightly reenactment of the events of the first game for a live audience. Since I ended up writing Hop in my own voice, this got muddled thematically with the idea that Hop was instead embodying me, making the same video game yet again. But you know what? That interpretation is fine. You can believe that if you want.

By the time the FF1 port to Unity was ready to go, I had a story skeleton I was happy with, and I started implementing it, like FF1, in chronological order. In a sense the problem I was solving got flipped on its head -- in the first game, I was trying to figure out what should happen next. In this one, I was trying to figure out how to get from where I was to the next scene.

I ended up leaning heavily on dialog trees. Ron Gilbert has talked about discovering, while making Monkey Island, that playtesters hated lengthy expository scenes but they had no problem with exhausting every option in a dialog tree and absorbing the same amount of information in the same amount of time. Even a tiny nod to interactivity can have a huge psychological impact. Humor helps too -- LucasArts style dialog trees can be extremely dense with comedy because each option they present you with can be a separate punchline to the same joke. If the player is laughing that means they're not tired of reading yet.

And you know what? It turns out I love writing dialog trees. I am really annoyed that I only discovered this after turning 40. I could've spent those forty years writing dialog trees!

I worked very hard to make the dialog as punchy as possible, especially after realizing just how much of the game was going to be dialog trees. I made it a priority to get to the next story beat fast, in as few lines as humanly possible, and also be as entertaining as possible along the way. After playtesters showed reading fatigue when presented with too many possible responses, I started being much more stringent about how good a joke had to be to get added to your list of response options.

I also added a little fast-forward icon to mark the fastest way through a conversation, for people who were in a hurry to get away from the wall of text.

I've got a lot of experience writing jokes, but not characters, so I leaned heavily on voices I knew personally:

  • Hop is written in my voice. Basically everything he says is how I imagine myself reacting in the given situation.
  • My son, Winston, is too young to have inspired October in anything except the idea of having a child, so I basically wrote her from my memories of being a bored, cynical teenager, with the worst rough edges sanded off. (Players love October. One tester said "I would die for October." I have no idea how I did this.)
  • I wrote Hatricia with my wife in mind, who is a park ranger and is much cooler than me.
  • Phil is kind of all over the map. In his introductory scene, I wrote him very methodically as a stereotypical sea lion, repeatedly demanding that you debate him and provide evidence even if doing so is nonsensical. Later scenes, especially when I added the feature where he could just keep interjecting in the background while you're having a conversation with someone else, I just wrote him to be as big an asshole as possible in as many ways as I could think of. So I guess that's yet another side of me, just one that I rarely let actually operate my keyboard.
  • I wanted Dom to recognizably be Elon Musk, but to pull that off I would've had to read a bunch of Elon Musk tweets to absorb his style, and I decided my mental health was more important than this video game. So he's kind of just a generic Bond villain instead.
Some story problems I had a hard time with:

The antagonist's motivation was originally that he runs a social media company, and he wants to kidnap you in order to run an experiment to see if it'd be more profitable to optimize for "human dignity" rather than "engagement," and the R&D folks' best idea for how to measure dignity was the Frog Fractions Indignity Meter. Maybe a better writer could've sold this idea, but playtesters came away from this bit of exposition with no idea what had just happened. I pivoted to ripping off the "LeChuck is your brother" scene instead. (Which in turn was just ripping off the "Vader is your father" scene.)

The original ending showed Hop apparently dying along with the other frogs. October is distraught and calls Hattie, who says "I'm sure he's fine. He's been through worse." Cut to Hop diving underwater, echoing the ending of the original game. (That's why the big confrontation was set by a swimming pool.) I changed this because it would've made Hop a huge asshole.

For a while, the ending wrapped up the "deal with Dom" and the "go on an adventure again" threads successfully, but left the "get my daughter to think I'm cool" and "what's going to happen to my family now that my wife is Demiurge" threads hanging. The first one, I solved basically by tweaking October's reactions to be less bored and more engaged as the story went on, culminating in her line after the big fight with Dom, "I'll give you one thing, dad. That wasn't boring."

The "what's going to happen to my family" thread got pushed back to the post-credits sequence, which almost didn't make it into the game. I'd known for over a year that I'd wanted to expand on Dig World in the post-credits game, but the details eluded me for a very long time, and as late as a couple months before shipping, it wasn't very fun or satisfying and I wasn't sure if I was going to cut it.

When I'd gotten post-credits Dig World satisfying mechanically (which was its own design challenge, outside the scope of this post) the story was just "we're going to visit mom in hell" and then you dig for a while and finally break through the ceiling of her bathroom while she's pooping, because I thought that was a funny ending beat. I knew I needed to get a conversation in there about what was going to happen to the family, and my first draft just shoved it in at the very end.

This was a huge tonal shift, two minutes of drama at the end of two hours of goofy storytelling. And it ruined my nice ending beat! I mentioned above that historically I'm not great at storytelling, but I do feel like I have a flair for the dramatic, and all the Frog Fractions games including the ARG have had, I think, solid ending beats.

Part of the difficulty came from my spending two years working on storytelling purely in terms of "how do we get to the next plot beat?" All the characterization came incidentally, from the details of the dialog. But this scene demanded the plot happen inside the feelings.

The insight that solved all these problems -- provided by Xalavier Nelson, Jr. -- was to have the conversation be about a plot. Set the conversations with Hattie all throughout the digging game, not just at the end, and have the player and Hattie be working together towards a common goal. That put the storytelling back into my comfort zone; I could write something plot-driven and have the character stuff come in as asides and incidental options.

(I'd credit the insights provided by other folks, except that this was the only Skype call that happened recently enough that I rememember the specifics.)

While I was working out the script, I realized that this was an excellent opportunity to contrast this scene with an earlier one. Early in the game, you take October to the "Science of Frog Fractions" museum, which tries to teach children science with museum exhibits inspired by the Frog Fractions story. October has seen all this before and she's bored out of her mind, and meanwhile you're getting calls from your archaeologist wife who is going on wild archaeologist adventures, culminating in killing a god and taking its place. October complains that "mom gets to do the cool stuff while I'm stuck here with you."

(These phone calls from Hattie were inspired by second-hand descriptions of the conversations the player has with Luigi in Paper Mario: The Thousand Year Door, which I've never played.)

In the post-credits game, you get similar calls, with Hattie going on even wilder adventures in the underworld, except that this time around you're also doing wild stuff, and you're helping her out rather than just watching.

By the time you physically reach Hattie in the underworld, you've already hashed out all family-situation details in phone calls, which left room for the ending beat I'd initially wanted, breaking through the ceiling while Hattie is on the toilet.

The last moment of the game, I feel like I can hardly take credit for, because it was largely the work of two of my collaborators. Tyriq Plummer pixeled the final scene, with Hop and October and Hattie reunited at last, drinking tea and laughing together. Throughout the game, they've been depicted in three different art styles, but in this scene they're all the same style, because they've come a little bit closer together as a family.

And while this scene doubles as a sound test, because every Frog Fractions game has to end in a sound test -- I guess I'll have to subvert that some day -- the song that initially plays is the one that Danny Aley wrote for when you're at home with your family. I asked him for something a little bit wistful, even a bit sappy, evoking the comfort of being home with family that you love, and he nailed it to the wall.

In my post about porting Frog Fractions from Flash to Unity, I wrote that shipping the game felt like saying goodbye to Flash. But it also felt like a hello, to storytelling. I'm not sure if I'm going to get the chance to lead another game of this scope, but especially now that I have a kid, telling stories is a skill that I expect to serve me well.