<!--
	Title: The History of Zork -- Second in a Series
	Author: Tim Anderson
	Source: The New Zork Times, v4(2)
	Date: Spring 1985
	Transcription by Steve Derby
-->

[When last seen](/library/nzt-the-history-of-zork-part-1), Zork® was a small game (probably slightly more than
half the size of the final mainframe version) that ran on one computer.
Although it was only six weeks old, and had never been advertised, it had
a relatively large user community from all over the country. In some
ways it was better than the classic *Adventure* at this time, but mostly it
was the next game to come along, and it wasn't even the only
contender.

The characters: MIT-DM, a PDP-10 running ITS; MDL (aka Muddle),
a language that ran only on PDP-10s; Marc Blank, Bruce Daniels, Dave
Lebling, and Tim Anderson, intrepid implementers; and assorted net
randoms.

July 1977 saw two major additions to the game, the last for several
months (we weren't exactly hired to write the thing, after all). The first of
these was another BKD special: Bruce didn't write much code, but he
was willing to design problems. We went to him, and asked for a particularly
nasty section; the result was the coal mine. His design was originally
nastier than the final implementation, since the maze was just about as
horrible as the original one in the game; it got simplified due to
popular demand. The problems were improving in quality, and the coal
mine maze was a late example of making things hard by making them
tedious.

<img class="float-right-half" src="/public/img/articles/nzt-the-history-of-zork-part-2/jfp-portrait-ascii-art.jpg" alt="ASCII art of a portrait of J. Pierpont Flathead, Chairman of the Bank of Zork">

The volcano section was Marc's second vehicle implementation, but
is perhaps more noteworthy for the loving portraits of Lord Dimwit
Flathead the Excessive that decorated the coin and stamp found
in the section. The river (see [Part I](/library/nzt-the-history-of-zork-part-1))
and volcano sections, in addition to vehicles, required a better concept of
time: both the boat and the balloon moved more or less on their own,
and the volcano required the use of explosives and fuses. Marc added a
clock daemon, which processed a queue of events that would happen
some fixed number of moves later. This handled, in addition to the
movement of the vehicles, the fuse, the lantern burning out, and the
mysterious gnomes that occasionally appear. The first of these was in the
volcano: if the player got trapped in the upper reaches of the volcano by
losing his balloon, after a few moves a volcano gnome would appear and
offer freedom in exchange for a treasure. We were just being nice;
most players weren't allowed to save their games, so they had no way of
backing out if they made such a mistake. The gnome allowed them to
keep playing, albeit with no chance of getting all the points.

Even before the volcano section, we'd talked about a problem that
involved flying; Dave had a preference for something with an eagle,
and its aerie, but we could never figure out how to restrict things
enough — it wouldn't do to have a parallel map of the game viewed
from the air. Once again, we worried about restraining a new concept, so
the balloon had no way of leaving the volcano. And once again we
were bitten by a new concept. When the player used the explosives in the
wrong place, and didn't get out of the way, he'd end up with 20,000 pounds
(or was it tons?) of rock on his head. This made a certain amount of sense
in the underground section, but not out in the forest.

<img class="float-left-half" src="/public/img/articles/nzt-the-history-of-zork-part-2/dimwit-stamp-ascii-art.jpg" alt="ASCII art of a Dimwit Flathead postage stamp">

No more sections were added to the game for several months after
July, but it continued to improve. In addition, it finally moved to
machines other than DM, thus greatly expanding the number of
players.

Although Muddle ran primarily on DM, a version for TENEX (the most
popular PDP-10 operating system on the ARPAnet) had existed for some
time; the TENEX version could, with some minor modifications, run on
TOPS-20 as well. We finally succumbed to one of the requests for
a copy of *Zork* when we were given an account on a TOPS-20 machine
on the net. After we made the necessary software modifications, of
course, many copies could be made; a mailing list of *Zork* owners developed,
so they could get whatever updates appeared.

Although people could get runnable *Zork*s, they couldn't get
sources. We tried two approaches to protecting the sources (remember,
there was no protection of any sort on DM): they were normally kept
encrypted; and we patched the system to protect the directory where
we kept the sources (named CFS, for either "Charles F. Stanley" or
"Computer Fantasy and Simulation"). This worked pretty well, but
was finally beaten by a system hacker from Digital: using some
archaic ITS documentation (there's never been any other kind), he was
able to figure out how to modify the running operating system. Being
clever, he was also able to figure out how our patch to protect the source
directory worked. Then it was just a matter of decrypting the sources, but
that was soon reduced to figuring out the key we'd used. Ted had no
trouble getting machine time; he just found a new TOPS-20 machine that
was undergoing final testing, and started a program that tried every key
until it got something that looked like text. After less than a day of
crunching, he had a readable copy of the source. We had to concede that
anyone who'd go to that much trouble deserved it. This led to some
other things later on.

<img class="float-right-half" src="/public/img/articles/nzt-the-history-of-zork-part-2/zorkmid-ascii-art.jpg" alt="ASCII art of a Zorkmid coin">

Players hadn't been able to save their *Zork*s because the method we
used at first took several hundred thousand bytes for each save, and
even on a time-sharing system that was excessive. Marc, around this
time, invented a new way of saving that cut the size down to something
more reasonable, with the slight disadvantages that any new rooms or
objects added to the old game would break existing save files, and that it
never quite worked right anyway. However, it did make it easier to
play the game, and we still had the silly notion of being nice to our
users.

Fall '77 saw two major additions to the game, as Marc took another
break from medical school (yes, fans, he did graduate on time), and
Dave got into coding in a big way. The Alice in Wonderland section,
complete with its magic bucket and robot, was installed. The robot was
the first "actor," an object that could perform some of the same tasks the
player could. The style of address was familiar: "ROBOT, TAKE THE
CAKE." The implementation of this required another change in the
game's flow of control, and changes to anything else that one could
reasonably talk to.

The first version of fighting was added about the same time. Dave, an
old Dungeons and Dragons player, didn't like the completely predictable
ways of killing creatures off. In the original game, for example, one
killed a troll by throwing a knife at him; he would catch the knife and
gleefully eat it (like anything else you threw at him), but hemorrhage
as a result. Dave added basically the full complexity of DD-style fighting,
with different strengths for different weapons, wounds, unconsciousness,
and death. Each creature had its own set of messages, so a fight with the
thief (who uses a stiletto) would be very different from a fight with the
troll and his axe.

<img class="float-right-wide" src="/public/img/articles/nzt-the-history-of-zork-part-2/zorkmid-banknote-asii-art.jpg" alt="ASCII art of a Zorkmid bank note">

As a result of the purloined sources at DEC, a lunatic there decided to
translate *Zork* into FORTRAN. We had always assumed this would be
impossible: Muddle is very (oops, very) different from FORTRAN, and
*much* more complicated, and we'd used most of its features in designing
*Zork*. The guy who did it was mostly a hardware person, so perhaps he
didn't know what he was up against. At any rate, shortly after the Great
Blizzard of '78 he had a working version, initially for PDP-11s. Since
it was in FORTRAN, it could run on practically anything, and by now it
has.

Unfortunately, at some point in the preceding year we (no one will now
admit to suggesting the idea) had decided to change the name of the
game. *Zork* was too much of a nonsense word, not descriptive of the
game, etc., etc., etc. Silly as it
sounds, we eventually started calling it *Dungeon*. (Dave admits to suggesting
the new name, but that's only a minor sin.) When Bob the lunatic
released his FORTRAN version to the DEC users' group, that was the
name he used. I'm sure many people have noticed a curious similarity
between the *Dungeon* game they played on their friendly IBM 4341
and the *Zork I* they played on their equally friendly IBM PC; now you
know why.

Fortunately for us, a certain company (which shall remain nameless)
decided to claim that it had trademark rights to the name *Dungeon*, as
a result of certain games that it sold.

<img class="float-left-half" src="/public/img/articles/nzt-the-history-of-zork-part-2/lamp-stamp-ascii-art.jpg" alt="ASCII art of a brass lamp on a GUE postage stamp">

We didn't agree (and MIT had some very expensive lawyers on retainer
who agreed with us), but it encouraged us to do the right thing, and not
hide our *Zork*s under a bushel.

The next section that was added was intended to be the last: after a
player had accumulated all the points in the game, he could play the End
Game, designed largely by Dave. This became the section of *Zork III*
with the Dungeon Master, and at the time was certainly the most involved,
and hardest (as it should have been) thing in the game. The implementation
was, if anything, more involved than the problem. Less than two
months later, though, Marc had come up with something worse, probably
during a boring anatomy lecture. The bank section has probably been fully
deciphered by fewer people than anything else in the game; even those
who solve it on their own don't usually understand what was going
on. I can only say that it makes sense if you understand it.

For some time, we'd been getting bug reports, fan mail, and suggestions
for new problems from all sorts of people. We were beginning to run
a little short on ideas anyway, and one of the ideas we got was very
good. During a lengthy dinner at Roy's, our favorite Chinese restaurant,
we worked out the details of the jewel-encrusted egg, purple prose
courtesy of Dave. Many people on the net had long since solved the
game, but went back in and did any new problems that came along; one
of them had played DD with Dave, and called him up about a day after
the egg was announced. "I've gotten the egg opened, but I assume you
losers have some nonsense where you do something with the canary
and the songbird." Dave, no fool, said "Cough, cough, ahem, of
course," and immediately went off and added the brass bauble.

The remaining puzzles, the Royal *Zork* Puzzle Museum and the
palantirs, were added in the late summer and fall of 1978. The puzzle
was designed (several times) primarily by Bruce, who in theory was back
trying to finish his dissertation. Finding the minimum number of
moves required to solve it was a popular pastime among dedicated
Zorkers for a while.

The last (lousy) point was a tribute to the final point in the original
Adventure, which involved leaving a particular object in a particular room
for no particular reason. When we first solved Adventure in 1977, Bruce
finally figured this out by using a machine-language debugger on the
running game (since *Adventure* was not written in machine language, this
was not easy). The major difference between that and our version (a
stamp worth One Lousy point) is that it would be harder to find ours
without the source of the game.

The last puzzle was added in February of '79. We (mainly I, at this
point) kept fixing bugs for almost two more years — the last mainframe
update was created in January of '81. No new puzzles were added
because none of the implementers had time or inclination, and because
we had no more space available: at the time, we were limited to a
megabyte of memory, and we had used it all up. The first article about
*Zork* appeared in April of '79, and attracted a great deal of interest;
some of this may have been because we offered to give people the game
(if they didn't already have it), and gave them parts of the sacred sources
as well.

Infocom was incorporated in 1979 by various people from the DM
group, including Marc, Dave, and me. It was not founded to sell *Zork*;
rather, it was founded to give group members somewhere to go from
MIT. Marc and Joel Berez (both exiled to Pittsburgh) determined that
it would be possible to make *Zork* run on something cheaper than the
$400,000 PDP-10, and the company eventually went along. See [the next
NZT](/library/nzt-the-history-of-zork-part-3) for further details.

In the meantime, we still get requests for hints on the mainframe
*Zork* (sometimes it's called *Dungeon*, and often it's running on something
other than a PDP-10). The most recent request for a copy came in on
April 1, but I think it was serious.
