the cutting room mirror

ZZT

This article has a talk page!
view on tcrf.net

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)