Z-Machine Versions

Version 1

The Z-machine as originally constructed was surprisingly similar to that in use when Infocom ground to a halt. Version 1 (1979-80) had essentially the same object format, for instance, and a similar header, but encoded text with a different character table and had no concept of synonyms. Its addresses were all word-addresses and not byte-addresses, so presumably a small amount of memory was wasted in null bytes to fix parities everywhere.

Version 2

Version 2 was quite a minor enhancement, presumably made only because a new interpreter had to be written anyway. Synonyms appeared, but only in one 32-word bank, and the six-digit serial number appeared in the header, though it wasn't always the date in those days: Release 7 of `Zork II', for instance, is numbered UG3AU5. (Other bizarre serial numbers, such as 000000, are presumed to be the result of software pirates covering their tracks.)

Version 3

Version 3 changed the text encoding alphabets again, and tripled the number of synonyms possible. (Consequently the previous "caps lock" style permanent changes of alphabet were dropped). The "verify" code and verify checksums appeared; and a new opcode to print the status bar at the top of the screen was introduced. (Previously, this was updated only when input was taken from the keyboard.) The earliest Version-3 releases (`Deadline', then `Zork I' and `II') were in March and April 1982; the latest (the `Minizork', a cassette-based Commodore-64 sampler of `Zork') in November 1987.

A primitive form of screen-splitting (which, presumably, was devised in a hurry in 1984 and then accidentally became the foundation for the character graphics designs of later versions) was allowed by some interpreters, in order to give `Seastalker' a sonar display. In order that `Seastalker' should run on less enlightened interpreters, the game itself contained code to check whether this feature was available before using the opcodes. And The Lurking Horror (1987) has sound effects (on some machines) - another sign of things to come.

Nevertheless by 1982 the Z-machine had stabilised to a reasonably clean design. It was very portable, contained everything reasonably necessary and most of its complications were optimisations to squeeze a few more bytes out of the 100K or so available on an early-1980s floppy disc. (Actually the Zilch's code generator, although very good at exploiting these tricks, had little larger-scale optimisation, and some of its code makes disheartening reading. But then the same could be said of Inform.)

By 1985 there were two basic pressures to change. One was that home computers were larger, and several fundamental restrictions (the game size being only 128K, the number of objects only 255, the attributes only 32, the properties only 30) were beginning to bite. The other was the drive for more gimmicks - character graphics, flashier status bars, sound effects, different typefaces, and so on. The former led to logical, easy to understand structural changes in the machine. The latter, in contrast, made a mess of the system of opcodes.

More does not mean better: just because the price of paper falls is no reason to double the size of the modern novel, for instance. Nor is literature (pace e. e. cummings) much improved by using four different typefaces and illustrating it with typewriter pictures. Also, the relieving of size restrictions only increased design time - or lowered its quality.

Version 4

Two excellent games resulted from the lifting of size restrictions. In August 1985 the first version 4 game (`A Mind Forever Voyaging') reached production, and it was followed most notably by `Trinity' (which had previously been shelved as too ambitious for the version 3 format). Still, most of the new 1985/6 games remained in version 3: after all, there were still plenty of 8-bit home computers around, too small for version 4 games: and, despite critical acclaim, the new games consequently did not sell as well.

Version 5

Version 5 games began to appear in September 1987 with `Beyond Zork' and `Border Zone'. Both of these games needed new features - character graphics gone wild in the case of the former, and real-time keyboard interaction in the latter. The number of opcodes grew ever faster as a result.

Version 6

Although five old games were re-released in Version 5 editions (with an in-game hints system added, and benefiting from 9-letter word dictionaries, but otherwise as written), the direction was all too clearly away from the old text game into graphics. Having gradually moved this way (`Beyond Zork' can look like a parody of an early mainframe maze game, for instance) there was nothing left but to complete the process, and so Version 6 was born. After something of a hiatus in 1988, the last few increasingly-unrecognisable Infocom games appeared: `Zork Zero', `Shogun', `Journey', and `Arthur'.
Derived from The Specification of the Z-Machine by Graham Nelson.

Infocom Homepage

Last revised: Wed Jul 26 11:06:07 EDT 1995 / Peter Scheyen <pete@csd.uwo.ca>