informa
Blogs

How to Start Writing Interactive Fiction

An introduction to finding resources and designing your first piece of interactive fiction (or text adventure).
Photo of a wooden door in a stone wall.

A Zork-ish door by Marco Antonio Reyes from Pixabay (with shadows added by the author, for zorkification effect).

Interactive fiction (IF)—or text adventures—is a category of computer games that communicate with the player through text. Instead of ultra HD graphics, you get refined descriptions. Instead of using a game controller, you advance by typing commands or clicking on hypertext options.

Screenshot from Infocom's Enchanter, demonstrating an example of parser interactive fiction, with commands like 'examine oven,' 'light lantern,' 'inventory,' and 'read spell book.'

Excerpt from Infocom’s Enchanter (1983) as played on Lectrote, a modern IF interpreter.

Screenshot from Andrew Plotkin's Spider and Web.

An excerpt from the beginning of Andrew Plotkin's Spider and Web (1998).

Screenshot from Emily Short's Bee.

The introduction of Emily Short's Bee (2015).

If you have never played IF, you can visit the Play section of the People’s Republic of Interactive Fiction website or pick any title from the Top 50 of All Time list. You will be amazed by the quality of writing and the extents to which this art has developed through the pens—ehm—keyboards of its masters.

Why IF

So, why would IF be something you might want to get your teeth into? What is so special about an interactive story?

For the reader, immersing oneself into a piece of interactive fiction is a special experience that marries reading with playing. IF works are games and their readers are actually players. While a book can stir its reader’s empathy for its protagonist, an IF game has its reader become the protagonist.

It’s a unique experience for the writer, as well. There is something mischievous about writing a piece readers will have to actively explore. This joy of hiding clues for someone else to discover is unique to game design. (Any parent who has prepped a treasure hunt knows what I mean.)

And it can be done by one person, within a reasonable amount of time. While other games require a team juggling multiple departments (script, programming, graphics, animation, sound, and music—and project management for all of the above), interactive fiction relies exclusively on two pillars: storytelling and implementation. Neither of the two are to be underestimated, but they are not overwhelming.

Today, it’s easier than ever to create a piece of interactive fiction. There are various systems you can work with and a passionate community to offer you advice.

It’s up to you to take the leap of faith.

Write IF

Choose a system

Every medium has its particularities and IF is no exception. When writing an interactive story, the system you use heavily influences the form. To mention the most famous, systems like Inform 7, Quest, TADS, and Adventuron produce parser games (the ones where you type commands like “TAKE APPLE,” “EAT IT,” etc), while Twine, InkleWriter, Undum, and Ren’Py produce choice-based games.

Keep in mind that even systems of the same category produce games with considerably different feel and mechanics. To choose among the systems, study each one’s example games and tutorials and go for whatever inspires your creativity.

Note: scripting skills are another factor; some systems heavily rely on code, while others use visual scripting.

Screenshot from Arcweave's environment, where player commands like 'ask the witch about' several subjects are represented with tree diagrams.

Player commands visually represented on Arcweave's diagrams.

This article’s diagrams are made with Arcweave. It is one of the easiest and most writer-friendly apps for visually designing and prototyping games. You can use it to structure your IF story, regardless of the system you will eventually choose to implement it with.

Summon the idea

Where do ideas come from?

There is no magical answer to this question; only prompts, some of which you’ve probably heard already: read the papers, eavesdrop on diner conversations, carry a notebook, keep a journal, dig deep into your own psyche, write what you know, write the game you’d want to play, etc.

And they are all true. There is no wrong way to get ideas.

Screenshot from Arcweave, showing part of a murder mustery plot diagram.

One of the most beloved genres has always been the murder mystery. Since audiences know its conventions inside-out, the challenge is to give it a fresh spin.

You can also start from the story’s genre. Would you like to create a fantasy game like Infocom’s Zork, a murder mystery, a family comedy, an action-adventure, or a psychological horror? Get inspired by stories and authors that you are jealous of.

Sometimes, the audience determines the story’s subject. Is it a game for kids or strictly for adults?

