Choosing a Language for Interactive Fiction

Link: Can't recall that we've ever discussed programming languages that are dedicated to authoring text adventures (much less MUDs). These languages are geared towards constructing worlds that have a built-in english language like parser. Kind of Lisp meets Prolog aspects, where the emphasis is on a declarative type of programming.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

ZIL

From the article: Lisp hackers might be comfortable with such syntax, but ZIL had no objects, no libraries, and these days, no compiler. There are better ways.

No libraries, my patootie: ZIL had scads of libraries. Now, admittedly, by the time I got to Activision, only one guy there still knew ZIL, and it's true that the compiler sources were on some tar archive taken off of an ancient Sun box somewhere, never to be reconstituted again. The situation was so bad that when we released the Lost Treasures of Infocom sets, some of the games had been rebuilt with third-party reverse-engineered compilers, and some of them used capabilities that none of the third-party compilers supported, e.g. sound in "Sherlock Holmes," and to get that running on Sound-Manager-based Mac OS I had to write a skanky in-place binary patch. I explained to the Associate Producer on the project that to make it fit, I'd have to sacrifice asynchronous playback. She said to go for it, and we shipped that in-place binary patched product. Ugh.

To get back on topic, has anyone posted a link to Building a Text Adventure on Description Logic before?

Libraries?

Perhaps ZIL had Libraries... Just lacked a proper Librarian...
What language was the original compiler composed with?

(fond memories of those games, though none of it involved programming).

Inform

Graham Nelson's manual for Inform, "The Inform Designer's Manual," is unlike any other language reference...

You can say that again.

IIRC Nelson wrote the Inform manuals, and the software they describe (which includes a VM, a compiler and an IF-English parser written in Inform itself) in his early twenties. Quite an achievement. Curses is a classic game, too.

delight

The Inform Designer Manual is a delightful reading, mixing game design, general-purpose programming, clever puzzling, good literature, some nice sense of humor. Very worthwhile, be you interested in text-adventures or not.

The original Zork and MDL

The original (pre-Infocom) version of Zork was written in MDL. MDL, if I recall correctly, was a Lisp-like language. Zork was written using DARPA-funded computers at MIT's AI Lab, although one assumes it was written after hours.

Side note: Joel Berez (IIRC again), one of Infocom's founders, told me that MIT had been willing to give them all the rights to Zork (since in those days use of MIT's computers meant that MIT automatically received various IP rights) since it clearly had no commercial potential.

Really way off side note: In the long, it's possible that MIT has done better by giving away technologies (e.g. the X Window System) than by licensing them (e.g. Macsyma, Lisp Machines) but that may just be my inner radical asserting itself. It's certainly done more good overall.

From MDL to ZIL

meltsner: The original (pre-Infocom) version of Zork was written in MDL. MDL, if I recall correctly, was a Lisp-like language. Zork was written using DARPA-funded computers at MIT's AI Lab, although one assumes it was written after hours.

MDL has been characterized as "Lisp 1.5 with datatypes." ZIL, in its turn, was just MDL with a lot of its genuine arcana, e.g. I/O support for dead hardware devices, removed, and ported to a purpose-built virtual machine, ZIP, the "Zork Interpretive Processor." While I was at Activision, I saw some ZIL source code, and believe me, it was very obviously (to anyone conversant in Common Lisp and Scheme) pre-CL/Scheme Lisp code.

A lot of people might not realize it, but as late as 1993, Activision's "Return to Zork" was still written in a (heavily extended) version of ZIL, i.e. a dialect of Lisp.