Survey of Text-Adventure Development Systems for Linux

I wanted a way to:

  1. Build text-adventure games with sounds and images on Linux.
  2. Use a source-level debugger on those games on Linux.
  3. Play those games with an interpreter that supports sounds and images on Linux, OS X, and Windows.
  4. Play those games on the Web with either a Java applet or JavaScript.

So, I looked at ADL, AdvSys, ALAN, Hugo, Inform 6/Z-Machine, Inform 7/Glulx, JACL, TADS 2, and TADS 3, all of which are available for Linux, and I believe that the systems that met each requirement are:

  1. ALAN, Hugo, Inform 6/Z-Machine (w/ v6lib), Inform 7/Glulx (w/ Glimmr), JACL (w/ Glk), TADS 2 (HTML), and TADS 3 (HTML) all have multimedia support.
  2. TADS 2 has a source-level debugger (but ADL, ALAN, Hugo, and Inform 6/Z-Machine all have symbolic debuggers).
  3. ALAN, Hugo, Inform 7/Glulx, TADS 2, and TADS 3 all have multimedia interpreters for each major desktop.
  4. TADS 2 and Inform 6/Z-Machine have Java applet interpreters (but the Z-Machine applet only works for z3/z5 games) and Inform 6/Z-Machine and Inform 7/Glulx have JavaScript interpreters.

All the programs I looked at can probably be used on Darwin, FreeBSD, and illumos as well as Linux. Let me know if I missed anything.

Edited: to add JavaScript interpreters.

Do you mean specifically parser-based text adventures?


Because I’m curious: Why the Java applet requirement for web playing?

I’d like the game to run in the browser, instead of on a server, and Java VMs are available on many platforms. Are other, similar options available?

Java applets died a merciful death more than 10 years ago. There are JavaScript interpreters for many systems, including Z-machine, Glulx, Quest, Adrift, JACL and (partially) Hugo.

Inform has gone in the direction of Javascript interpreters rather than Java. More widely available, less… let’s say less Oracle :/.

To be clear, you can’t run Java applets on iOS or Android. Windows, Mac, and Linux combined are now smaller than iOS + Android.

I guess I’ll need to look at JavaScript interpreters too.

MacOS and Windows no longer come with Java installed, so there’s additional friction there as well.

And of course Google Chrome/Chromium no longer supports the plugin architecture Java uses.

And TADS 3 has an AJAXy server-based interpreter for web games, although you need to compile the game with the webUI library to use it.

The Aetheria Game Engine ( satisfies all of the conditions you mention.

In you can see a summary of features.

there is a javascript make for JACL? if so, where can I find it?

Looking at my */bin dirs, there’s also scottcom, but the story file generated is incompatible with the available Linux 'terps, and Zilf/Zapf (the current best mean for writing z3 story files, IMHO) runs well under Linux+mono.

I suspect that the pair or so of python/perl IF languages (and their respective 'terps) can run fine under Linux.

Best regards from Italy,
dott. Piergiorgio.

Instead engine have debugger, works on Win, Lin, ios, Android and web. Writing games on lua.

A JavaScript interpreter for Z-machine is my own “JSZM” program (later I can also make XJSZM). However, it requires some ES6 features, so some JavaScript engines may not support it (although the newest versions of Firefox and Node.js both support it, and probably so does Chromium, which uses the same V8 as Node.js does). When considering JavaScript implementations of any VM, you may also consider if it uses ES6 features and so on.

Another compiler for Z-machine is ZILF, which requires Mono to use on Linux (although I have not yet tried it myself). For Linux, there is also my interpreter ZORKMID, in C. And then there are more than just the VM systems you listed. For example, I think Inform6 can also compile into Glulx (since Inform7 compiles into Inform6), although this is probably not particularly relevant to what you are doing. Many other programs may also run in emulators such as DOSBOX or whatever.

Other VMs include OASYS (a very old VM; story file binaries are dependent on int size and byte order when used with the original OAI interpreter, although my own implementations will work regardless of int size and byte order), and TAVERN (a rather new VM, of my own invention). Compiling the original OASYS sources are probably difficult because there is an include file missing, but you can run them under DOSBOX or use my implementations. There are probably others that I have forgotten, too.

You say there is also scottcom. Is there the VM specification? Then an implementation compatible with Linux can be written, and then it will be compatible.

There are source-level debuggers for the Z-machine, too: Nitfol, ZLR, maybe others.

Actually I tried ZILF without Mono but straight WINE on Linux and it worked fine out of the box. But I would suggest Mono regardless due that you get better potential with WINE when it is fully installed, along with libraries and C sharp libraries.