I found this paper in the 1979 version of MDL Zork. The writer is unknown (but I suspect one Mr. Blank). It’s a detailed discussion on the workings of the parser. This is obviously for the MDL Zork, but much of the mechanics carried over to Infocom. Anyway, I found it interesting…
Thanks!
It’s interesting how much emphasis they put in this paper on the speed of parsing a command.
Like, it’s a good thing we early out if you pass in a cardinal direction because we don’t want the user waiting around while we try to figure out if we have to look up a word or two extra from a table.
CPU time was a limited resource. Zork had a couple of limits for playing. For example you got this message if you tried to start Zork during business hours:
Suddenly, a sinister, wraithlike figure appears before you, seeming
to float in the air. He glows with an eldritch light. In a barely
audible voice he says, "Begone, defiler! Your presence upsets the
very balance of the System itself!" With a sinister chuckle, he
raises his oaken staff, taps you on the head, and fades into the
gloom. In his place appears a tastefully lettered sign reading:
DUNGEON CLOSED
At that instant, you disappear, and all your belongings clatter to
the ground.
Another limitation was that if you SAVEd, you had to wait 24h before you RESTOREd.
Marc Blank commented on this in the ZIL Facebook-group and seems to agree that he wrote this document…
Consider that when Zork was written, the CPU was a resource shared between a dozen users.
The reason I find it interesting is that we are still doing the same things today. I work in game development, and we spend a crazy amount of engineering effort trying to cut out as much work for the CPU and GPU as possible, though we’re thinking a lot more about draw calls than string manipulation now.