This Week's Sponsor:

Winterfest 2024

The Festival of Artisanal Software


Interactive Fiction In The iOS Age: A Text-Based Love Story

It all started with an episode of “The Big Bang Theory”. Protagonist Dr. Sheldon Cooper sits in front of his laptop, his face distorted by heavy concentration. He’s playing a game. Suddenly, he starts yelling at Leonard, his roommate: “It says there’s a troll!” Leonard answers: “Type ‘Hit troll with axe’”. Silence. “Oh yes that worked!”, Sheldon yells with a wide smile on his face. A few episodes later, the title of the game is revealed: ZORK.

At that point, I was curious. I googled the title, and just a few minutes later I was lost in the world of Interactive Fiction (hence abbreviated as IF) which is the official genre description of games commonly known as text-based adventure games.

After hours of research, I found out that although the first IF games were released in the early ’80s and quickly decreased in popularity due to the rise of graphics-based games in the middle-80s, the genre is not dead at all. IF has a vibrant and very active community of gamers, journalists, story writers, and modern implementations of any kind to emulate and play IF games on any imaginable platform. There are even modern development tools and languages available to write your own IF games.

In this post, I will discuss all these topics: the history of IF, the community and its current state, and how to play and develop IF — with a focus on IF and Apple’s operating systems – Mac OS X and iOS. The following paragraphs will be full of external links leading you to download resources, information wikis about IF, interesting essays and blog posts about the community, and all kinds of software you could use to play and write IF.

What Is Interactive Fiction?

Interactive Fiction is the overall term for all kinds of text-based adventure games, one the earliest forms of video games. They are commonly played using a plain-text version of a command line as the game file interpreter (for all non-nerds: command lines connected to a keyboard were the main way of entering data into a computer before the invention of the graphical user interface in the early ’80s).

As the name suggests, Interactive Fiction games enable the player to interactively take part in a (written) fictional story (most of the time as the main character of the story). The story is written by the game’s author, and, starting somewhere in its storyline, the player enters it. He is confronted with a start setting from which he conquers the story by moving around, taking objects, and executing actions. To give you an idea of how the command line of an IF game interpreter looks like when you’re playing and IF game, I wrote a short IF story sample transcript with possible input commands and following output formats that push the story forward. “>“ characters mark the end of the already-told parts of the story and the need for your input to proceed to the next part of the storyline; these are the points where you interact with the story and define how it goes on by taking actions by yourself:

“You are in a dark, spooky forest. To the north, a narrow path leads through high trees. Birds are twittering silently. Looking to the west, you can see a slightly lighter area of the forest.

>Go north.

You stand in front of an approximately 10 feet deep hole dug into the earth. An old rope lies left to the hole, as if someone dropped it there for you.

>take rope

one rope: taken

>inventory

You’re inventory consists of:
a sword
a rope

>climb down

Climb down with what?

> climb down with rope”

By introducing many different locations, objects, monsters, and sometimes even other multi-layered characters with distinct personalities, you progressively dive into the story and get to know the end goal of your journey. Maybe you need to solve mazes and puzzles to free a loved one. Or perhaps you need to fight monsters and zombies to get to a precious treasure. Just like in “traditional” fiction published as books, the possibilities are endless. If you already got curious and want to start playing IF games, please take a look at this mind-map first. It was created by famous IF writer and personality Andrew Plotkin, and it explains the basic concept of commands, possible indicators, command abbreviations and more in a single image.

The History Of Interactive Fiction

In the introductory paragraph, I stated that the first IF games were released in the early ’80s. However, this is not completely true. The very first text-based adventure game, titled “Colossal Cave Adventure” was written and developed by William Crowther in 1976. Crowther went through an awful divorce and needed some distraction. He also wanted to keep the connection to his two children up and running. Like any cool programmer/father would do, he created a game for them — “Colossal Cave Adventure”. Originally written in Fortran and developed for the PDP-10 computer family, the game became a classic on several different systems. During the ’80s, it was translated into many different IF programming languages, including the most important one in IF history: ZIL, short for Z-Machine Interpreter Language.

The Z-machine is a standardized virtual machine (VM) environment to play and write IF. It was created and provided by Infocom, a software and game development company founded by four MIT staff members and students in 1979. Inspired by Crowther’s “Adventure” game, they built the Z-machine, a VM that could run on all different computer systems of the time, from the Apple II to IBM and Texas Instruments machines all the way through to the classy Commodore 64 and Amiga machines.