Whatever the subject, there is one thing to consider: keep it short and simple. Since it’s your first game, you don’t want to get overwhelmed and quit. You want to make something that you will finish and—moreover—something that will inspire you to continue making games!

Structure the idea

Try to summarise your story in one sentence, in regard to what the protagonist wants. In essence, this is your story:


A [protagonist] must [achieve a goal] or [dire consequences will befall upon them].

There are more, of course, like character psychology and inner growth, but you will get further by starting from the outer motivation.

Is your protagonist trapped, hunted, or transformed into a frog? Are they after winning someone’s heart, attention, or approval? Are they a villain themselves, plotting against some unsuspecting NPC?

What do they want? What happens if they don’t get it? Find that and build your story around that.

Skip to the end

The beginning is the right time to think about the ending—or rather the endings, since IF stories often have multiple outcomes.

Do you think that’s a jump, going straight to the end? Absolutely.

It is also a quick way to test your story: if you can’t come up with a meaningful and satisfying climax, then you should rethink your whole idea. You want your story not only to start well, but also to end with a grand finale.

Moreover, games often have multiple endings the player reaches through choosing different paths. Those also have to be meaningful and satisfying.


Take your premise and brainstorm all the possible endings it could have. Then pick the best ones.

And let’s not forget all the horrible death/failure endings that will cause you to RESTORE or RESTART.

Screenshot from 'Anchorhead,' showing one of the death scenes. The description is 'With a sudden shriek, an enormous blast of steam erupts from the pipes above your head, engulfing you in a cloud of superheated vapor well in excess of 300 degrees Fahrenheit. The pain is intense but mercifully brief as your skin scalds instantly and peels from your body like cheap wallpaper. You have died.

One of the innumerable and excruciatingly painful deaths scenes in Michael Gentry’s Anchorhead (1998).

Outline it

The end doesn’t justify the means. After picking your endings, you need to reverse-engineer the middle: what player decisions could push the story towards one ending or another?

Create a rough sketch with pencil on graph paper. Don’t worry about making a mess. At this stage, your brain needs making a mess.

Photo of a flowchart made with pencil on graph paper.

Pencil first! Take a break from the screen. Create a mess and clean it up later.

You can edit and refine your diagrams on any flowchart-creating software. If you use Arcweave

Screenshot of a plot flowchart on Arcweave.

Refining your plot diagram on Arcweave.

… you can actually make your outline interactive and run it on its play mode:

Screenshot from Arcweave's play mode function.

The “Suspects” element from the example above, as rendered on Arcweave’s play mode.

Puzzles or no puzzles

Back in the days of Infocom, people paid good money to buy text adventures, so games had to be hard to beat. (Infocom’s Hitchhiker’s Guide to the Galaxy cost almost $40 in 1984, the year of its release. That’s more than $100, today!) Having tough puzzles and labyrinths was part of the deal.

Today, interactive fiction doesn’t have to be puzzle-heavy. On the contrary, making impossible puzzles can be off-putting for many people. Players enjoy the story more than anything else, asking for well-shaped characters, world consistency, and original points of view.

Having said that, a few good puzzles never hurt anybody. In a very short game, you hardly need more than a couple of them. Just make sure they fit the narrative.

Write the walkthrough

An enjoyable way to start with the story is to write a walkthrough mockup, simulating what the player will experience when playing the final game.

For example, in a parser game walkthrough, you would write player commands and parser responses. In theory, the player can try anything, so the more responses you predict (and default responses you avoid), the more enjoyable the game will be:

> SEARCH CHEST
In the old chest, you find a scroll!

> EXAMINE SCROLL
An old parchment, reeking of magic.

> EAT SCROLL
You absent-mindedly bite on the scroll...
Then, you reconsider. What if you transform into something?

In a choice-based game, the player has specific options to choose from, so you can simply write those and pretend you follow one of them:

You continue digging, until your shovel hits wood.
- TRY BREAKING THE WOODEN SURFACE
- EXIT THE GRAVE

> EXIT THE GRAVE
"Sod it," you tell yourself and start clawing on the moist
walls of earth that surround you, trying to get back to the surface.

Implement it

If you have programming skills, you probably already know which way to look for your scripting language of choice. If you don’t, you should look for visual tools to help you.

