Linuxdoc Linux Questions
Click here to ask our community of linux experts!
Custom Search

11. Interpreters

11.1. SCUMM Engine (LucasArts)

Lucasarts wrote an engine for point and click adventures named SCUMM (Script Creation Utility for Maniac Mansion). They wrote many graphical adventures using SCUMM, like their famous Monkey Island series (all three). Ludvig Strigeus was able to reverse engineer the SCUMM format and write an interpreter for SCUMM based games that compiles under Linux and Win32 named scummvm <>. Their website is very good, and chock full of any kind of information about SCUMM and playing these games under scummvm.

A compatibility page is maintained at the scummvm website. FWIW, I've been able to finish many of the games that are listed as 90% done with no problems. scummvm is rock solid, and allows you to purchase SCUMM based Lucas Arts games, copy the data files to your hard drive and play them under Linux. As of February 2002, I've been following their cvs, and this project is undergoing constant development. Kudos to the scummvm team.

11.2. AGI: Adventure Gaming Interface (Sierra)

The older Sierra DOS graphical adventure games used a scripting language named AGI (Adventure Gaming Interface). Some examples of games written in AGI would be Leisure Suit Larry I (EGA), Space Quest I and II, King's Quest II, Mixed-Up Mother Goose and others. These games can be played using sarienon> <>, an open source interpreter for AGI games.

Sarien was written in SDL, so it should run on any platform that can compile SDL programs. In addition, there are versions for DOS, Strong-Arm based pda's, QNS (holy cow! embedded gaming!), MIPS based systems and SH3/4 based Pocket PC's. The developers are clearly out of their minds (in a good way!). Sarien also has numerous enhancements not found in the original games, like a Quake style pull-down console, picture and dictionary viewer, enhanced sound and support for AGDS, a Russian AGI clone. Sarien is under development and the developers have been very good about documenting the Sarien internals if anyone wants to get involved in hacking it.

11.3. SCI: SCript Interpreter or Sierra Creative Interpreter (Sierra)

The newer Sierra graphical adventure games (we're talking about the late 80's here) used an interpreter named SCI. There were many versions of SCI since Sierra was constantly improving its engine. The original SCI games were DOS based, but Sierra eventually started releasing Win32 SCI based games. Some examples of games written with SCI are Leisure Suit Larry 1 (VGA), Leisure Suit Larry 2-7, Space Quest 3-6, King's Quest 4-6, Quest For Glory 1-4 and many others. Compared with AGI games, SCI adventures have better music support, a more complex engine and loads of bells and whistles.

Many SCI based games (games written in SCI0) can be played using freesci, available at Like Sarien, FreeSCI has many graphics targets including SDL, xlib and GGI, so this program can compile and run under an incredible number of platforms. The developers have done a fantastic job of documenting and FAQing their application.

11.4. Infocom Adventures (Infocom, Activision)

The Z-machine is a well documented <> virtual machine designed by Infocom to run their interactive fiction games. This allowed them to write game data files in a cross platform manner, since only the engine itself, the Z-machine, would be platform dependent. Z-machine went through a number of revisions during the lifetime of Infocom, and two further revisions (V7 and V8 created by Graham Nelson) after the Infocom's demise. The later versions even supported limited sound and graphics!

One of the most popular Z-machine interpreters is Frotz <>. This excellently done page has many nice links for interactive fiction fans. Frotz is GPL, runs all versions of Z-machine and will compile on most versions of Unix. Frotz has spawned many forks, like a version for PalmOS and Linux based PDA's.

jzip <> is another very popular Z-machine interpreter that will run V1-V5 and V8 Z-machine data files. jzip is very portable; it compiles on all Unices, OS/2, Atari ST and DOS.

There are actually many other Z-machine interpreters like nitfol and rezrov (written in Perl!). Each interpreter has its own set of strengths, and you can find links to them on the home pages for Frotz and jzip.

11.5. Scott Adams Adventures (Adventure International)

Scott Adams is, arguably, the father of interactive fiction. Although he himself was inspired by the first piece of interactive fiction, Adventure, Scott brought adventuring to the masses. His games were available for Atari, Apple 2, Commodore, Sorcerer, TI, and CPM. His company, Adventure International, released a number of much loved games between 1978 and 1984 before folding. He recently released a new game (a Linux version is not available) but since the decline of adventuring, he has pretty much kept out of the gaming industry.

Alan Cox wrote scottfree, a Scott Adams adventure game file interpreter for Unix. Using scottfree and any of the Scott Adams data files which can be downloaded from Scott's website <> you can enjoy these classics.

11.6. Ultima Underworld: The Stygian Abyss (Origin, Blue Sky Productions)

The Underworld Adventures project <> is an effort to port the 1992 classic, Ultima Underworld: The Stygian Abyss, to modern operating systems like Linux, MacOS X, and Windows. It uses OpenGL for 3D graphics, SDL for platform specific tasks and is released under the GNU GPL. Underworld Adventures provides an impressive graphics system which uses the original game files, so you'll need the original game disk to play.

Underworld Adventures also provides a bunch of tools for you to display the level maps, tools for examining uw1 conversation scripts and more.

11.7. Ultima 7 (Origin, Electronic Arts)

Ultima 7 is actually 2 games: part I (The Black Gate) and part II (Serpent Island) which uses a slightly enhanced version of The Black Gate's engine. In addition, an addon disk was released to both part I (The Forge Of Virtue) and part II (The Silver Seed).

A team of people developed Exult <> which is an open source interpreter that will run both parts of Ultima 7 and their addon disks. Exult is written in C++ using SDL, so it will compile on any platform that can compile SDL programs. It also features some enhancements over the original versions of the Ultima VII engine. You'll need to purchase a copy of Ultima 7 to play. The developers have no plans on extending Exult to interpret the other Ultimas since the engines changed so radically between releases.

The Exult team has also been hard at work creating a map editor, Exult Studio, and a script compiler that will let users create their own RPG in the Ultima style.

11.8. System Shock (Electronic Arts, Origin)

System Shock is a classic first person shooter/adventure from 1994, which puts it as a contemporary of Doom. However, its engine is much more feature rich than the original Doom: for example, System Shock had 3D sprites, free look and a facility to have objects on top of each other, giving the illusion of a full 3D map, like Quake. Game reviewers agree that this game has the features of Quake with a story-line more compelling than Half-life. The System Shock engine was optimized for sophistication, while Doom's engine was optimized for throwing lots of monsters at you; a completely different appoach. Quite impressive for such an old game!

The System Shock Hack Project <> is an attempt to update the game for modern operating systems. The project uses SDL and is released under the modified BSD license. While you need the original game files to play SSHP, it should work with the System Shock demo, which is freely available.