Apart from releasing many of these Z-machine compilers, Infocom led the commercial success of IF games in the early ’80s by writing games like ZORK I-III and an adaptation of Douglas Adams’ famous novel “The Hitchhiker’s Guide To The Galaxy”. From 1979 until 1982, IF games by Infocom and other smaller, independent distributors were the state of the art in electronic entertainment. The ZORK series was the company’s very first IF game suite, and ZORK I is widely considered as the most important and influential IF game ever created.[1] It is often used to introduce beginners into the world of IF — its introduction lines are the most often cited words in IF starter essays and manuals.

With the game market quickly shifting towards graphic games (which evolved out of the introduction of GUIs for personal computers e.g. on the original Macintosh in 1984) companies like Commodore or Atari more or less disappeared. Infocom was struggling too and experienced a lack of interest and decline in sales in the mid-80s. Just 7 years after it was founded, Infocom was taken over by Activision. Although the new owner heavily tried to promote Infocom games, profits continued to fall and forced Activision to abandon Infocom games and the trademark from their catalogue in 1989.

Although the rise of the personal computer with support for graphical user interfaces and the Internet brought IF software companies like Infocom down, it also paved the way for a new generation of independent IF writers. New ways of playing and writing Interactive Fiction games and distributing them easily as free downloads were born. Interpreters and emulators of very old machines for current computers – as well as modern and updated languages like TADS and HUGO – were developed.

The most important step for keeping IF alive in times of modern technology was taken by one of the most famous IF activists, Graham Nelson, in 1993: he created the Inform programming language, which is still the most popular language among IF programmers to create new games. Inform is a modern programming language which gets compiled into Z-machine files. It modernized the classic Infocom games and carried their gaming and development environment into the beginning of the 21st century. Andrew Plotkin took Interactive Fiction to a whole new level  in 1999 by creating glulx, a Z-machine-like VM that is portable to all imaginable systems, but that uses 32-bit data and thus can handle game files up to 4 Gigabytes large (as a comparison: ZORK’s ZIL game file is not larger than a megabyte).

This led to the most current development in Interactive Fiction: integrating sounds and graphics into IF games. Due to the possibility of having large game resource databases, IF writers created games with images and sound supporting the written settings. Many long-time enthusiasts say that this is not what Interactive Fiction is about — text adventures should be played using, well, text. However, for people who sought for a bit more diversion in the IF game landscape, this was a very welcome development. But regardless of what your opinion is about such developments, it does not change the fact that IF has apparently survived the revolution of the graphical user interface and still plays a role in today’s world of gaming.

Interactive Fiction and The Community Today

And so does its community. Not just during those approximately 10 years of Interactive Fiction being at the front of gameplay and storytelling, but also during the following years, a strong community of gamers, IF writers, and theorists has endured many highs and lows.

If you start playing IF and search for people with the same interests to chat with, good resources, and help of any kind, the intfiction forum is the perfect starting point. This website is the first and best resource for all things IF. Whether you’re stuck in a game and need help for a solution of the next puzzle, or you need tips to start writing your own IF game, intfiction.org is the place to go. There are threads about more or less everything and you will soon get to know many cool people to chat with.

If you search for new games to play, visit IFDb (the Interactive Fiction Database). Many IF writers publish their work on this website as free downloads. You can take part in the community not just by uploading your own games, but also by playing, rating, and reviewing your favorite ones using an account on IFDb.

Annual awards and competitions like the XYZZY awards and the IFComp keep developers active making new games. There are wikis, even dissertations about IF, available for free. The most impressive theory work is the “IF Theory Reader” (available as a free PDF download) edited by Kevin Jackson-Mead and J. Robinson, featuring essays written by the Who-Is-Who of Interactive Fiction; the book is also sold as a paperback version. Especially in the U.S., many IF gamers meet in real life through local organizations to chat and play the newest games together. To dive in deeper into the multiple ways to take part in the Interactive Fiction community (both online and in real life), go and check out this extensive post from Emily Short.[2]

This was a rough overview of how Interactive Fiction came to life as a vibrant genre of computer games, how it has changed throughout history, and what its community’s current state looks like. The genre is based on a very active community with many enthusiasts and other interesting people to meet, play, and chat with.

Let’s now move on to the part of this story many of you likely have waited for: how can you play these games on Apple devices?

