The Reconstruction of ZZT
github.com
github.com
It included a level editor and scripting language, which allowed anyone to unleash their creativity and design their own text-mode games using the ZZT engine.
This was absolutely unique at the time.
As a company, Epic is still hugely successful. Most gamers in 2020 have probably heard of Fortnite and Unreal Engine. According to Wikipedia, Tim Sweeney still owns over 50% of the company.
ZZT explored a lot of ideas about how to build a game creation system, which influenced Unreal Engine, which itself was hugely influential throughout the game industry.
The standard paradigms for today's game engines and editors was clearly influenced by ZZT.
> This was absolutely revolutionary at the time.
Well... OK, I'll give you this maybe in the DOS world and maybe on the US side of the Atlantic. Maybe. And granted that we didn't all, me included, have access to the latest and greatest of anything back then: you knew only what you were exposed to through computing magazines, cover disks, and printed manuals, and you might not have extensive access to many of those. Almost all of my paper round income went on computer magazines back then.
Still, AGT (Adventure Game Toolkit), based on an earlier program called GAGS, was released for DOS in 1987.
Moreover, in the 8-bit world, The Quill was released for the ZX Spectrum in 1983, GAC (Graphic Adventure Creator) was released in 1985 for Amstrad, ZX Spectrum, C64, and even BBC Micro, and PAW (Professional Adventure Writer) - a successor to Quill - was released in 1987.
Point being, a wide variety of text and graphic adventure "construction set" programs were introduced in the early 1980s, and were widespread by the early 1990s.
However, most of those were either commercial products or restricted the editing capabilities in some manner to free users. ZZT was shareware, but the registered version differed solely in the amount of official game worlds available (and the lack of a registration message on exit). The editor was fully-featured and no restrictions were put on usage. This is what I think makes it stand out from other game creation tools of the era and what made it a popular tool on BBSes.
It had built-in, non-configurable stuff for action gameplay with some puzzle elements. It did very little with regards to assets, unlike contemporaries - no animation sets or hitbox definitions or music importer or similar ideas, really just a level editor. It was just not good in terms of shelf-space bullet points - nothing flashy about it. If that was all that it had, it would not be a hugely differentiated game since the level editor concept had been around since Lode Runner.
But it also had code, and code integrated in a way that was well documented and tutorialized. It had scripted behaviors, functionality to manipulate and transform the board, and hypertext dialogues with event flag toggles. Having the hypertext and flags may have been the one most critical part of all this since it really enabled choice-based interactive storytelling techniques, and that's a huge deal even if you didn't have enough of an algorithms background to try abusing the other functionality to make a platformer or whatnot.
And so I think the longevity of ZZT really rests in the way that it guides you towards code, because it has so little else to offer.
One of the most impressive was the 3D Construction Kit from Incentive Software (who also published the Graphic Adventure Creator/GAC). Released in 1991, it used the Freescape 3d engine from Driller (1987) and Castle Master (1990). I remember it being a big deal in the magazines of the time.
(As an aside, I've wanted to investigate the hypothesis that early 90s VR tools like Sense8 Worldtoolkit may have had an influence on modern game engines, but I have never been able to find out much about them)
Was mind-blowing to find out the same guy was behind both (not to mention Jazz Jackrabbit, which I also loved)!
"Please don't ask for the source; if I had it, I'd release it, but I lost it in a crash a long time ago." -Tim Sweeney
https://web.archive.org/web/19991010013339/http://www.epicga...
I find the whole thing interesting, because I remember the shareware versions that I downloaded from my friendly neighborhood BBS offered the source code for a fee; a large fee, if memory serves. I wonder if any of the purchasers of said source code might still have it sitting around on their floppies somewhere.
None of the BBS releases for ZZT we found have such a statement; though I do think there exist some pieces of software which did.
Thank you so much for what you did here! This is seriously awesome!
Edit: I haven't found the floppy yet, but as I think about it some more, I may be remembering Kroz (and not ZZT) as offering the source code for a fee...
That seems crazy that someone could reverse engineer compiled code back into the higher level language it came from, and then have that code compile into the exact same executable. Obviously, you can keep modifying the code until it matches, but it's still impressive for anything other than a small program.
Why do you think that?
This is how most compilers used to work.
And languages like Pascal were specifically designed to be able to be compiled in a mostly single pass.
Look up ‘syntax directed translation’ in an old compiler textbook.
[0] https://eli.thegreenplace.net/2019/go-compiler-internals-add...
I wonder how kids today would see ZZT. I think they'd have a lot of fun with it once they got into it, but being an older DOS-based game, ASCII art and all, might be particularly strange to some. A lot of modern games, Minecraft being one that immediately comes to mind, invoke the creativity and that ZZT did in my generation. Still, I'd love to see what people would make in ZZT today.
Tangent: I can't believe it was this long ago now, but about 10 years ago I started working on reverse-engineering ZZT with the goal of putting together a web-based implementation that was compatible. That spiraled out of control into a brand new project I called MWorlds (https://mworlds.wordpress.com/).
Haven't toyed with this in ages, but the idea morphed into an open platform for making web-based games, including all assets (sprites, music, script packs, monsters, weapons, etc.), that any kid or adult could build and share and use in their own games. I really should just open source this someday. Or start hacking on it again.
A really memorable one was Code Red (https://museumofzzt.com/file/c/codered.zip), which just had so many little interactive things in at least the first area; a television set with multiple programs, a vacuum that would follow you around and explode if you vacuumed the wrong thing, it just kept giving. I don't actually remember getting very far in it though.
Anyway, more recently I got a similar "feel" that I got from ZZT back in PICO-8, a virtual console with a very accessible yet simple and intentionally limited editor; like ZZT, it gives you all the bells and whistles to create a game, but it's simple enough to avoid you reaching beyond the point where you can finish it. It having a built in game explorer (with online connectivity) means you've got thousands of indie games to explore. It's more versatile than ZZT, but still keeps you sane.
Who would have guessed of all the games I was playing in 1993 that ZZT would be the one where the creator went on to become a billionaire...
But that wasn't an indication for future life, he's a sysadmin-on-wheels now while I'm a pretty decent programmer.
Looking through the screencaps brings back a flood of memories. I remember playing a lot of DOS games where you had colored ASCII art and that was it. You really had to use your imagination to immerse yourself in the game and the default levels did a good job of conveying that.
Today's games look amazing. It's crazy to think that these text games could make you feel like you were in the game.
ZZT was a fun game creation system out of the box, but what always impressed me was some of the stuff that the community managed to come up with - mostly documented in the ZZT encyclopedia series as well as the Super Toolkit. It pushed the engine far beyond the limits of what it was intended for, and some the projects done with it absolutely blew my mind.
It was unfortunate that the source was lost, and for a long time the best you could do, aside from DOSbox, were projects like DreamZZT which, while admirable, didn't accurately emulate all of the peculiarities that many games relied on. But now this exists. Thank you.
There are now other ZZT-likes, the most popular of which is probably MegaZeux (which is now Free software, and continues to be maintained), although there is also ZIG, and a few others, including my own ZZ Zero. Each of them has different set of features. Although, most of them aren't used much other than ZZT and MegaZeux, I think.
The GitHub mentions to fix 5 annoying bugs in ZZT. I thought of fixing some bugs in ZZT (although not those that affect the behaviour of the game), and removing the editor (you can use an external editor instead, such as KevEdit or ZZTQED) and any stuff that is in there because it is only used by the editor, and probably also removing mouse and joystick mode and monochrome mode and VideoWriteTextCO40 (I don't know why that is in there, since ZZT doesn't use the forty column mode), and removing the initial prompt (to make it faster to load and further reduce the file size), and possibly adding an additional optional header in the world file which controls some new features and bug fixes, and allows customizing the contents of the ElementDefs array (the first number in the file would be different, so you can tell apart from standard ZZT worlds). I don't know when or if I might try to do this, though; I will of course need to install Turbo Pascal first, and read its documentation, before I could do such a thing.
Anyway, as someone who downloaded ZZT from BBSes and wrote ZZT-OOP back in the day, I love this. I recently started writing a version of ZZT in Go, but haven't progressed since being able to load and display worlds. :-|
- I'd love to give a more detailed explanation, but I've never managed to consistently operate a blog, so that might need to wait a while. - After getting some perspective, I may have overexaggerated the scale of the number of hours I had spent on this.