All you need to start with is an app that visually represents the plot’s flow, produces options for the player, assigns & checks variable values.

For example, let’s say the player starts in a locked room. They can try opening the door or they can search the mattress.

* OPEN THE DOOR → CHECK: does the player have the HAIRPIN?
	* RESULT: YES → OK, then, the door opens → Next Section
	* RESULT: NO → The door remains closed → Back to Start

* SEARCH THE MATTRESS → You find a HAIRPIN.

For the game to store the information that the player has the hairpin or not, it uses a variable, e.g. has_hairpin.

Here is how we can visually design this short scene in a diagram, on Arcweave:

Screenshot of plot's flowchart from Arcweave.

Zooming in a little...

Screenshot of plot's flowchart from Arcweave.
Screenshot of plot's flowchart from Arcweave.

In Arcweave, conditional (if/else) statements get their own diagram nodes, called "branches."

The options available to the player depend on the value of the has_hairpin variable. For example, the player gets the option to search the mattress only if they don’t have the hairpin, that is if has_hairpin == false, which is the same with not has_hairpin == true.

After finding the hairpin or failing to open the door, the game returns to the initial element, titled Start: Cell. Otherwise, the game allows the player to proceed to the next section, titled Corridor.

This was an example of a simple puzzle implementation. You can use similar logic to create all your game’s scenes, puzzles, or dialogue trees.

Share your work

Test it

As its writer, you are also the game’s first playtester. A word of warning: however conscientious they may be, your testing efforts will never be enough. You have to let other people test your game before you officially release it. “Other people” may include friends and family, but their input—bless them—probably won’t be enough, either.


For testing, you have to stick your head out. Show your work to people who know about the game-design process and its pitfalls, aka bugs.

The Interactive Fiction Community Forum has a specific room where you can seek out playtesters. Start a new thread and briefly describe your game. Then, contact those interested with a private message, sending them the game file or a confidential link, to play it online.

Don’t be shy; the community is very supportive to everyone, regardless of their level of experience. Be nice to people and give back from your own experience, when you have some.

Publish it

When you’ve thoroughly tested it, you can publish your game on itch.io, your website, social media, or the IF Community Forum.

Before you open your game to the public, though, take a deep breath. If you receive good feedback during the testing, you may consider submitting your game to one of the several annual competitions for IF works. And there are plenty of them.

The IF community is world-wide and buzzing. If you get hooked with IF, you will find that engaging with its community as a player, tester, or writer is a deeply rewarding experience.

Conclusion

Writing interactive fiction is a unique and satisfying process. It requires a lot of care and attention, as well as testing and rewriting—but what kind of writing doesn’t?

With its particularities, it can be a powerful means of self-expression. For many, it’s a passionate hobby. For some, it has even led to careers in the game industry.

If you haven’t tried writing IF before, who knows? Maybe it unlocks a door inside you that you didn’t know existed.

And who knows what awaits to come out…


Further material

For more information on interactive fiction, you can dig deeper towards various directions. Here are only a few that you can start from:

Gameshelf’s episode on Modern Interactive Fiction, by and with Jason McIntosh.

Get Lamp, a 90-minute documentary by Jason Scott, currently found on this semi-unofficial YouTube link.

Writing IF, by Emily Short.

IFDB: the Interactive Fiction DataBase.


Giannis is a writer and story consultant focusing on subjects of narrative structure, theory, and technique. He is affiliated with the Arcweave brand.

Latest Jobs

Infinity Ward

Woodland Hills, California
11.3.21
Sr. Multiplayer Design Scripter/Programmer

Disbelief

Cambridge, Massachusetts
11.3.21
Jr. Programmer

XSEED

Torrance, California
11.3.21
Head of Marketing
More Jobs   

CONNECT WITH US

Register for a
Subscribe to
Follow us

Game Developer Account

Game Developer Newsletter

@gamedevdotcom

Register for a

Game Developer Account

Gain full access to resources (events, white paper, webinars, reports, etc)
Single sign-on to all Informa products

Register
Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Subscribe
Follow us

@gamedevdotcom

Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more