Playing Interactive Fiction On Your Mac

As you might have already noticed, Interactive Fiction can be written, and therefore played in many different languages, machines, and compilers. Today, I’d like to cover the three most interesting ways to play IF: playing games by running a server-based interpreter in your web browser, playing IF on your Mac using software interpreters, or playing IF on your iPhone and iPad using the iOS version of the popular Frotz virtual machine.

The two most popular VMs for playing Interactive Fiction games on the mac are Zoom and Spatterlight. Zoom is a Z-machine-only interpreter, and unfortunately, due to its PowerPC architecture, it can’t be run on the latest versions of OS X; Spatterlight supports multiple IF languages including Z-machine files, HUGO games and many more, but it’s not Gatekeeper-ready, meaning you’ll have to tweak your security settings to run it (see the Gatekeeper section of our Mountain Lion review). A full list of all available interpreters (including the Gargoyle interpreter, which is very recommended for beginners) can be viewed here.

Mac users can also play IF games using an easy but probably unsatisfying alternative: web browser implementations. Many IF writers and enthusiasts made browser versions of their own and classic games. ZORK I, for instance, can be instantly played when loading this website. The biggest disadvantage of such web versions of IF games is that it is very difficult, sometimes even impossible to save games for restoring them later.

Playing Interactive Fiction On Your iOS Device

Fortunately, there is an easier option available: playing IF games on iOS. At this point, before diving in to the software available to play IF on your iPhone and iPad, I would like to thank David Griffith for his help. David is a very active and well-known programmer in the world of Interactive Fiction, and without him I wouldn’t have been able to write this post. He told me many interesting, sometimes weird stories about the history and the community of Interactive Fiction. In the late ’90s he created a “megapatch” of all existing parts and patches of the Frotz Virtual Machine (originally written by Stefan Jokisch between 1995 and 1997) for playing Z-machine-based IF games. His Frotz megapatch can be ported to any platform besides Amiga, MS-DOS, and UNIX — the systems Frotz was originally written for. Craig Smith took the opportunity and created a Frotz port for iOS in June 2008. Four years later, Frotz for iOS is still the best way to play IF on your iPhone, and, since 2010, on your iPad as well.

Frotz for iOS (free download on the App Store) combines a game file manager, a Z-machine interpreter and command line output, and download resources for getting new games in a single app. All your IF games get listed up in the “story list” panel and can be launched from there. Each game has a description window (which appears when you select one you want to play). In this description window, Frotz provides you with a short content summary as well as a review of the game fetched from IFDb.org (if there’s any available) to help you judging whether the game you are about to play can suit your taste.

If you store your IF games on your desktop computer you can use a simple web interface to copy your stored game files onto your iOS device via your local network. Using an in-app browser, you can also download games directly in the app from developer websites or IFDb. In the browser’s bookmark section you also find 11 links to various Interactive Fiction resource websites like IFComp or an INFOCOM tribute page. You can also bookmark your own favorites.

When you have downloaded all your IF games into Frotz, you can start playing them with a single tap. Frotz is able to save your game for later relaunches. After you started a game, the command line will take over the screen. Your current location within the story’s setting as well as your score (you earn points for important achievements) and the amount of moves you already took (the faster you finish a game, the better you are) are displayed in a narrow panel right below the title bar. You control the game using the on-screen keyboard. This is also the reason why the iPad is better suited for playing IF on iOS than the iPhone (Frotz is a universal app running on both devices; see iPhone screenshots below): since the keyboard covers way too much screen space on the iPhone, you often need to scroll down for a long time to finish reading newly appeared text after you typed in a command. Additionally, it’s hard to go back in the storyline to check past happenings which might help you solving your current problem.

Frotz for iOS understands all standard shortcuts of common commands like “n” for “Go north” or “i” for “open inventory” (you usually carry a bag with you for storing found objects). You can even look up all commands using a small in-app documentation right above the keyboard which appears when you tap on the blank input line. This is especially useful when a game features specific commands.

If you’re playing a very complex IF game, the best way to follow the storyline is to make notes in form of mind-maps or lists. Frotz supports the latter version of taking notes. Swipe left and the command line will make room for a note panel. In this window (using an awful typeface) you can keep track of characters, settings, aims, or whatever you consider important to advance in the story by typing notes with the on-screen keyboard.

