Choices and Struture in Will Not Let Me Go: a postmortem

I entered Will Not Let Me Go, a hypertext story about memory, love, and death, in the 2007 Interactive Fiction Competition. It was my first choice-based story, as opposed to the parser-based adventure games I originally wrote or the non-interactive fiction I’ve been spending my time on lately. The interactive fiction community has a tradition of competition authors writing post-mortems of their work. Who am I to buck tradition?

You don’t have to have read Will Not Let Me Go before reading this postmortem, but it’ll help. If you have an hour to spare, give it a try.

Getting Started is the Hardest Part
I had the idea for Will Not Let Me Go years before I finally wrote it.

I was afraid to write it because the subject is so personal and so frightening. My grandfather suffered from dementia. His decline was, for me, the stuff of nightmares. Much of who I am is tied up in mental pursuits and how I use words. Having that leach away is one of my worst fears.

I also didn’t know if I could write well enough to do the subject justice. In real life I’m the goofy, funny sidekick who the author will kill to signal that Everything Just Got Real, and humor is how I deal with feelings. However, writing a slice-of-life work about dementia as a joke delivery vehicle is way beyond my skills. To tackle a story about dementia, I’d have to write far better than I ever had before, without papering over the cracks with jokes.

Will Not Let Me Go exists because of two friends’ intervention, both writers. Starla Huchton listened to me late one night passionately describe my ideas and why I was so afraid to write it. She then told me in no uncertain terms that I should write it anyway. She pointed out that I’d be more sad if I never wrote it than if I wrote it and it didn’t live up to my lofty ideas. Then Alex White gave me space at his annual writing retreat, even though I was the only person working on an interactive story. After the retreat’s six steady days of writing, I had completed all but the last scene.

Of course, it still took me two years after that to release it.

Structure and Interaction

Interaction at the Level of the Word
Analysis of choice-based fiction often centers on how choices impact the story’s structure at the plot level or story beat level. Will Not Let Me Go‘s interaction is far more granular: it’s about words.

Fred Strickland, the protagonist, has dementia. My overriding goal was to put people in his skin. Because dementia attacks words and comprehension, I focused interaction on individual words. Links in Will Not Let Me Go occur mid-sentence. Sometimes they represent Fred thinking of a word, realizing that it’s wrong, and replacing it with the right one. Sometimes they represent Fred’s thoughts stuttering to a halt. I wanted to give the reader the same experience: knowing there’s more to come and involuntarily trying to guess what comes next.

That led me to think through which words I linked. Choosing stutter-step points were straightforward. I found natural breakpoints and linked the last word or two to the next chunk of text. Links that offered choices or led to more text about a person or object were also straightforward. The equivalent of “next page” links were harder. Links are emphasis. They draw attention and hook the mind. I chose words or phrases that evoked Fred’s mood (“But Liz you told direct”), that focused on actions (“Virginia all but shouting yanks you out of the book”), or that set up something I’d refer to later (“Keep your heart rate and your spirits up, up, up!”).

The Shortest Distance From Bookend to Bookend
That’s not to say I ignored the story’s overarching structure. The story doesn’t branch significantly because of the story’s through-line of inevitability. But it does branch. Fred can’t change the end, but he can alter his journey. The story became more linear as it progressed to emphasize inevitability. Compare the tangling paths of the story’s first half to the second half’s straighter lines:

The first half of the story has a lot of branching and various paths.

The second half of the story is far more linear.

My branching choices didn’t all succeed. Did you realize that, if you agree to reconcile with your friend Tom in the Waffle House scene, you’re rewarded with a hopeful scene with him near the end? That’s okay, neither did anyone else. As much as Telltale’s “So-and-So will remember that” signifier has been the butt of jokes, it effectively lets you know that a decision has potential future ramifications. I didn’t ever suggest that your decisions had any effect, so they might as well not have. Similarly, how angry or not you play Fred early on removes future choices, as you’re defining how Fred reacts to his disease. Again, no one had any way of knowing that, and there weren’t enough branching choices or closed-off options for it to matter.

