Z-Machine Versions
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 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 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.
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 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.
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.
Last revised: Wed Jul 26 11:06:07 EDT 1995 / Peter Scheyen <pete@csd.uwo.ca>