Just like you would expect it from an independent, open-source app, Frotz features an extensive amount of settings and geeky options to make your journey through IF more enjoyable. Tap on the information button in the title bar to bring up the settings. Here, you’ll find an extensive documentation about Frotz, its purpose and new features, as well as a well-written, short introduction into the world of IF and how to play the games.

Using the preference panel below these documentations you can modify every single part of the command line window: you can define the background and text color using a rainbow color selector, the story font (you can choose from over 30 different fonts), and the font size. You can also choose if Frotz can complete your word commands and whether you can edit the story information or not. But the best feature of them all is the app’s Dropbox integration. Using a simple login panel, you can link Frotz to your Dropbox account to easily upload your saved game status data and thus share them with other iOS devices or computers to always have your newest progress available to be continued on all of your devices.

As you can see, Frotz is the non-plus-ultra when it comes to playing Z-machine games on iOS. Because it mostly renders text, the command line window looks gorgeous on a Retina display making playing with it even more fun. There are currently no ways for playing HUGO or TADS games on iOS, which in my opinion is not as bad as it sounds, since there are probably way more Z-machine-based games available than your time to play these games. Over the years of the existence of iOS, another way of publishing IF games for iPhone and iPad has evolved: distributing single games as standalone apps with special features.

Andrew Plotkin pioneered this distribution method. You can view his full portfolio of IF games here (of which you can play almost all in a web browser version). The portfolio includes his iPhone games, most prominently The Dreamhold (an IF tutorial game perfectly suited for beginners) and My Secret Hideout, which takes a more experimental approach to IF gaming. He’s actually selling some of his games for a price (e.g. My Secret Hideout) while the majority of games you can play with Frotz are available for free. Plotkin’s software agency – called Zarfhome Software Consulting – also distributes other interactive fiction works like Meanwhile, an interactive comic by Jason Shiga. There are also individual game available based on other languages than ZIL, like the Quest-based game The Things That Go Bump In The Night.

The two big advantages you have when publishing your IF games as standalone apps are exclusiveness and the possibility of adding custom features. When you have the confidence of publishing your games as an individual app and not as a small part in the mass of games available at IFDbor other download resources, it gets a kind of exclusive touch. It stands out of the mass. Secondly, you are able to add interesting or even needed features to it that universal emulators like Frotz do not offer. A good example for this is the visual map guiding the player through the storyline in My Secret Hideout and The Dreamhold (see screenshots below).

Of course, it is way more comfortable to let Frotz organize your games without having the hassle of dealing with several different interfaces and options in a standalone IF game. But in the end, the most important question is not whether you like the interface or game options, but the game itself. I personally recommend the following way of discovering IF games: search IFDb on your computer (you can filter by genre, tags, authors etc.), and check if there is a web browser version of the games you’re interested in. If yes, play it first. If the game catches your attention after just a few lines and you already want to know how the story continues (and ends), download it to your computer and load it into Frotz on your iPhone or iPad using your local networks. If you are not feeling curious about the story at all, do yourself a favor and don’t force yourself by continuing it. Just stop playing and search for better ones. There are so many good IF games out there — don’t waste our time playing the bad ones.

Writing Interactive Fiction On Mac OS X

You have a great idea, and you want to create one of the good IF games by yourself? Well, then go ahead and do so. There are many ways to create Interactive Fiction, suited for all programming skill levels. You can choose to write for any platform you can imagine: from writing nerdy stuff such as MS-DOS or CP/M assembly language code interpreted by an emulated compiler or on a real vintage machine up to very modern, IDE-based programming languages with simple syntax. Today, I only discuss modern software, since it is way easier to learn and deal with for “younger” programmers. Apps, even more important, run on the current versions of OS X.

As I already wrote in the history section, Graham Nelson created Inform, a Z-machine-based IF programming language in 1999 to move IF programming into the 21st century. Currently, there are two versions of Inform available as the standard way to write Z-machine-based IF games: Inform 6 and Inform 7. They are both popular since Inform 7 features a radically different approach to writing code compared to Inform 6.

Inform 6 is basically a “normal” programming language. Its coding environment consists of a compiler (which is also used in the Inform 7 system) and a code library to fetch commands and functions from. The code has to be written in a standard text editor. You can get all relevant software and information from the Inform 6 software website. Nelson wanted the syntax of the commands in Inform 6 to be as natural as possible. However, Inform 6 still heavily relies on basic programming concepts like functions, “print”-outputs, if/then loops, and so forth.

