Development:ZZT
This page details development materials of ZZT.
For nearly 30 years it was believed that the original source code of ZZT was was entirely lost in a hard drive crash around 1993. However, on January 28, 2023 community member asie published a repository called The Almost of ZZT containing a development copy of the source code with files dating between June 12-19, 1991. The code stems from the Softdisk published Worlds of ZZT branch, which means it is very close to ZZT 3.0 (see the revisional differences for more information). However, Softdisk's legal descendants did not respond to any requests for permission to publish the code, so all Softdisk-authored code chunks were excised by asie prior to publication (which amount to a very small portion of the overall codebase).
It is worth noting that this repository is different from asie's Reconstruction of ZZT, which is a decompilation of the engine that was made without the benefit of any original source files. The Reconstruction was released under the MIT License with express permission from Tim Sweeney. A quick perusal of the two repositories will quickly reveal that the naming conventions, coding style, and comments have no relation to each other.
Element Names
The file GLOB.PAS defines constants for every element (or "thing") in ZZT. The names of these constants have several interesting diversions from the user-facing names found in the editor.
Constant names that are different from their given names are bold in the following table:
Constant Name | Element Name |
---|---|
Empty | Empty |
Bound | (Unnamed: Board Edge) |
Special | (Unnamed: Message Timer) |
Monitor | Monitor |
Player | Player |
Ammo | Ammo |
Torch | Torch |
Gem | Gem |
AKey | Key |
Door | Door |
Scroll | Scroll |
Passage | Passage |
Duper | Duplicator |
Bomb | Bomb |
Energizer | Energizer |
SBomb | Star |
ConveyorCW | Clockwise |
ConveyorCCW | Counter |
Bullet | Bullet |
Water | Water |
Brush | Forest |
Solidwall | Solid |
NormWall | Normal |
BreakWall | Breakable |
Block | Boulder |
SliderNS | Slider (NS) |
SliderEW | Slider (EW) |
FakeWall | Fake |
InvisoWall | Invisible |
BlinkWall | Blink Wall |
Xporter | Transporter |
Line2 | Line |
Ricochet | Ricochet |
HorizWall | (Unnamed: Blink Wall Ray EW) |
Chaser | Bear |
Wanderer | Ruffian |
Prog | Object |
Slime | Slime |
Shark | Shark |
Shooter | Spinning Gun |
Pusher | Pusher |
Enemy | Lion |
SEnemy | Tiger |
VertWall | (Unnamed: Blink Wall Ray NS) |
CentiH | Head |
Centi | Segment |
xxx1 | (Unnamed: Unused) |