Interested in making your own ZZT worlds? Great! You'll be joining hundreds of authors who have created thousands of games, and are invited to join our community filled with others who are excited to see what you can create and happy to answer any questions!
If you haven't done so already, you'll need to have ZZT installed on your computer. The ZZT Versions article covers what your options are for running the original ZZT executable on modern machines as well as source ports of ZZT that which can run without the need of a dedicated emulator.
In order to make your own ZZT worlds, you'll need an editor. The original ZZT includes one built in to the program, which while still capable of making worlds, it tends to be discouraged in favor of more recent third-party editors. These editors provide numerous functions not present in the original editor. They allow authors to access all sixteen colors, support placing elements that the default editor didn't allow (bullets, blink wall rays, board edges), and allow modification of initial values for health, ammo, and other counters. They also provide many quality of life features like the ability to select and move multiple tiles, copy/paste support, and syntax highlighting when writing ZZT-OOP code.
While you may not need these features, or may wish to make a ZZT game the way it was done originally, the ZZT editor also has a handful of bugs which can cause nasty issues ranging from objects' code being erased to corruption of boards leading to severe data loss. It is highly recommended to use an editor that isn't the original, no matter how small the project.
Popular options include:
- KevEdit by Kevin Vance - the first unofficial ZZT editor which uses a similar interface to ZZT's own editor.
- zedit2 by Lancer-X - An editor with support for displaying multiple boards at once, with a more modern interface including support for using the mouse to place tiles.
- ZCode by Kaddar - An extension for VS Code that allows ZZT worlds to be opened and edited. It also allows for easily bundling of files for web releases on Itch.io.
If you're looking to make a game for Weave, the highly enhanced and expanded ZZT-format compatible engine, there are alternate versions of these first two editors available designed specifically for Weave. These alternate versions, Loom and ZLoom are able to take advantage of Weave's increased limitations as well as capable of recognizing Weave's many new ZZT-OOP commands available with Weave downloads. Consult Weave's documentation for the details!
Tutorials
- The Joy of ZZT (2020) - A live streamed series showing how to make a ZZT game, designed for newcomers to follow along and work while they listen.
- Learning ZZT-OOP By Example With Examplia (2022) - A different approach at teaching ZZT-OOP. Examplia is a single board world with a number of simple, easy to reference objects that together make use of every ZZT-OOP command. The article is a companion piece that goes through the code of the objects and explains how it all works. If you're looking for practical applications to study rather than information about commands without any greater context, this may be a useful resource!
- Modern ZZT Editing With KevEdit (2017) - HTML tutorial for KevEdit that covers its basic operation as well as many advanced features
Reference Materials
- Modern Tools and Resources (2021) - Covers a mix of useful programs, utilities and web pages that go into some of the more technical details of ZZT.
- The Wiki of ZZT - A community ran wiki documenting ZZT elements, commands, sounds, and glitches.
- World Editor Help (1991) - A transcription of the help file for ZZT's default editor. This includes a short tutorial and complete list of ZZT-OOP commands.
- ZZT-OOP 101 (2022) - A thorough help file documenting ZZT-OOP with where a command might be useful, examples of its use, and things to watch out for when using certain commands. This is an up to date guide designed to be easy to reference while working with ZZT.
- ZZT Oops - Common Mistakes By Beginners (2020) - Covers many of ZZT's idiosyncrasies that can catch newcomers off guard including running out of stats, the "alligned" typo, the bottom row #put bug, and more.
Useful Worlds
- ZZT Encyclopedia Online - A community project that run from 1997 through 2002 filled with contributions by ZZTers to demonstrate and explain a number of techniques, engines, and ways of exploiting ZZT's glitches. (An earlier revision, version 3C contains much of the same information in an easier to navigate pair of two worlds rather than one per category which makes for easier browsing and re-finding entries contained within.)
- ZZT Syndromes - A world created to show ZZTers what not to do. Though much of it comes off as common sense to experienced game developers (providing enough resources, making sure board exits are properly connected), it was an immensely useful world for ZZTers who hadn't considered what makes a game enjoyable or not before. Still worth perusing at least once even today./li>
- ZZT Crime - A Syndromes inspired world that covers some other common hangups found in ZZT worlds that authors should avoid. This one can get a little bit opinionated, so don't take it as gospel.
- ZZT Help Kit - A short world with a number of example objects to reference and use in your own ZZT games. Can be helpful for beginners.
- Mega ZZT - Another world similar to the ZZT Help Kit.
- The 2021 Make a Neat ZZT Board Contest-Jam Type Thing Compilation - An event aimed at getting folks brand new to ZZT to create a single board. This compilation may be a useful demonstration of what new ZZTers can pull off.
Publishing Your Creation
- ZZT To The Masses: Publishing To The Museum And Itch.io - A guide for the Museum's upload functionality and making your game available on Itch.
Ask The Community!
If you have any questions about ZZT, feel free to ask us! The Discord of ZZT is the home of the ZZT community and is full of folks old and new alike who are happy to answer any questions you may have! Stop on by and let us know what you need help with, and we'll do our best to help out! We'd love to see what you come up with!