If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Development:ZZT

From The Cutting Room Floor
Jump to navigation Jump to search

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)