Z-Machine Preservation Project -> Further Information
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:
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.
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.