An interpreter (or terp, for short) is an application program ("app") 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.
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.
Interpreters by Platform
You can find a popular interpreter for your platform and IF format in the following table:
|ADRIFT • AdvSys • AGT • Alan • Glulx • Hugo • Magnetic Scrolls • TADS • Z-code
|Browser • Android • iOS • Linux • macOS • Windows
|Recommended interpreters • •
|Authoring systems • Utilities
Note: The old table of interpreters that used to be on this page can be found at Interpreter table archive.
Contributing an interpreter to the wiki
Please create an account, then:
- To add an interpreter page, use Form:Software.
- To edit an existing interpreter page, use the "Actions - Edit with form" option.