One of the challenges with running the Museum is figuring out what to do with things suitable for the Museum that are still in active development. By not offering them, useful tools go unknown to those who would benefit from them. Knowledge wounds up being hoarded on Discord, which even without getting into their recent ...fiasco, is hardly a good home for information. It's not viable for the ZZT community to be defined by "the Discord".
Simultaneously because there are tools actively developed there's the risk of a situation where a random version uploaded to the Museum winds up being the unintentionally definitive release. See KevEdit on the Museum being version 0.5 from 2002 as imported from z2's archive versus the latest release on GitHub being 1.1.2 from June of this year. It gets even more complicated when also looking at things from a preservationist perspective! In 2019 the Museum acquired an old release of KevEdit 0.1 which is a great historical artifact and terrible editing tool. Should the Museum of today be hosting copies of every release of Zeta? Should there be a "Zeta" file that gets updated to the latest version as it comes out? This has stopped being an introduction and quickly turned into a philosophy problem.
So as a stop-gap dealing with these questions and the unique state of the Museum's utilities section which is loaded with programs that can't run on modern machines. Let's just solve the problem by at least having a reference page on these modern tools and where to properly obtain the latest versions. There are new editors, image converters, alternate ZZT compatible executables, and plenty of wikis out there loaded with information that's been kept a bit too hidden.
ClassicZoo is asie's enhanced take on ZZT while maintaining 3.2 compatibility and targeting similar system requirements allowing it to still run on older DOS-era machines. It bolsters some significant overhauls to ZZT's limitations, name adding support for EMS/XMS memory which allow ZZT to go far beyond the 640k convention memory limit that restricts ZZT v3.2 allowing it to run worlds megabytes in size. Other limitations are worked around to the maximum allowed by ZZT's file format, allowing for individual boards to go from the old 20,000 limit to 65,500 bytes in size, and worlds themselves can have 256 total boards.
ClassicZoo offers a significantly more robust editor than that of ZZT v3.2. While it's not on the level of some external editors available, it does improve its abilities and usability significantly. The editor now features syntax highlighting, the ability to select the full range of colors, insert special characters in code, and copy/paste operations (for code and portions of the current board).
The cheats have also had a pretty hefty overhaul. Most importantly they can be listed by typing in
? on the cheat prompt. (So, question mark + question mark.) You can increment counters by arbitrary amounts, give individual keys, adjust the game speed, display flags... It's a pretty lengthy list. Definitely one of the nicest features is
SHOW [el] which allows you to make elements of a named kind flash. This can instantly reveal paths through invisible mazes or fake wall mazes.
It also cleans up the codebase a little, providing optimizations that don't matter on modern machines, but can squeeze out performance boosts for those playing ZZT on retro PCs. (Including the PC-98????) There's even a lighter build which removes the editor to free up additional memory.
ClassicZoo also does a little bit of modification to Super Locked worlds, attempting to uncorrupt the last board. The Super Lock utility corrupts the last board, which is supposed to be an extra board the author adds to sacrifice for locking purposes, but over the years there are plenty of games that didn't add an extra board and ended up unintentionally corrupting their own ending, credits, or actual gameplay board at the end of the list.
All in all, ClassicZoo comes highly recommended for players and creators of ZZT worlds alike. There's yet more to this program than these few tiny paragraphs get into which make checking out the page, changelog, and just using the program yourself well worth your time.
Designed to make playing ZZT friendlier, SolidHUD is my own ZZT v3.2 fork which most visibly differentiates itself from vanilla ZZT by changing its normal HUD into a solid one. That's the marketing blurb at least. The HUD is designed to fit into a small area ideal to crop for streaming while providing all the usual information given by ZZT in addition to some otherwise hidden details. SolidHUD exposes information to the player like adjacent boards, if the player will be returned to the start upon taking damage, shots allowed on the board, stat counts, flag counts, and the length of the audio buffer.
In addition to the HUD changes, a handful of tweaks for player convenience are implemented as well. The save list will always list the latest save on top making it easy to resume play. For minor last minute edits the editor will also ignore locks and happily edit a renamed save file. Players can also speed up tedious or otherwise poorly designed aspects of games with some additional cheats to adjust gamespeed, turn off collision for the player, or arbitrarily change boards. You can even get a rough estimate of how far into a game you are with a
% cheat that displays the number of boards the player has seen, the total, and the percentage explored.
It's not anywhere near as robust as ClassicZoo, but I like it!
Well, I suppose this one should be no surprise. Despite the best efforts of some people to spread the information far and wide about Super ZZT's flaws over ZZT. Some of which include a hidden editor, reduced stat limits, reduced board counts, bugs with the
? movement command, and so on. Despite this, nobody can deny the fact that Super ZZT is actually super neat. Interest is arguably at an all-time high (at least for this century). So it would make sense for asie to take a crack at giving Super ZZT the ClassicZoo treatment. In ZZT, the ClassicZoo changes make things a little nicer. They're definitely something worth having, but not gamechanging to the overall experience.
However because of Super ZZT's own rough state, the quality of life changes here are far more significant. The majority of changes are lifted directly from ClassicZoo, but here they have far greater impact. You get your usual bump of limits up to what the file format can support maxing out board memory and counts to 65,500 bytes and 256 boards (a drastic increase from Super ZZT's restrictive cap of just 33 boards). There's a new default font (that can be disabled on the commandline) which better reflects Super ZZT's intended* look, replicating its appearance on a CGA card. (See: De-uglifying 40-Column Text Games for VGA).
This time the editor is the star. Super ZZT's editor wasn't really intended to be user-accessible like ZZT's and as such is significantly rougher. It comess off less like an editor for Super ZZT and more like the ZZT editor was hit with a hammer until its output was shaped like a Super ZZT world. Super ClassicZoo gives the editor some much needed TLC, most notably when hitting the "V" key to change video modes into something far more suitable for working with Super ZZT's larger board dimensions. Normally this would be the be-all end-all editor for Super ZZT, but well, you're still in the top half of this article so it won't take too long before it loses its title.
One note at the time of writing however is that currently Zeta has issues with Super ClassicZoo necessitating the use of DOSBox on certain systems. Also the big picture mode is only available for editing, not gameplay.
* Okay so like, we know that Tim Sweeney made Super ZZT on a CGA device and therefore its 40-column mode would look more like the rendering used in Super ClassicZoo. Later Super ZZT worlds are more likely to have been developed on more recent hardware. It's a personal preference, although now people are totally getting interested in Super ZZT again and I suspect this presentation will end up being the de-facto display standard. (Of course if your Super ZZT game uses a custom font then you'd want that.)
zima is an image conversion tool that can export ZZT boards as well as screenshots of those boards. It is similar in concept to ComBuster's ZBitmap utility from 2003, but significantly more customizable and plays nicely with modern OSes. Images can be scaled, cropped, or have attributes like brightness and contrast tweaked. Unlike ZBitmap, the resulting board can use more than just walls when converting to ASCII. zima is smart enough to consider the stat limits of ZZT v3.2 and will use statless variants whenever possible. However, usual ZZT constants can be changed as well which lets the tool be adaptable to limit-lifting ZZT forks. The permitted elements and even colors may be adjusted as well, providing common preset lists such as no objects or only using tiles which the player can walk on.
The screenshot above is using this photo of Robin as its source image (at its native resolution. It's been downscaled for the web).
The speed and quality provided by zima combined with the very unique look of ZZT image conversions have led to several games incorporating the program into their workflow, perhaps most notably DeadPhrog's When There Is No More Snow, a visual novel that used the program extensively for its art.
For roughly a decade, ZZT games were made exclusively made using the ZZT editor. Then in the early 2000s the community got its first look at external editors with CyQ's ZZTAE and Kev Vance's KevEdit. Then for the next two decades, those were still your choices (with a smidge of ZAP), and with ZZTAE only existing as an MS-DOS program, KevEdit took over completely by virtue of still working in modern OSes. While it's still a fantastic tool, still supports DOS for older machines, and still gets the occasional update, it's also designed to fit the needs of the ZZT community in the 2000s.
zedit2 is Lancer's take on what a robust modern ZZT editor should be. It has better support than KevEdit for more technical wizardry, supporting "stat stacking" where multiple stats point to a single tile. Its code editor offers some nice conveniences such as allowing hovering over
#play statements to be told how many idles at cycle 1 it takes to play that block of audio. There's syntax highlighting and identification of lines of code that will throw errors, saving you plenty of headaches when you realize you wrote
#put e red bouldre. Plus you can actually edit while using custom fonts, unlike non-DOS builds of KevEdit.
Despite the extra power under the hood, many newcomers have found success with it as well. Returning ZZTers familiar with creating ZZT worlds will find themselves right at home with KevEdit's classic interface, but for those who haven't memorized F2+V to place a slime, the more mouse-driven interface and traditional program UI can feel more intuitive. In particular its style of editing is closer to that of MegaZeux's rather than ZZT's.
Not that there's a generational divide though! Long established ZZTers like WiL have also worked with zedit2 for their games, and some of the features it offers that KevEdit lacks can make it well-worth dabbling with regardless of prior editor experience or preference. Both tools have their place in the ZZT gamedev ecosystem today. zedit2 is a worthy successor and comes highly recommended for both ZZT newcomers and veterans alike!
Oh, and it also has its own image conversion function similar to zima.
Do you know how to make music in ZZT? I sure don't!
Music has always been uncommon in ZZT worlds partially due to the challenges of musical composition in general, but also due to miserable workflow. ZZT itself offers no way to hear
#play commands without leaving the editor, switching to gameplay, and getting the object to reach the relevant lines. KevEdit offers music testing, but prior to the Reconstruction, its playback could only approximate ZZT. Of course all of this means writing ZZT music in its native format which doesn't resemble the way any music for modern software is written.
But, if your method for writing music happens to be in tracker form, Lachesis's SFX Tracker is designed around create PC speaker based sound effects for both ZZT and MegaZeux which seems like quite a useful tool for those who have worked with such software before! For an example of what it can do, Lancer's For Elise used it to compose the game's soundtrack. Plus, the files for the For Elise soundtrack are included with the utility to reference as well.
Take note that this tracker is a MegaZeux world so you'll need a copy of the latest version of MegaZeux to run it!
Wiki of Weavers
Wiki of Weavers
Moving away from tools and beginning to share some useful sites, the first has got to be the Wiki of Weavers. This wiki tracks all sorts of ZZT-related information. Documentation on forks, clones, and other ZZT inspired programs lives here when in many cases it lived nowhere prior. The Wiki of Weavers is the spot for hard to find information as well as the host of plenty of modern ZZT tools.
Wiki of ZZT
Wiki of ZZT
A ZZT wiki focused on engine information over specific games, people, or ancient community drama. Pretty helpful at documenting little edge cases. Did you know
#char 0 will silently fail? Some articles helpfully explain our bizarre jargon. Frankly, the Sound effects page alone makes the site worthwhile.
These days the wiki has already cooled off a bit, but it remains open to new contributions and can be helpful as a quick and searchable reference for ZZT's elements and ZZT-OOP.
ModdingWiki - ZZT Format
ModdingWiki - ZZT Format
If you ever find yourself need to get some technical information on how (Super) ZZT (board) files are formatted, the ModdingWiki on Shikadi is the best reference around. Its technical definitions also include useful descriptive information. Plus it ends with a massive table of elements and their properties making a quick way to check up on how many points a ruffian gives, or if torches are pushable.
In addition to website and programs, there are plenty of helpful recent ZZT worlds out there that can serve as useful references for what is and isn't possible with ZZT. The below list are some worlds that may be useful or teach your something! Many of these were spawned after Rabbitboots's initial "Doodads" world followed by my own encouragement for others to also release similar worlds of collected odds-and-ends at the end of each year.ZZT Chrome - A recreation of ZZT v3.2's various interfaces in ZZT board form.
Doodads 2018 - Demonstrations of fog animations, one-object Conway's Game of Life, a maze walker, etc.
Doodads 2019 - Well this one is mostly art.
Doodads 2020 - More experiments was mazes.
2019 - Reference for elements and colors to hex codes, demonstrations of bugs including breaking passages and self-transporting transporters,
#bindon scrolls, etc.
2020 dot ZZT - Towing the player with a centipede, message behavior for one/multi-line messages, the "Push Enter to Select" bug, conveyor related bugs, zzo's darkness check, etc.
ZZT Programming Tricks and Techniques - Flag saving techniques, arithmetric in ZZT-OOP, special effects using centipede's leader/follower properties, etc.
ZZT Flag/Label Conformance Tests - Test suite for flags/labels to ensure a ZZT recreation handles more esoteric cases correctly.
ZZT Behavior and Side Effect Conformance Test v13.12.23 - Test suite for various elements to ensure proper handling/display in ZZT recreations.
Z Lab 2019 - Engines, 1d3 random number generator, etc.
2020 Stuff by KKairos - Maze generators, crashing ZZT, etc.
Z Lab 2020 - Objects that walk through walls, animation via blinkwalls, etc.
Play-Pen - Racing engine, rooms within rooms, etc.
The Worlds of ZZT project is committed to the preservation of ZZT and its history.
This article was produced thanks to supporters on Patreon.Support Worlds of ZZT on Patreon!