The source code for many of Infocom’s foundational text-parsing adventure games, including Zork, has been available since 2019. But that code doesn’t do anything for modern computers, nor even computers of the era, when it comes to actually running the games.
Most of Infocom’s games were written in “Zork Implementation Language,” which was native to no particular platform or processor, but ready to be interpreted on all kinds of systems by versions of its Z-Machine. The Z-Machine could be considered the first real game development engine, so long as nobody fact-checks that statement too hard. Lots of work has been done in open source realms to create modern, and improved, versions of these interpreters for pretty much every device imaginable.
The source code for these Z-Machine implementations (virtual machines, in today’s parlance) appeared like a grue from the dark a few days ago in a GitHub repository owned by Andrew Plotkin. Plotkin, a major figure in modern and classic text adventure realms (and lots in between), details what they are and how he found them in a blog post on his site.
Midway through a lengthy discussion on an interactive fiction forum about Infocom interpreters and modern standards for documenting them, a message drops out of nowhere about a multi-decade mystery: “I have the source of what is likely most of Infocom’s interpreters. Until you mentioned it, I had no idea it wasn’t publicly available.” Plotkin responds, just over an hour later, that they’re taking it to private chat. Then someone else posted the IBM PC interpreter source in the fashion of everybody’s memory suddenly being jogged.
As Plotkin notes, the interpreter source code doesn’t have a lot of interesting, personal, or other revealing comments or artifacts. It does contain some unintentional commentary on what it was like trying to produce commercial software in the 1980s:
There’s a bunch of internal documentation about creating disks for the various platforms. Remember that in the 1980s, floppy disks were pretty incompatible between platforms. To write a C64 disk, you had to get the game data and interpreter onto a C64 which could then write it to disk. But how did you do that? No Wifi, no Ethernet port… Infocom’s solution was to run a serial cable from their DEC-20 (where all the games were developed) to the C64 (or wherever). The serial transfer program is called “TFTP” in most of these folders. Do strings like
com1:9600,n,8turn you on? You might be a serial port!
Plotkin also notes that he dropped the files on GitHub without announcing it or making “a big fuss.” That’s because he’s actively negotiating with Infocom’s modern rights-holders to open-source the legendary firm’s work. For a while, that meant Activision, which acquired Infocom in 1986. Now, it means Microsoft, which acquired Activision in October.
“A lawyer would say, ‘Don’t keep releasing source code while you’re negotiating with the original rights-holder.’ That would be good legal advice,” Plotkin wrote. “I, er, ignored the good-advice part of my brain there.”
The Hackaday blog previously dug into the details of the Z-Machine and how it brought DEC PDP-10 games to TRS-80s and other home computers. You can find out much more about the Zork Implementation Language, itself a chopped-down version of the Model Development Language (MDL), in “Learning ZIL,” an Infocom instruction manual for the language posted to the Internet Archive. Its subtitle is “Everything You Always Wanted to Know About Writing Interactive Fiction But Couldn’t Find Anyone Still Working Here to Ask.”