Interactive Fiction

Rattus Sarcina Digitales


So I’m going through this stack of CD-ROMS that are all labeled “archive” trying to figure out what’s on them and whether I still need it. This is akin to cleaning out the hall closet and finding a bunch of boxes marked “video tapes.” Since I am basically a packrat, I have a lot of boxes marked “video tapes,” and a lot of CD-ROMS marked “archive.”

Back when harddrives didn’t have much space, and the latest computer programs were in some sort of competition to see which could fill up the remaining space faster, it was common to move the files in your download folder (or your documents folder) to another storage device. This orignally meant a “floppy disk” that could hold, at best, 1.4 megabytes–yes, you read that right, most of the files on your phone wouldn’t fit on one. When the CD-ROM came along, most people jumped for joy because the average CD-ROM could hold 650 megabytes, while the average harddrive was around 500 megabytes.

The point is, a somewhat frequent operation I performed on my computer was to “archive” anything I didn’t really need. Most of what I archived were programs I had downloaded from the internet, tried once or twice and uninstalled. I kept the install file, like any packrat would, because “I might need it someday.”

So in going through my archive I found about 16 old versions of Java, a ton of different versions of Opera, Netscape versions back to 1.0, every version of Mosaic, old copies of Internet Explorer (before it was integral to the operating system), and even a copy of Cello. I found web development programs that don’t even run on the latest version of Windows. I even found old copies of StarOffice (5.1 and 5.2).

Now, the problem with packrats is, we have to save everything we touch because “we might need it one day.” Then, when we run out of storage space, or we get tired of staring at a pile of dust-covered CD-ROMs, we start going through the stuff we’ve saved. It is at this point that we recognize that we will never need this stuff again, so there’s really no reason to keep it. Our finger goes for the DELETE button, but we stop short of actually pulling the trigger. We suddenly have fond memories of installing Netscape 2.0 on our computer and watching the internet spill into our lap. We fondly remember how rebellious we felt when we installed StarOffice in the shadow of the Mighty Microsoft Headquarters. Our finger refuses to go near the DELETE button now, and instead it works feverishly to try installing every program just to see what happens.

Luckily, for me anyway, the next archive disk held some real gold. That disk contained most of my old DOS games, ready to play as if I was looking at my old hard drive. Of course I couldn’t play any of them on a Windows 8.1 machine. I could go down into the basement and pull out the Windows XP machine, or even the Windows 98 machine, but that would be too much work. It was far easier to spend a couple hours setting up DOSBox with a Windows 3.11 installation and then taking a nostalgic trip to a DOS prompt. Strictly speaking, I didn’t need the Windows 3.11 install for the games, but I did need it for Seize the Day (another particularly nostalgic piece of software found in my archive).

The first game in the folder was called ADVENT. The name is short for “Adventure,” which is short for “Colossal Cave Adventure.” It was written in 1975 by Will Crowther in Fortran for the PDP-10 mainframe computer. The version in my archive was re-written in C so it could run in DOS. ADVENT is the first in a long line of text-based computer games that are now referred to as “interactive fiction.” As soon as I started the program, I remembered playing it in the dim past. After half an hour, I remembered why I only played it a couple times. You see, ADVENT works by displaying some text describing where you are. There isn’t much information given about what you’re supposed to do, or how you go about doing it. That’s part of the “fun” you see. On my first attempt I got lost in the forest. Then I found myself on a hill. Then I found myself in a building where there were things I could look at and take. Then I got lost in the forest again. Then I hit ALT-TAB, opened Firefox, and Googled “ADVENT.”

Let me just say that I loved playing these interactive fiction games (Zork, Hitchhiker’s Guide to the Galaxy, Planetfall, Wishbringer, and some others). They weren’t particularly easy to play because you had to actually try to visualize the map (or draw one), as well as figure out how to solve the puzzles and what words the game would understand. ADVENT was different than those games. With ADVENT, not only did you have to try to figure out the map, and the proper command words, you also had to figure out where you could actually go. This, for example, is the opening text:


Okay, in what direction is the small brick building? Which way does the small stream flow? Which way does the road go? The walkthru advised me to go EAST, take the lamp, then type PLUGH. What?

The frustration of not only trying to figure out the game, but also figuring out how the author of the walkthru figured out the game reminded me how how much of a challenge these games were. I ended up wondering whether people still wrote and/or played these games, and that’s when I found the Interactive Fiction Archive. You can download a copy of the original Fortan source code of ADVENT from there, which is really of use only to people who can read Fortran.

From the Interactive Fiction Archive I discovered that people still actually write interactive fiction games. I discovered that some of them are just as good as Zork or Hitchhiker’s Guide. Some of them are just as frustrating as ADVENT. That knowledge led me to discover that there are at least two development platforms for writing interactive fiction games. And somewhere along the way I started thinking about what one of my stories would look like as an interactive fiction. I downloaded and installed Inform 7 (because it looked easier to learn than TADS 3), and started working my way through the documentation.

At this point I have to say, Inform 7 is easy to learn, but it can be frustrating for a programmer because the syntax is plain English, but it’s a very object-oriented language. The documentation is pretty thorough, but, again, programmers might have trouble when they find the code they logically assumed would work because it works that way in other programming languages, doesn’t work in Inform 7. The main problem I kept running into was that, after reading a section of the documentation and trying out the examples, I’d get an idea for using that information in a story, and then spend a couple hours wracking my brain when the story wouldn’t compile. I’d go back to the documentation and find that none of the examples were anything like what I was trying to do.

Of course, it doesn’t help that the documentation (which runs ~1600 pages) has a search function that only works literally. You can’t search for “after going rule” hoping to find a page that includes all three of those words. It will find only the pages where “after going rule” exists exactly like that, which isn’t any pages. To find anything like that you have to limit your search to something like “after going,” and since many of the hundreds of examples include at least one “after going” rule, your search returns 500 pages. The documentation has an extensive index, but here again it is of limited use. There isn’t an index entry for “after going rules.” You can find “after” and “going” and “rules,” but you’ll have to scan the index and check the contents of several links before you find the document you need.

Despite those issues, after a couple weeks of trying various things, and with the help of a couple other books (specifically Ron Newcomb’s Inform 7 for Programmers and Jim Aikin’s The Inform 7 Handbook) I managed to get to the point where I could actually understand what I was doing. The next step was to write an actual story from scratch. I set the bar pretty low by deciding to recreate a scene from a movie. You can check it out here. I have also decided to create an interactive fiction page to serve as a starting point for any future stories I decide to release.

And all that means is I now have something new to archive.