John Yorke's Into The Woods
The Case of Charles Dexter Ward Podcast

Infocom Source Code and Resources

Github screenshot
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.  

Deadline screenshotThe 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:

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

I'll just note that most of the Infocom games have been successfully compiled from the original source code (albeit with minor changes) using the ZILF compiler. See:
https://learning-zil.blogspot.com

Petter, thanks for the info, I have updated the post to reflect this. Very cool to learn of your progress.
--Zack

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Your Information

(Name and email address are required. Email address will not be displayed with the comment.)