Z-Machine Preservation Project -> Further Information

Further Information


Who this Z-code interpreter is for

There are already a lot of existing implementations of the Z-machine, for almost every platform, and there are even several Java implementations, namely Zax, Zplet and Zinc-IF.

ZMPP has the advantage of supporting almost all the aspects of a full-featured Z-code interpreter, including the latest developments in the Interactive Fiction community.

This interpreter mainly targets at:

Why I wrote this interpreter

I started this project because I wanted to improve my skill in Test-Driven Development. Having written several little Arcade games before, I thought that a Z-code interpreter would have exactly the right complexity for a practice project.

In the beginning, I only wanted to play Infocom games with it, so I purchased a copy of "Masterpieces of Infocom" (for 180 bucks !) on Ebay. That is also the reason why it supports version 1, 2, 4 and 6, which many other interpreters do not support because there are only a few games available with these versions. However, the games written in version 4 are some of the best IF ever written and supporting version 6 is an interesting technical challenge.

The exercise turned out to be very successful and thanks to the test-driven approach, ZMPP has a pretty clean source code structure, which is very helpful in maintaining and extending the software.

Why Java 5

ZMPP requires at least a Java 5 system to be installed for one reason: Java 5 is a much better development platform than all previous versions, so once I started using it, I would never want to look back.

This Z-code interpreter relies on specific features of Java 5 such as generics. The new concurrent library is used to implement the sound and interrupt systems.

The Java Runtime System 5 can be downloaded from the Sun Microsystems website and is available for most web browsers.