The source code for many of Infocom’s foundational text analysis adventure games, including Zorkhas been available since 2019. But this code does nothing for modern computers, or even computers of the time, when it comes to actually running the games.
Most of Infocom’s games were written in “Zork Implementation Language”, which was not native to any particular platform or processor, but ready to be interpreted on all sorts of systems by versions of its Z-Machine . The Z-Machine could be considered the first true game development engine, provided no one verifies that claim too much. Much work has been done in open source areas to create modern, improved versions of these interpreters for almost every device imaginable.
The source code for these Z-Machine implementations (virtual machines, in today’s parlance) appeared like a crane out of obscurity a few days ago in a GitHub repository owned by Andrew Plotkin. Plotkin, a major figure in both the modern and classic text adventure fields (and many in between), details what they are and how he found them in a blog post on his site.
In the middle of a long discussion on an interactive fiction forum about Infocom interpreters and modern standards for documenting them, a message appears out of nowhere about a decades-old mystery: “I have the source of what is probably most Infocom performers. Until you mentioned I didn’t know it wasn’t publicly available.” Plotkin responds, a little over an hour later, that they forward it in private chat. Then someone from another posted the source of the IBM PC interpreter so that everyone’s memory is suddenly refreshed.
As Plotkin notes, the interpreter’s source code does not contain many interesting, personal, or revealing comments or artifacts. It contains some unintentional comments about what it was like trying to produce commercial software in the 1980s:
There is a bunch of internal documentation on create disks for different platforms. Remember that in the 1980s, floppy disks were quite incompatible between platforms. To write a C64 disc, you had to get the game data and an interpreter on 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 elsewhere). The serial transfer program is called “TFTP” in most of these files. Make chains like
com1:9600,n,8turn you on? You could be a serial port!
Plotkin also notes that he uploaded the files to GitHub without announcing it or making “much noise.” That’s because it’s actively negotiating with Infocom’s modern rights holders to open source the legendary company’s work. For a time, that meant Activision, which acquired Infocom in 1986. Today, it means Microsoft, which acquired Activision in October.
“A lawyer would say, ‘Don’t continue to release the source code while you’re negotiating with the original rights holder.’ This would be good legal advice,” Plotkin wrote. “I, uh, ignored the part of my brain that gives good advice.”
The Hackaday Blog has previously delved into the details of the Z-Machine and how it brought DEC PDP-10 games to TRS-80s and other home computers. You can learn much more about the Zork implementation language, itself a stripped-down version of the Model Development Language (MDL), in “Learning ZIL,” an Infocom instruction manual for the language published on 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.”