1. 6
  1.  

  2. 4

    Zork was originally implemented in an obscure LISP dialect called MDL, at MIT. (I’ve seen snippets of the source code and it was not purely S-expressions; it used square and angle brackets too.) It has an interesting history beyond that too…

    It was then translated into FORTRAN(!) by “a DEC engineer who wishes to remain nameless,” probably because the task drove him mad. That was the form, named DUNGEON, in which it spread around the ARPAnet in the late ’70s.

    After that, the Zork implementors founded a startup called Infocom and managed to port it to 8-bit personal computers like the Apple ][. They split the game into three parts, but even so they had to resort to some interesting tricks to squeeze it onto a 112KB floppy. The main one was to compile the MDL to a bytecode virtual machine called the Z-machine, which made the code small and portable. I think this is one of the earliest cases of using a bytecode interpreter for portability. (The Z-machine instruction set is still in use by the interactive fiction community, although they had to extend it several times to allow for larger games. These days there’s an entirely different language called Inform that you write the games in. The Z-machine interpreter has been ported to a ton of systems including Web browsers.)

    Scott Adams is another interesting story — he played the original ADVENTURE and tried to write something similar but much smaller on a TRS-80 with 8KB of RAM, in BASIC. The source code for that is quite tricky and strange.

    1. 1

      I owned a TRS80 clone in 1981, and the game was shipped with it.

    2. 4

      Nothing happens (by way of side effects).