A Partial History of Dungeon and Zork
The family tree of Zorks and Dungeons is cluttered with branches. Some lead to Infocom's commercial Zork of 1980; others to local enhancements in academic Computer labs of the era; others to hobbyist adaptations and operating system ports in later decades. Our emulation is based on one of these specific branches, which may seem unfamiliar in certain details to those who came to Zork through the commercial releases. Here's our attempt to sketch a timeline, definitely not definitive, reconstructed from comments in source files; readme and history files included in different distributions; Wikipedia; the recollections of SmartMonsters' co-founder Gary Smith; and the definitive memories of Zork's originator and principal programmer, Marc Blank, generously communicated to us via email.
In the beginning there was ADVENT, a nifty pun if we know one. AKA Colossal Cave Adventure, this was the first computer-mediated text adventure game, the first interactive fiction, and the originating ancestor of the entire online adventure game genre. Written by Will Crowther in FORTRAN in 1975 for the PDP-10 mainframe and enhanced by Don Woods over the next couple of years, the game became a sensation in computer academe when released into the wild of the ARPANET. Dave Lebling describes its impact at MIT this way: "For a couple of weeks, dozens of people were playing the game and feeding each other clues. Everyone was asking you in the hallway if you had gotten past the snake yet."
According to the source just quoted, a circle of hackers from the Dynamic Modeling Group at the MIT Laboratory for Computer Science wanted more, and felt they could do better. Which they did! Marc Blank writes us: "I wrote most of the original 'Zork' and named it that (it was used as a nonsense interjection at the lab I was working at) sometime in 1977. Tim Anderson helped with a lot of the back-end stuff (some data structures, save/restore, etc.), and Bruce Daniels and Dave Lebling pitched in with puzzle ideas and some of the purple prose at first, and Dave eventually ended up implementing a couple of puzzles toward the end. All versions of the parser were mine. Most players were at MIT or at various labs on the Arpanet (Stanford, CMU, etc.); others played as well, like sci-fi authors Jerry Pournelle and Larry Niven who would call the lab stinking drunk at all hours of the night asking for hints. I'm told, but don't recall, that Robin Williams also called to ask for help."
Ports and branches began almost immediately. While the original was written in MDL, this group ported their source some time before 1979 to the TENEX and TOPS-20 operating systems. It seems to have been this version which became so wildly popular and so frequently extended by the networked hacking community of the era.
One of the most influential of these ports was to Fortran IV by Bob Supnik, described in Infocom's Zork history file as "a somewhat paranoid DEC engineer who prefers to remain anonymous." That Fortran version became the basis for several other branches including the C language translations on which we've based our emulation. "No DECsystem should be without one!". Marc Blank says, "The game was constantly being added on to (new sections unearthed), right through 1978. Bob Supnik (who we didn't know) wrote the FORTRAN version of the game in February 1978 during the 'great blizzard of 1978' when DEC was closed down for over a week. So the version of Dungeon that he created didn't have a bunch of the later sections of the game (or the endgame), unless he did something later on that I'm unaware of. We were so impressed with his work, however, that we trekked out to Marlborough, MA to meet with him; great fun." He adds, "Bob's parser was very basic and didn't nearly match what I had done on the original (it was an evolution of a two-word parser really); it made playing the game a LOT harder than it should have been. Still, his work was awfully impressive."
Regarding the name changes, Wikipedia writes, "The word 'Zork' is a nonsense word, often used by MIT hackers as the name for any unfinished program until they were ready to be installed on the system. With the game complete, in 1978 the imps [implementors] renamed the game Dungeon; by this time it was popular among gamers. That year the developers received notice from Tactical Studies Rules (TSR), the publishers of Dungeons and Dragons, which claimed the game violated their copyrights, so changed the name back to Zork.
The Infocom commercial release is from 1980. Marc Blank tells us, "Dave, Tim, and I were among the founders of Infocom, and the original Zork I and Zork II games were mainly pulled from the mainframe version (the whole game was too large to fit on an 80kb floppy, even with our virtual machine — the VM is a whole other story) with a couple of new puzzles added to round things out. Zork III was largely original and almost entirely mine, save for the endgame, which was a collaboration with Dave." Infocom's TRS-80 version is from late 1980; their Apple II version is from early 1981.
A port dated "17-nov-81" from Dec FORTRAN to the Unix f77 FORTRAN variant was done for the PDP-11 by Randy Dietrich, Lynn Cochran, and Sig Peterson. One of the sources for our emulation is a C translation of this version which we believe (based on how ugly it is) was probably generated by the f2c program.
A VAX / Unix version dated "dec-85" was produced by Bill Randle.
John Gilmore produced a "cleaned-up" source dated "11-dec-86". Bill Randle contributed an amalgamation of the previously separate PDP and VAX sources dated "9-feb-87".
Gary Smith started his version in 1980 at New Mexico Tech by hacking the encrypted data files of Bob Supnik's FORTRAN port. The password was Supnik's DEC badge number, which Gary remembered after meeting him! His variation features more rooms; many new jokes; and a rather more sarcastic narrator. His enhancements were largely based on close observation of how players interacted with the parser and the puzzles. If he noted someone trying to solve a puzzle in an interesting or creative way, he'd implement their attempted solution. He took his version with him to Central Washington University in late 1983. Over the next two and half decades he's produced new versions in C and Visual Basic. We hope to bring Gary's most recent enhanced evolution online some time in 2021, perhaps fully-updated to the far richer TriadCity platform.
Our emulation is a "clean room" recreation mashed-up from several of the 1980s C ports. We've also consulted multiple online walk-throughs and cheat-sheets for both Dungeon and Zork, and a long-OOP paperback by Richard Owen Lynn, Paul Ashley and Michael W. Sloan titled A Shortcut Through Adventureland. We wrote it by playing one or another of the C versions side-by-side with ours until ours acted identically.
As of this writing, we're really not "done". Players still find odd corners where ours isn't quite identical to what they remember. Some of this is because they're thinking of the Infocom versions; but it's also 'cos we missed details we hadn't thought of. When we believe we've gotten it as exact as possible we'll stop calling it "alpha".