Last month, Jason Scott, Internet Archivist and director of the terrific Get Lamp interactive fiction documentary, posted an entire hard drive's worth of Infocom source code on GitHub. I thought I'd share a few observations and links to resources that might be helpful to others in exploring this code and the history of Infocom.
The GitHub repositories include the original ZIL source code to thirty classic interactive fiction games from the '80s: Zork, Planetfall, Hitchhiker's Guide to the Galaxy, and my personal favorites, the mystery stories Deadline, Suspect and The Witness. There are also unpublished fragments including the lost Hitchhiker's sequel Restaurant at the End of the Universe, Stu Galley's unreleased Checkpoint game, and an ill-fated tie-in to James Cameron's movie The Abyss.
The games are written in a defunct proprietary Lisp-like language called ZIL (Zork Implementation Language). Sadly, I'm not aware of any working compilers that can compile this code, though I understand There are efforts underway to redevelop a ZIL compiler and most of the Infocom games are now compilable. Which is cool since the Z-Machine is the basis of the underlying architecture and virtual machine code systems for games written in Inform. Infocom published a manual for ZIL for internal use that is available online. Zarf has also posted a helpful article on ZIL. To me ZIL is kind of like assembly language (with (parentheses)), but the code is still fascinating.
The original MDL mainframe version of Zork (also known as Dungeon) was later translated into Fortran and then machine translated into C. These are higher-level languages than ZIL, but still hard slogging. Luckily, Zork was later ported to Inform6 and Inform7.
Some years ago Volker Lanz wrote and published equivalent version of Deadline in Inform6, but it requires an old version of Inform and as far as I can tell there's no compiled binary version of the game. Most likely the author was concerned that this might have been too close for comfort as copyright violation. It will be interesting to see if anyone translates any of these Infocom games into a modern equivalent in Inform 7.
Scott had previously posted several Infocom file cabinets --digitized versions of Infocom printed materials including design documents, internal memos, sales reports, logo designs, photos, advertisements, etc which provide a fascinating glimpse into the internal operations of Infocom during it's hey day.
No one seems to have complained about the posting of the Infocom source code, but if it's of interest, I'd get it quick.
For those interested in the history of Infocom and the impact of it's games, I strongly recommend the well-written student research project The History of Infocom (PDF) as well as Jimmy Maher's excellent articles at The Digital Antiquarian.
And for further historical context, here's a link to the Infocom Documentary Scott released along with Get Lamp:
- GitHub: Historical Source, Zork, PlanetFall, Deadline, Hitchhiker's Guide
- Zork source code: MDL, ZIL, Fortran, C, Inform6, Inform7
- News: Motherboard, BoingBoing, Vice, GamaSutra
- Articles: What is Zil anyway?, ZIL and the Z-Machine, The Birth of Infocom
- Byte: Zork and the Future of Computerized Fantasy Simulations (PDF)
- Get Lamp: Web site, YouTube Interviews, Review, Infocom Documentary
- Archive: ZIL Manual, Infocom, Infocom Cabinet, The Story of Infocom, Infocom Gallery
- Wikipedia: Z-Machine, Inform, Infocom, Get Lamp
- Waxy: Milliways - Infocom's Unreleased Sequel and the Lost Infocom Drive
(The only blog post on the internet where it's worth reading the comments)
- Z-Machine Matter: Get Lamp