The story’s structure involved several mirrored elements. The later scene where you take care of Virginia echoes the earlier one where you hunt for Fred’s glasses. The entire story is bookended by two mirrored poems, 1 Corinthians 15:51-57 from the Bible at the beginning and Emily Dickinson’s “Forever — is composed of Nows” at the end.

User Interface and Its Affordances

Clarifying Confusion Through the UI
Will Not Let Me Go works hard to help the player’s confusion match Fred’s. The story’s timeline is fractured; events happen out of order. In the glasses-hunting scene, I alter the terrain. You meet your visitor in what is initially described as your bedroom but is actually the hall bathroom. After that conversation, your actual bedroom is available. The bathroom is empty because there was no visitor, just your reflection in the mirror. I change adjectives each time you visit some rooms, like the sectional sofa that I also described as a seasonal sofa.

My goal wasn’t to cut the reader completely adrift. For instance, I placed the glasses-hunting scene before the one where Virginia is sick so that, during the latter scene, the reader is familiar with the house layout, just as Fred better understands the house at that point in his life.

More critically, I altered the contrast between text and background to help readers place where scenes occur in Fred’s life. In scenes earlier in Fred’s life, before his disease has progressed, the story’s background is white, the text black. As his faculties diminish the background grows darker, the text lighter. That way readers have a sense of where each scene fits in the story timeline. A few beta readers twigged onto this feature. I’m curious how many other people noticed.

I even went so far as to make the first link pulse if you didn’t click it quickly. I’m not sure who would need to be trained on this mode of interaction, but it’s there.

After a handful of seconds, the first link gained brackets to draw your eye.

Are We There Yet?
Given Will Not Let Me Go‘s length, people needed to know how much of the story remained. Hyperlink stories don’t have standard affordances to indicate how much story remains. Books have pages; eBook readers have percent complete. Parser games originally awarded points, letting players judge their progress based on having 65 out of 100 points. For Will Not Let Me Go, I added a progress bar at the top of the screen. I initially placed the progress bar at the bottom, but Will Not Let Me Go uses short passages of text, and it was easy to overlook the progress bar. I didn’t want the reader to focus on the bar, so it only changes length when the reader reaches a new chapter instead of with every new reveal of text. But because a progress bar is an unusual feature, I had it flash gold when it changed length so that readers would notice it.

The progress bar is the black bar above the illustration.

Will Not Let Me Go also auto-saves the reader’s location in the story, so that they can take a break from it and come back later. That’s not a common affordance, either, so the game announces that it’s saving your progress when you start. (That I got to reinforce one of the work’s themes in that announcement was gravy.)

A Brief Excursion on Being Brief
Multiple beta readers suggested trimming the story. I tried. It turns out I am terrible at this. I combined two characters in the Waffle House scene into one. I trimmed bits from every passage. I eliminated several short scenes. When I was done, I’d only removed about 10% from the story. Ideally I should have removed one more scene, but the best candidate, the armchair aerobics one, was one of the few upbeat scenes in the middle of several heavy ones.

Helping Everyone Read the Story
I spent effort making it as easy to read the story as possible. I added a control at the bottom right corner to toggle the scene-based background and text colors, so that readers who needed maximum contrast could have it. I made sure that all of the story’s links worked on tablets and phones, even the section near the end where, on desktop, the story advances as you move the mouse cursor over a link instead of when you select it. You can also tab to links and select them by pressing enter.

In some cases, though, I deliberately chose to make the story harder to read. An early mock-up of Will Not Let Me Go used an ever-lengthening page per chapter, but presenting the text a snippet at a time enhanced the reader’s disorientation. I disabled the ability to undo and back up for the same reason.

To avoid being too annoying, I used almost no annotations or asides, where you click on a link to bring up a new page of text and then click another link to return to the original text. The story doesn’t loop back on itself, either. The only sections that break that convention are the two scenes in Fred’s house, since they involve wandering around and looking at objects.

