Newsgroups: rec.arts.int-fiction
Path: nntp.gmd.de!news.ruhr-uni-bochum.de!news.uni-stuttgart.de!rz.uni-karlsruhe.de!ka.sub.net!blackbush.xlink.net!tank.news.pipex.net!pipex!netcom.net.uk!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Z?
Message-ID: <erkyrathE0GKv5.L00@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <01bbcb8e$d46983e0$0e3699ce@shadetree.shadetree.com>
Date: Wed, 6 Nov 1996 17:06:41 GMT
Lines: 35
Sender: erkyrath@netcom.netcom.com

Dan Dalton (rimfire@shadetree.com) wrote:
> I've read the history of infocom and browsed through alot of
> post here but never have I come across anything that clearly
> states what the Z-MACHINE is or what it does; one states it was created to
> handle the memory problems of older machine (allows
> them to play games 118k in size on a computer that has 36k)

That's really a small part of what it does. The main thing is that the 
Z-machine is a fixed standard. Infocom wrote thirty games, and most of 
them -- in the early days, all of them -- appeared on more than a dozen 
different home computers. They *really* didn't want to write 360 
different programs (12 * 30).

So they wrote all of their games for the Z-machine, and then wrote a 
Z-machine interpreter for each computer. Thus, only 42 programs (12 + 
30). I trust the reduction in effort is obvious.

(I'm simplifying, of course -- there were several versions of the 
Z-machine. But you get the idea.)

We're still using the same system; we write games for Z-machine or the 
TADS machine, and they run on any platform on the appropriate interpreter.

The memory thing is kind of a side benefit. The game assumes that the 
Z-machine has enough memory to run it. If the machine doesn't actually 
have enough memory, the interpreter can be written to do a "virtual 
memory" thing and load different pieces of the game as necessary. The 
game author never needs to worry about this.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."
