Interpreter

From IFWiki

Revision as of 01:33, 3 November 2010 by George (talk | contribs) (moved the interpreter matrix to here from the FAQ)

An interpreter (or terp, for short) is a program which reads a story file and presents the game contained inside that file to the player. The interpreter itself is not part of the game, although it may provide shortcuts to make the playing more convenient. Many interpreters allow the player to enter commands (i.e., LOOK or GO NORTH) by pressing a single key combination (a "hotkey"). In addition, some interpreters allow the player to tweak display options to his liking (i.e., fonts and colors).

The interpreter's function in interactive fiction is akin to that of a movie projector in motion pictures. It translates the "raw material" of the work into a more palatable format for humans.

Technically, interpreters are usually virtual machines. They don't care about the higher-level language used to create the compiled code that is run on them. The Z-machine, for example, is usually programmed with Inform, but Infocom, who created it, used a compiler and language called ZIL. Glulx is similar to the Z-Machine, but designed to remove some limitations of that design, and also is typically programmed with Inform.


Interpreters by Platform

One of the advantages to the Virtual Machine concept is cross-platform compatibility. A story-file only needs to be written once and can be run on any computer on which an interpreter exists for similar story files. This makes the interpreter the only piece of software that needs to be written for a specific platform.

There are interpreters for nearly every modern (and many not so modern) computing platforms.

Some interpreters are usable for most formats of interactive fiction.


You can find a popular interpreter for your platform and IF format in the following table:


Zcode TADS Glulx Hugo ADRIFT Alan2 Alan3
Story File Extension .z5, .z8,.z3,.zblorb (other .z# or .dat, rarely) .gam, .t3 .ulx, .blb, .gblorb .hex .taf .acd/.dat .a3c/.a3r
Windows Windows Frotz HTML TADS Playkit Glulxe, Git, Zag Hugo Multimedia Interpreter ADRIFT Runner Gargoyle, ARun, Glk Arun Gargoyle, WinARun
Linux Gargoyle, Frotz (redhat binary RPM) Gargoyle, QTads Gargoyle, Zag Gargoyle, Hugo wxGTK Gargoyle, SCARE Gargoyle, Glk Arun Gargoyle, ARun in Full Distr
Mac OS X Spatterlight, Zoom CocoaTADS, Spatterlight, QTads, HyperTADS1 Spatterlight, Zag Spatterlight, Hugo Mac Spatterlight, SCARE (none) Spatterlight, Arun in Full Distr
Mac System 9 Nitfol, MaxZip HyperTADS Glulxe for Mac Hugo Mac (none) ARun, Glk ARun (none)
RISC OS Zip2000, Frotz AcornTADS (none) AcornHugo (none) (none) (none)
Palm Frobnitz (none) CellarDoor Hugo Palm (none) (none) (none)
PocketPC Pocket Frotz Pocket TADS Git PocketPC Hugo WinCE (none) (none) (none)
DOS DOS Frotz DOS TADS Git for Dos Hugo DOS (16 bit) SCARE DOS ARun, Glk ARun (none)
Symbian Frotz 1.08 uiq ? ? ? ? ? (none)
Java Zplet ? Zag ? Jasea ? (none)
1 HyperTADS isn't native to MacOS X yet, but runs in the Classic compatibility environment.


These are not all the interpreters available, just some of the most popular ones for the most popular platforms. The IF Archive has a fairly comprehensive, if not exactly friendly, list of interpreters that you can download:

Also see Websites for downloading or playing IF.

Types of Interpreters

  • Z-machine
    This is the one that Infocom invented in the late 1970s.
  • Glulx
    This is something of a redesign of the Z-Machine with many new features.
  • TADS
    This is a system designed by Mike Roberts in the late 1980s. TADS2 is well established and TADS3 is a redesign.
  • Hugo
    This is a system designed by Kent Tessman, somewhat inspired by Inform and TADS but designed to be easier to work with.