(For another view on annotations, asides, and hypertext fiction, read Liza Daly’s article on interactive marginalia and her game Harmonia. Harmonia is an elegantly-designed story about utopian communities, education, and the way texts comment on each other and how we in turn comment on texts. Liza also provided keen insight into Will Not Let Me Go’s story and presentation, and helped me fix a number of HTML and CSS issues. Just, you know, remember to come back here when you’re done reading her essay.)

Smartening Up the Look
I wanted Will Not Let Me Go’s look to differ from the basic look of Twine and the Harlowe story format. That desire delayed my release by a year.

Most of that delay involved finding an illustrator. A lot of this was my fault. I wanted illustrations in a very specific style, akin to woodcuts. That limited my pool of illustrators. My budget further shrank the pool. I pulled together a style guide to communicate my vision, circulated it online, and found a great illustrator. Unfortunately, she couldn’t complete the project through no fault of her own. In the end I traced over pictures that my wife Misty, a visual artist, art-directed.

The style guide showed visual inspiration for my desired illustrations.

To help the story feel like it came from an earlier time, along with the simple illustrations, I added drop caps to each chapter’s beginning. I selected one font for the title and drop caps and another for the text body. I also replaced standard computer symbols like slab quotes and hyphens with their typographic counterparts like curly quotes and em- and en-dashes.

(An aside about Twine. There’s a lot I love about it. The story map alone is ridiculously great. Its visual representation of my story’s structure helped me shape that story. A writer at my writing retreat had written a Choice of Games story. When she saw the story map, her hands made involuntary “gimme” movements. But Twine 2 and Harlowe made using typographic symbols hard. I had to search and replace on their non-typographic counterparts, a fraught prospect since I needed to skip the XML attributes in the story file. Plus I had to re-do the search after edits. I ended up writing a Python script to help, and even then I had to make too many tweaks by hand.)

The Story’s Reception
I decided to enter the 2017 Interactive Fiction Competition in part to help people find my story. It’s been seven years since my last piece of interactive fiction, I’m far from a known person in the community these days, and I don’t have a built-in audience.

So I chose a year where seventy-eight other people entered, and I gave my game a title starting with “W,” placing it near the bottom of the ballot.

(If I enter the competition again, my story’s title will be 111AAAA+++GREAT GAEM.)

My expectations when I entered the competition were the emotional equivalent of the shrug emoji. Will Not Let Me Go is long,somber, non-genre, and puzzle-free, the kind of work that is traditionally a hard sell in the competition. IFComp readers and players favor shorter, more puzzle-filled games with a tone between light whimsy and broad comedy. Raygan Kelly best summed up the reaction I expected when he introduced the story on The Short Game podcast: “Here’s another Twine game that will make you sad!”

But Raygan had an overall positive response, as did a lot of people. Reviewers engaged with the story and gave thoughtful and pointed feedback. I placed 4th in the competition—for the third time, even—and took 2nd in the author-selected Miss Congeniality contest.

I appreciate everyone who tried Will Not Let Me Go, and for everyone’s thoughts about it.


This was a great game. Other people have mentioned it elsewhere, but I’ll reiterate how nice it was to have the progress bar. Kind of like the marginalia in Harmonia, my gut reaction is “let’s make it a standard.” It probably wouldn’t always be appropriate, but it seems like a good tool to have in the toolbox.

Thanks for doing this write-up!

I honestly didn’t register that was a progress bar! Maybe it’s due to my MS-like illness, which means I have to work hard to read text. So I was concentrating hard on reading all the way through. But I knew when I was near the end, just from the words. It was a devastatingly well observed piece. Thank you.

I figure you weren’t the only one to miss it. My beta readers (and Lynnea in her review) twigged onto it by about the third scene. I wish I’d come up with a better idea of how to communicate what it was beyond having it flash when it changed.

This is probably some voodoo programming magic, but maybe if you could actually animate the progress bar filling up and make the player watch it do so before displaying the next scene–at least maybe the first time it happens. Sort of like a “loading progress” bar.

I’ve gotten this question a few times in email, so for posterity: I took the game’s title from the hymn O Love That Wilt Not Let Me Go, one which the protagonist would likely have sung a lot.