One of the things I love the most about writing is finding the rhythm of a story, whether it’s in the voice of a character, the flow of the words around them, or the (hopefully) seamless transition from one scene to the next. So when I decided a year or so ago to write a novel-length choose-your-path game with Choice of Games (and, later, to write a short interactive piece which appeared in sub-Q), I was in for a challenge. Not only would I have to learn two new languages (ChoiceScript and ink) to write my stories in, but I would also have to shift the way I approached the writing altogether.
Interactive fiction, even when it is tightly scripted by the author, gives some control of the narrative to the reader—my job as a writer was less to guide every step the reader/player took along the narrative path and more to make sure that no matter what path they traveled, it was a satisfying and engaging one. So how to make that happen and still tell the story I was interested in conveying? I discovered that, for me, the best strategy was to focus on having a strong and cohesive structure and let the narrative take different shapes within it.
In my Choice of Games work, this approach means having set pieces in each chapter—large events or goals that affect everyone in the game, no matter what choices they’ve made thus far. I grew up watching soap operas and I think of set pieces like the events they would have during “sweeps weeks,” when Nielsen measured ratings—a tornado comes to town, a killer is on the loose, the annual charity ball is in danger of being cancelled, etc. Not all of my set pieces are so dramatic, but in each one, any character in the world of the story will have some role to play or goal to achieve. The interactivity comes in why it matters to them, how they go about it, and, usually, what they choose to do at the end – all of which are tracked separately but feed back into the main story.
Here’s an example using the tornado set piece: if a tornado descends on one of the farmhouses in town and our player character (let’s say our player has decided to be a girl named Dorothy) chooses to go out in the storm (vs. hiding in the cellar) in order to warn the townspeople about the danger (vs. to save her dog Toto) because she wants to be mayor one day (vs. out of the goodness of her heart), each of those decisions would be tracked a little separately, on top of the actual difference in the story text in the description of her frantic run towards town as opposed to her time crouched in the cellar. I might track, for example, whether Dorothy was outside or inside when the storm hit, how her relationship with Toto suffers slightly because she didn’t try to help him, or her choice of ambitiousness instead of altruism. Ultimately, whatever choices our player has Dorothy make in that moment, she’ll end up in Oz – but depending on these and other choices, she might land in a different location, have Toto not warn her later on when the flying monkeys are coming, or see the famous Glinda the Good Witch more as a rival for power than a potential helper.
As the writer, my job in all of this is to create all of those decision points and to give opportunities for them to matter in the story going forward. If I decide to track Dorothy and Toto’s relationship, I need to make that a part of the story, so that players can experience it being either good, bad, or neutral, depending on the choices they’ve made. If I track ambitiousness as part of the player character’s personality, I need to not only have opportunities for them to try to use that ambition to achieve their goals (and either succeed or fail in response), but also create opportunities in the dialogue of other characters or the narrative as a whole for that ambition to play a role.
Luckily, this isn’t quite as complex as it seems—for my Choice of Games game, I’ve already decided which personality and relationship variables I will be tracking at the start of the game, along with any variables that will affect what happens in the end of the game or affect the world as a whole (like, for example, Dorothy’s popularity with the citizens of Oz or how much turmoil there is in the kingdom). In each chapter, my main job is then to create an outline that establishes what the set pieces are within that scene and details the plot points that lead into and out of that set piece. In our tornado scene, for example, plot points leading up to the tornado might include a tornado warning, establishment of Dorothy’s relationship with the workers on the farm, her encounter with a mean teacher, and the impending arrival of the storm. Each of those plot points will have a few choices within it that give the player the chance to make smaller decisions that will add up over time to a big impact on their actions, personality, relationships, and the world as a whole.
One of the things I love the most about the Choice of Games model is that there are no wrong decisions per se—no chances to turn to page 46 and suddenly find out that the door you picked leads to the vacuum of space. Similarly, personality traits are never about choosing good vs. bad—they’re more like choosing introvert vs. extrovert or risktaker vs. cautious—and no matter what the variables look like at the end of the game, they are expected to present a satisfying and non-judgmental conclusion. That said, it’s always fun to shake things up, which is why I took a somewhat different approach to my shorter interactive fiction piece, Thanks for the Memories.
In Thanks for the Memories, the player takes the role of the main character, who wakes up with no memories (not even of her own name) and has to buy them back to understand more about who she is and how she got into this situation. It’s not too complicated of a concept story-wise, but to turn it into a finished piece I had to follow a few beginning steps that would serve anyone who wants to write interactive fiction well – figure out the best story and interactive structure for your piece and then choose a language/tool that fits that structure (and that you’ll actually use).
(Note: As with traditional prose, one of the best ways to understand and get great ideas about interactive fiction is to experience it – check out IFDB, places like sub-Q Magazine, Choice of Games, and the entrants in major interactive fiction competitions like IFComp and The Spring Thing for ideas.)
Figuring out the story and the structure. There are many different structures and formats for interactive fiction – choice-based stories, games that take typed input from the player and turn it into an action for the game to respond to (also known as parsers), experimental hypertext approaches where you replay the same scene over and over but can click different things each time, and so on and so forth. I had to keep my eyes on the prize – focus on the core of the story that I wanted the player to experience (experiencing different memories to learn more about the life of the main character) and the primary reason that I was using interactivity to explore that story (it meant that the memories could be experienced non-linearly and that the player had to choose which ones to read through).
With choice as such an important element, for example, I knew I wanted the interactive elements to be presented as straightforward choices on the bottom of the screen. (If instead, I had wanted the player to feel like they were lost in a series of disjointed memories that they had to piece together, I might have had the player select words within one snatch of memory that take them to another.) Similarly, because choosing one memory after another was a key part of my idea, I had a good idea of the structure I needed – a central frame story that gave the main character a way to get access to memories and then come back to the main narrative (a simple version of the loop-and-grow structure mentioned in this great round-up of patterns in choice-based games).
From there, the rest of the structure was developed by asking “how” questions of myself to and then answering them – “how does the player pick the memories” led to the development of a Alexa/Siri-like device for the main character to interact with, “how does someone without memories know what to ask for” became the development of keywords that the main character recognizes during either the main narrative or other memories and the player can then decide to explore, “how do I keep narrative momentum going” became the addition of an outside time pressure in the frame narrative. I’m a pantser by nature, so I made a lot up as I went, but by staying true to my original intent, I was able to keep my later decisions and additions in line with the story I wanted to tell, even when I was deep in the code.
Choosing the right language and/or tool. Speaking of code – there are a lot of different tools and languages for creating interactive fiction. Twine is probably the most popular for choice-based fiction – it requires very little coding language and almost resembles Scrivener in its “put text on index cards and then link them together” approach, but can be used to do a TON of very sophisticated things. I’ve used it a bit, but the languages I am most familiar with personally are ink (which I used to write Thanks for the Memories) and Choicescript (the language developed by Choice of Games for their games). Both are great (and free!) – ink can track every piece of text your player ever sees, which was key for me in being able to subtly change the text of the Thanks for the Memories based on the memories the main character has experienced, and Choicescript is wonderful for keeping track of statistics and making sure that every choice the player makes has a long-term consequence.
Really though, the best language is the one you’ll use. Most choice-based languages will have a lot of tools in common – the ability to define and use variables (i.e. set the color of Riding Hood’s to red and her name to Sally), if/then statements (i.e. if Sally the Riding Hood is more than 20 minutes late, the wolf has already eaten grandma), and the ability to link a choice to a new piece of text. While each has things it excels at and others it does a bit less intuitively, the only way to really see which one works for you and your story is to read up on the languages, play games made in them, or (my favorite) get in there and get your hands dirty! There’s no real cost to most interactive fiction tools, so jump on in! (Note: I have never written a parser, but have heard great things about Inform as a tool to create it if that’s what you are most interested in.) And that was just the beginning. As much fun as it would be to go into things like which types of interactivity (conditional statements, variables, state-tracking) to use in which story situations, what to do when your code just isn’t working, and approaches to testing, there just isn’t enough space or time. I’ll probably chat about this a bit more in the future on my very new Patreon, but really the person to go to for epic wisdom about interactive fiction and the #1 person on my to-read-and-listen-to interactive fiction list is Emily Short. She does game reviews, reviews of books about games, in-depth articles on approaches to IF, a round-up of places to meet up with other enthusiasts, and more. Check out her work and her writing and most importantly, give interactive fiction a try!
Have you tried writing interactive fiction? How did it go for you? We want to hear more from you! Check out the discussion post for this blog entry on our forum.