Inform 7 is radically different from Inform 6. First of all, it is offered as a complete IDE (short for “Integrated Development Environment; comparable to Xcode) with a code editor, debugging capability, an integrated compiler as well as a complete language documentation — all in a single window (and with an icon that looks like an ancient version of Xcode with a map instead of a blueprint). Secondly, its approach to writing IF is even more radical than that of Inform 6. Although in most IF programming languages a lot of coding is involved besides the writing part, all creators of IF games see themselves as writers. Inform 7 is not real coding: it really feels like writing. To create a new room setting, you simply need to type “XYXY is a room”. The created rooms are visualized in a graphical map to display the relations of the different locations. This style of writing is coherently applied to all features, from simple to complex ones. There are no real programming commands, no special phrasing – just the English language.

This involves many risks though. Like AppleScript, a simple way of writing code makes it more difficult to create complex relations. In Inform 7, many actions are bound to the borders of natural language like interpunction and grammar. There is no simple way of including mathematical functions and complex programming concepts outside the world of natural language behavior. Thus, the known concepts of old-established programmers have become obsolete with Inform 7. While the language is perfect for beginners, it offers more boundaries than new possibilities for professionals who are used to develop IF games (or software as a whole) in the “traditional” way. For such writers and programmers, I highly recommend other languages than Inform 7, like Inform 6 (for Z-machine games) and HUGO or TADS for other interpreters and features.

But if you are a beginner like me, try out Inform 7. As a preparation for writing this post, I tried out learning the basics of Inform 7 myself. After two hours, I managed to create a world of 4 rooms (a fictional recreation of the house I live in) that I can actually walk through and perform actions in like stopping a running water-tap. I could even export it as a Z-machine game file, transfer it into Frotz on my iPad and “play” it there.

The Inform 7 website is a perfect entry into the world of writing Interactive Fiction. It features screencast manuals, essays about the history of IF programming, links to other guides and documents, as well as a downloadable version of the complete language documentation. You can download it for free from the Inform 7 website.

Wrap-Up

This was just a short glance on what Interactive Fiction has to offer. Even over 30 years after the first IF games were published, it is one of the most interesting, exciting genres of digital gaming. Taking a glance at the community was very enlightening, and with David Griffith I found a very intelligent, elaborate man I had some very rich conversations with that clearly expanded my view on gaming and computer history as a whole.

Writing Interactive Fiction is pure passion. Playing the games with Frotz often felt awesome just because I realized how much passion and hard work is needed to create a really good IF game. I have the highest respect for every single IF author who managed to finish a complete game full of his own ideas. You don’t just need writing skills for writing IF, but also programming skills and an immense amount of patience.

Looking at web versions running smoothly in modern web browsers, desktop emulators like Zoom, and especially Frotz for iOS, I believe IF games will still play a role in gaming throughout the next decades. Modern technology and the Internet did not kill Interactive Fiction: they actually made the genre and its community stronger.

I really recommend taking a look at what IF has to offer. Maybe download Frotz for iOS and try out one of the games installed by default. Or visit IFDb and get stunned by the immense amount of different stories and novel genres IF games have turned into. Regardless of how you will dive into this exciting world of text adventure games — if you read this whole post all the way through these last remarks, you’ll also have the patience and curiosity needed to play IF.


  1. The paragraph header image “Zork” by Marcin Wichary shows ZORK I running on a Kaypro II computer, a portable CP/M based computer built in 1982. ↩︎
  2. Emily Short is one of the most important figures in modern Interactive Fiction. She has published many games, both as web browser versions and available for download, as well as many posts and learning resources about writing and playing IF on her personal weblog.↩︎

Access Extra Content and Perks

Founded in 2015, Club MacStories has delivered exclusive content every week for nearly a decade.

What started with weekly and monthly email newsletters has blossomed into a family of memberships designed every MacStories fan.

Learn more here and from our Club FAQs.

Club MacStories: Weekly and monthly newsletters via email and the web that are brimming with apps, tips, automation workflows, longform writing, early access to the MacStories Unwind podcast, periodic giveaways, and more;

Club MacStories+: Everything that Club MacStories offers, plus an active Discord community, advanced search and custom RSS features for exploring the Club’s entire back catalog, bonus columns, and dozens of app discounts;

Club Premier: All of the above and AppStories+, an extended version of our flagship podcast that’s delivered early, ad-free, and in high-bitrate audio.