Difference between revisions of "Interpreter"

From IFWiki
Jump to: navigation, search
(Thunderword now has Alan 2 and Alan 3)
(Types of Interpreters: Names in alphabetical order)
 
(6 intermediate revisions by 4 users not shown)
Line 12: Line 12:
  
 
Some interpreters are usable for most formats of interactive fiction.
 
Some interpreters are usable for most formats of interactive fiction.
* For Mac OS X there is [[Spatterlight]]
+
* For Mac OS X there is [[Lectrote]] and [[Spatterlight]]
* For Windows and Unix there is [[Gargoyle]] (including Amazon Kindle Paperwhite)
+
* For Unix systems there is [[Gargoyle]] and [[Lectrote]]
 +
* For Windows there is [[Lectrote]]
 
* For Android and iPhone/iPad there are many choices [[Mobile apps for downloading or playing IF]]
 
* For Android and iPhone/iPad there are many choices [[Mobile apps for downloading or playing IF]]
 
+
* For Ubuntu Touch there is [[Gelek Vanilla]]
  
 
You can find a popular interpreter for your platform and IF format in the following table:
 
You can find a popular interpreter for your platform and IF format in the following table:
  
 
+
{| class="wikitable"
{| border="1" cellpadding="2"
+
 
!
 
!
 
!Zcode
 
!Zcode
Line 39: Line 39:
 
|.a3c/.a3r
 
|.a3c/.a3r
 
|-
 
|-
!Windows
+
!Android
|[[Filfre]], [[Lectrote]], [http://mirror.ifarchive.org/if-archive/infocom/interpreters/frotz/WindowsFrotz.zip Windows Frotz]
+
|[[Fabularium]], [[JFrotz]], [[Incant]], [[Son of Hunky Punk]], [[Text Fiction]], [[Thunderword]], [[Twisty]], [[ZMPP]]
|[http://mirror.ifarchive.org/if-archive/interpreters-tads/htads_playkit_HT20.exe HTML TADS Playkit], [[QTads]], [[Gargoyle]]
+
|[[Fabularium]], [[Son of Hunky Punk]], [[Thunderword]]
|[[Filfre]], [http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/glulxe/WinGlulxeInstaller.exe Glulxe], [http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/git/wingit-1.0.6.zip Git], [[Lectrote]], [[Zag]]
+
|[[AndroidIF]], [[Fabularium]], [[Incant]], [[Thunderword]]
|[http://ifarchive.org/if-archive/programming/hugo/executables/hugov31_win32.exe Hugo Multimedia Interpreter], [[Hugor]]
+
|[[Fabularium]], [[Thunderword]]
|[[ADRIFT Runner]]
+
|[[Fabularium]]
|[[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan/executables/arun286bwin.zip ARun], [http://www.ifarchive.org/if-archive/programming/alan/executables/arun287-5-glk-win32-ix86.zip Glk Arun]
+
|[[Fabularium]], [[Thunderword]]
|[[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan3/executables/winarun3_0alpha6.win32.x86.setup.exe  WinARun]
+
|[[Fabularium]], [[Thunderword]]
 +
|-
 +
!DOS
 +
|[http://mirror.ifarchive.org/if-archive/interpreters-infocom-zcode/frotz/DJGPPFrotz240.zip DOS Frotz]
 +
|[http://mirror.ifarchive.org/if-archive/interpreters-tads/tadsexe_259.zip DOS TADS]
 +
|[http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/git/dosgit-1.0.4.zip Git for Dos]
 +
|[[Hugo]]
 +
|[[SCARE]]
 +
|[http://www.ifarchive.org/if-archive/programming/alan/executables/arun281dos.zip ARun], [http://www.ifarchive.org/if-archive/programming/alan/executables/glkarun-2.86-dos-2.zip Glk ARun]
 +
|(none)
 
|-
 
|-
 
!Linux
 
!Linux
Line 52: Line 61:
 
|[[Gargoyle]], [[QTads]]
 
|[[Gargoyle]], [[QTads]]
 
|[[Gargoyle]], [[Lectrote]], [[Zag]]
 
|[[Gargoyle]], [[Lectrote]], [[Zag]]
|[[Gargoyle]], [[Hugo wxGTK]], [[Hugor]]
+
|[[Gargoyle]], [[Hugo wxGTK]], [[Hugor]], [[Lectrote]]
 
|[[Gargoyle]], [[SCARE]]
 
|[[Gargoyle]], [[SCARE]]
 
|[[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan/executables/glkarun-2.86-linux-i386-2.tar.gz Glk Arun]
 
|[[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan/executables/glkarun-2.86-linux-i386-2.tar.gz Glk Arun]
|[[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan3/executables/alan3_0alpha5.linux.x86.tgz ARun in Full Distr]
+
|[http://www.ifarchive.org/if-archive/programming/alan3/executables/alan3_0alpha5.linux.x86.tgz ARun in Full Distr], [[Gargoyle]]
 
|-
 
|-
 
!Mac OS 10.12 Sierra
 
!Mac OS 10.12 Sierra
|[https://github.com/erkyrath/garglk/releases Gargoyle (unofficial build for MacOS 10.12)], [[Lectrote]]
+
|[https://github.com/erkyrath/garglk/releases/tag/zarf-mac-20161021 Gargoyle (unofficial build for MacOS 10.12)], [[Lectrote]]
|[https://github.com/erkyrath/garglk/releases Gargoyle (unofficial build for MacOS 10.12)]
+
|[https://github.com/erkyrath/garglk/releases/tag/zarf-mac-20161021 Gargoyle (unofficial build for MacOS 10.12)]
 +
|[[Lectrote]]
 
|[[Lectrote]]
 
|[[Lectrote]]
|?
 
 
|?
 
|?
 
|(none)
 
|(none)
Line 68: Line 77:
 
!Mac OS X
 
!Mac OS X
 
|[[Gargoyle]], [[Lectrote]], [[Spatterlight]], [[Zoom]]
 
|[[Gargoyle]], [[Lectrote]], [[Spatterlight]], [[Zoom]]
|[[CocoaTADS]], [[Spatterlight]], [[QTads]], [http://www.hypertads.org/downloads/HyperTADS-140.sit HyperTADS]<sup>2</sup>, [[Gargoyle]]
+
|[[CocoaTADS]], [[Gargoyle]], [http://www.hypertads.org/downloads/HyperTADS-140.sit HyperTADS]<sup>2</sup>, [[Spatterlight]], [[QTads]]
 
|[[Lectrote]], [[Spatterlight]], [[Zag]]
 
|[[Lectrote]], [[Spatterlight]], [[Zag]]
|[[Spatterlight]], [[Hugo]], [[Hugor]]
+
|[[Spatterlight]], [[Hugo]], [[Hugor]], [[Lectrote]]
 
|[[Spatterlight]], [[SCARE]]
 
|[[Spatterlight]], [[SCARE]]
 
|(none)
 
|(none)
|[[Spatterlight]], [http://www.ifarchive.org/if-archive/programming/alan3/executables/alan3_0alpha9.macosx.x86.tgz  Arun in Full Distr]
+
|[http://www.ifarchive.org/if-archive/programming/alan3/executables/alan3_0alpha9.macosx.x86.tgz  Arun in Full Distr], [[Spatterlight]]
 
|-
 
|-
 
!Mac System 9
 
!Mac System 9
|[[Nitfol]], [[MaxZip]]
+
|[[MaxZip]], [[Nitfol]]
 
|[http://www.hypertads.org/downloads/HyperTADS-140.sit HyperTADS]
 
|[http://www.hypertads.org/downloads/HyperTADS-140.sit HyperTADS]
 
|[http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/glulxe/Glulxe-034.hqx Glulxe for Mac]
 
|[http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/glulxe/Glulxe-034.hqx Glulxe for Mac]
Line 82: Line 91:
 
|(none)
 
|(none)
 
|[http://www.ifarchive.org/if-archive/programming/alan/executables/MacAlan-2.8.2.1-Binary.sit.hqx ARun], [http://www.ifarchive.org/if-archive/programming/alan/executables/MacGlk-Alan-020.sit.hqx Glk ARun]
 
|[http://www.ifarchive.org/if-archive/programming/alan/executables/MacAlan-2.8.2.1-Binary.sit.hqx ARun], [http://www.ifarchive.org/if-archive/programming/alan/executables/MacGlk-Alan-020.sit.hqx Glk ARun]
|(none)
 
|-
 
!RISC OS
 
|[http://mirror.ifarchive.org/if-archive/infocom/interpreters/zip2000/Acorn_Zip2000_141_Std1.0.spk Zip2000], [http://mirror.ifarchive.org/if-archive/infocom/interpreters/frotz/RiscOSFrotz132.zip Frotz]
 
|[http://mirror.ifarchive.org/if-archive/programming/tads2/executables/AcornTADSruntime.spk AcornTADS]
 
|(none)
 
|[http://mirror.ifarchive.org/if-archive/programming/hugo/executables/AcornHugo25.zip AcornHugo]
 
|(none)
 
|(none)
 
 
|(none)
 
|(none)
 
|-
 
|-
Line 111: Line 111:
 
|(none)
 
|(none)
 
|-
 
|-
!DOS
+
!RISC OS
|[http://mirror.ifarchive.org/if-archive/interpreters-infocom-zcode/frotz/DJGPPFrotz240.zip DOS Frotz]
+
|[http://mirror.ifarchive.org/if-archive/infocom/interpreters/frotz/RiscOSFrotz132.zip Frotz], [http://mirror.ifarchive.org/if-archive/infocom/interpreters/zip2000/Acorn_Zip2000_141_Std1.0.spk Zip2000]
|[http://mirror.ifarchive.org/if-archive/interpreters-tads/tadsexe_259.zip DOS TADS]
+
|[http://mirror.ifarchive.org/if-archive/programming/tads2/executables/AcornTADSruntime.spk AcornTADS]
|[http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/git/dosgit-1.0.4.zip Git for Dos]
+
|(none)
|[[Hugo]]
+
|[http://mirror.ifarchive.org/if-archive/programming/hugo/executables/AcornHugo25.zip AcornHugo]
|[[SCARE]]
+
|(none)
|[http://www.ifarchive.org/if-archive/programming/alan/executables/arun281dos.zip ARun], [http://www.ifarchive.org/if-archive/programming/alan/executables/glkarun-2.86-dos-2.zip Glk ARun]
+
|(none)
 
|(none)
 
|(none)
 
|-
 
|-
Line 138: Line 138:
 
|(none)
 
|(none)
 
|-
 
|-
!Android
+
!Windows
|[[Text Fiction]], [[Son of Hunky Punk]], [[Twisty]], [[Thunderword]], [[Incant]], [[ZMPP]], [[JFrotz]]
+
|[[Filfre]], [http://mirror.ifarchive.org/if-archive/infocom/interpreters/frotz/WindowsFrotz.zip Windows Frotz], [[Lectrote]]
|[[Son of Hunky Punk]], [[Thunderword]]
+
|[[Gargoyle]], [http://mirror.ifarchive.org/if-archive/interpreters-tads/htads_playkit_HT20.exe HTML TADS Playkit], [[QTads]],
|[[Thunderword]], [[Incant]], [[AndroidIF]]
+
|[[Filfre]], [http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/git/wingit-1.0.6.zip Git], [http://mirror.ifarchive.org/if-archive/programming/glulx/interpreters/glulxe/WinGlulxeInstaller.exe Glulxe], [[Lectrote]], [[Zag]]
|[[Thunderword]]
+
|[http://ifarchive.org/if-archive/programming/hugo/executables/hugov31_win32.exe Hugo Multimedia Interpreter], [[Hugor]], [[Lectrote]]
|[[Thunderword]]
+
|[[ADRIFT Runner]]
|?
+
|[http://www.ifarchive.org/if-archive/programming/alan/executables/arun286bwin.zip  ARun], [[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan/executables/arun287-5-glk-win32-ix86.zip Glk Arun]
|?
+
|[[Gargoyle]], [http://www.ifarchive.org/if-archive/programming/alan3/executables/winarun3_0alpha6.win32.x86.setup.exe  WinARun]
 
|}
 
|}
  
Line 160: Line 160:
 
==Types of Interpreters==
 
==Types of Interpreters==
  
* <b>[[Z-machine]]</b><br>This is the one that Infocom invented in the late 1970s.
 
 
* <b>[[Glulx]]</b><br>This is something of a redesign of the Z-Machine with many new features.
 
* <b>[[Glulx]]</b><br>This is something of a redesign of the Z-Machine with many new features.
* <b>[[TADS]]</b><br>This is a system designed by [[Mike Roberts]] in the late 1980s. TADS2 is well established and TADS3 is a redesign.
 
 
* <b>[[Hugo]]</b><br>This is a system designed by [[Kent Tessman]], somewhat inspired by Inform and TADS but designed to be easier to work with.
 
* <b>[[Hugo]]</b><br>This is a system designed by [[Kent Tessman]], somewhat inspired by Inform and TADS but designed to be easier to work with.
 +
* <b>[[TADS]]</b><br>This is a system designed by [[Mike Roberts]] in the late 1980s. TADS2 is well established and TADS3 is a redesign.
 +
* <b>[[Z-machine]]</b><br>This is the one that Infocom invented in the late 1970s.
  
 
[[Category:Interpreter]]
 
[[Category:Interpreter]]
 
[[Category:Glossary]]
 
[[Category:Glossary]]

Latest revision as of 00:49, 20 May 2020

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.


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 TADS1 Glulx Hugo ADRIFT Alan2 Alan3
Story File Extension .z5, .z8,.z3,.zblorb .zlb (other .z# or .dat, rarely) .gam, .t3 .ulx, .blb, .gblorb .glb .hex .taf .acd/.dat .a3c/.a3r
Android Fabularium, JFrotz, Incant, Son of Hunky Punk, Text Fiction, Thunderword, Twisty, ZMPP Fabularium, Son of Hunky Punk, Thunderword AndroidIF, Fabularium, Incant, Thunderword Fabularium, Thunderword Fabularium Fabularium, Thunderword Fabularium, Thunderword
DOS DOS Frotz DOS TADS Git for Dos Hugo SCARE ARun, Glk ARun (none)
Linux Gargoyle, Frotz (redhat binary RPM), Lectrote Gargoyle, QTads Gargoyle, Lectrote, Zag Gargoyle, Hugo wxGTK, Hugor, Lectrote Gargoyle, SCARE Gargoyle, Glk Arun ARun in Full Distr, Gargoyle
Mac OS 10.12 Sierra Gargoyle (unofficial build for MacOS 10.12), Lectrote Gargoyle (unofficial build for MacOS 10.12) Lectrote Lectrote ? (none) ?
Mac OS X Gargoyle, Lectrote, Spatterlight, Zoom CocoaTADS, Gargoyle, HyperTADS2, Spatterlight, QTads Lectrote, Spatterlight, Zag Spatterlight, Hugo, Hugor, Lectrote Spatterlight, SCARE (none) Arun in Full Distr, Spatterlight
Mac System 9 MaxZip, Nitfol HyperTADS Glulxe for Mac Hugo (none) ARun, Glk ARun (none)
Palm Frobnitz (none) CellarDoor Hugo Palm (none) (none) (none)
PocketPC Pocket Frotz Pocket TADS Git PocketPC Hugo WinCE (none) (none) (none)
RISC OS Frotz, Zip2000 AcornTADS (none) AcornHugo (none) (none) (none)
Symbian Frotz 1.08 uiq ? ? ? ? ? (none)
Java ZPlet ? Zag ? JAsea ? (none)
Windows Filfre, Windows Frotz, Lectrote Gargoyle, HTML TADS Playkit, QTads, Filfre, Git, Glulxe, Lectrote, Zag Hugo Multimedia Interpreter, Hugor, Lectrote ADRIFT Runner ARun, Gargoyle, Glk Arun Gargoyle, WinARun
1 As of April 2012, only QTads is compatible with TADS 3.1 games. Other TADS interpreters are compatible with TADS 3.0 games, but may not support HTML TADS graphic and sound features.
2 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, and Mobile apps for downloading or playing IF.

Types of Interpreters

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