MegaZeux, or MZX, is a game creation system (GCS) inspired by Tim Sweeney/Epic Megagames' classic shareware game ZZT. MegaZeux was created in late 1994 by Gregory Janson, who formed his own company, Software Visions (now defunct). Like ZZT, MZX was originally released as shareware and the world editor portion of the program was included for free, allowing third parties to create their own worlds without even registering.
MZX is officially supported on Windows (Win95 and higher), Linux, Mac OS X, AmigaOS 4, Wii, GP2X, PSP, and the DS, but has been ported to other platforms such as OpenBSD, FreeBSD, OpenSolaris, HaikuOS and Android.
Improvements over ZZT
MZX improved on ZZT in almost every aspect:
- The graphics are still text-character based, but each character's foreground and background colors are independently assignable, and the character set could be edited to change the font, as well as to change unused characters such as the tilde or non-English characters into graphic symbols such as player pictures. The color palette was also made editable in version 2.00.
- 4-channel (MZX 2.07 and under) and 32-channel (MZX 2.48b and up) MOD music was supported, as well as SAM sound effects. Other module formats such as S3M were also supported via an intermediate format, GDM. Recent versions of MZX (2.80+) support advanced module formats, OGG (2.81+) and WAV directly.
- The game object programming language, originally named Robo-P (now Robotic), was heavily based on ZZT-oop, but was also heavily improved. Commands were now stored as bytecode instead of plain text, error checking was done in the editor instead of at runtime, and arithmetic commands were present. Later versions added functionality such as subroutines and mathematical expressions, although the nature of these additions was often unnatural due to the inability to edit the form of the language itself or to add new commands. Robotic currently has almost no memory restraints for code or the number of counters.
MegaZeux was shareware during the time Janson maintained the code. MZX came with a default game, Caverns of Zeux. This was a sequel to an earlier Software Visions shareware game, Labrynth of Zeux; a platformer about a theologian/archeologist named Vince Louis who retrieves the magical Silver Staff from the ancient Labyrinth of Zeux. In Caverns, Vince has just retrieved the Staff when it emits beams of magical power and teleports him into a vast network of caverns filled with traps, puzzles, and monsters. As incentive for registration, players could purchase the other three Zeux games (Chronos Stasis, Forest of Ruin, and Catacombs of Zeux), all of which dealt with Vince's quest to return home.
MZX was fairly popular with the ZZT community due to its new features, and Janson stayed around with the newly-formed MZX community for a while. He later released an entirely different game, Weirdness, which utilized the significant improvements made in MZX 2.00. Janson maintained MegaZeux up to v2.51; a bit after this release, Janson suddenly left the community and dropped MZX entirely (citing "going to college" and "personal reasons", though he also later elaborated during a return to IRC that he simply couldn't stand the average MZXer then), releasing all his work to the public domain. This included all of his previous ZZT work and the beginnings of Weirdness II, which apparently dealt with Jace's adventures on the crashed ship.
Post - Janson development
MZX remained at version 2.51 for a while until various MZXers such as Spider124 (Charles Goetzman), CapnKev (Kevin Vance), and MenTaLguY took the code and began to modify it; the code had been released under the GNU GPL as a result of negotiations between the latter and Janson's successor-in-interest MattW (Matt Williams). The resulting new versions were known as the Spider versions of MZX (named after Spider124, aforementioned). Since the source for the Robotic editor portion of MegaZeux was lost, few fundamental changes occurred there, but other areas expanded considerably. One of the first alterations was to expand the variable limit from 50 "counters" (signed 16-bit integers) to 1000 - a marked improvement. Another was support for programming in-game mouse functions. Later Spider versions also added such features as the ability to take screen captures.
After Spider124 stopped developing MZX others jumped at the opportunity to add new features to the GCS. Following MadBrain's v2.51s3.2 release, MZX development was split into two distinct branches; the Spider branch (which would later become the mainstream MZX code base) and a small, but significant, branch started by Akwende (Colin Branch). MZX Akwende, or MZXak, first introduced such features as Robot IDs, date/time reading, more powerful reading of the board/overlay, and SuperMZX (commonly referred to as SMZX, a text mode hack discovered by MadBrain that allowed game developers to have four colors per character with the side-effect of cutting the horizontal resolution of each character in half).
However, version 1 did not comply with the GPL – the code was only made publicly available months after its release, and with much protesting from Akwende. MZXak also found itself slammed with controversy after its release due to accusations that uncredited others actually programmed many of the features that were implemented in his release, though there was no proof of this due to the fact there was no active source repository; also, many people accused Akwende of keeping version 2 of MZXak hostage.
During this controversy Koji (Ben Andersen) released MZX v2.60, a version that included many features of MZXak v2 and did not violate the GPL. Koji followed this release up with v2.61 before Exophase (Gilead Kutnick) released v2.62 and took control of the main branch.
Most of the current development of MegaZeux stems from Exophase's work. Exophase's versions kept many of the prior improvements, but fixed many compatibility issues and added even more features, such as expanded string capability. Some of the most major changes came with MZX 2.65 through 2.70, which added several new features such as:
- Programmable sprite objects, which are drawn above the normal playing field and can be very large.
- Mathematical expression evaluation.
- An added virtual layer.
- Reintroduction of SMZX, which halved horizontal resolution to achieve two-bit color, so that up to four colors could be used in one character, and added more functionality to SMZX.
Later versions added various new improvements, but the biggest change came with version 2.80. Versions prior to 2.80 were MS-DOS applications, and could be run in only a limited number of environments. Between the last DOS release (2.70) and 2.80, Exophase re-wrote a significant portion of the code and used the SDL library to eliminate hardware compatibility issues. This rewrite (arguably a port) also enabled significant enhancements to the video and audio options, with OpenGL rendering supported from 2.81d, and the Modplug library adding support for new module formats from 2.80.
The MZX community is still at work on improving MZX's capabilities. The latest version of MZX, as well as most bug discussion, can be found at DigitalMZX.
MegaZeux has a large collection of games considered to be classics. Some of the more popular/influential ones include:
- Labrynth of Zeux (Gregory Janson) - While not technically a MegaZeux game, the gameplay shares a few similar features. This is actually the first game in the Zeux series (which spawned four sequels) and is still an MS-DOS text-based game. It's a simple action- and puzzle-based sidescroller that takes Vince through multiple rooms in the labyrinth.
- Caverns of Zeux (Gregory Janson) - Caverns of Zeux was the second game in the shareware Zeux series and was the free game that came with the original versions of MegaZeux. In Caverns, Vince has retrieved the legendary Silver Staff but is trapped deep inside the labyrinth by a cave-in. Vince must battle his way past seven guardians to access the deeper sections of the Caverns. The game remains an excellent example of solid implementation of MegaZeux's built-in gameplay elements along with proper scripting. It was followed by Chronos Stasis, Forest of Ruin, and Catacombs of Zeux.
- Weirdness - (Gregory Janson) - Weirdness, as its title implies, is a strange adventure game about a young boy named Jace Nyglus who wakes up one night after a large object makes a crater in his backyard. Weirdness was vastly different than the average MZX game of the time (mostly shooters and Action-adventure games), creating several then-novel engines which implemented a player inventory, puzzle minigames and a pseudo-3D maze.
- Engine (Luke Drelick) - Engine is an early action/adventure modelled heavily on J-RPG conventions. For its time, it was the longest MegaZeux game ever, and due to its relative quality one of the few successful shareware MegaZeux games. It also had a successful sequel (Engine 2: The Second Attack) and remake (Engine 1 Remix). After the release of Engine 2, the first game became freeware.
- Cans (Inmate2993) - Cans is undoubtedly the most popular and longest-living fanboy magnet for MegaZeux. It stars Chuck Flemwas, an average guy who wakes up on a Saturday and decides to cause trouble. Chuck meets the programmer, Inmate, in front of a shoe store and promptly follows him into space, where they meet Inmate's evil little brother, Robert. Cans' popularity stems from its liberal use of cameos of various former members of the MegaZeux community (in spite the fact that the nature of cameos makes the game dated) and the ability to indulge Chuck's destructive personality. The game was enough of a hit to spawn two sequels, a "Special Edition" remake of the original, and an unreleased spinoff called "Cans X".
- Darkness (Darren Hewer) - Darkness is one of the more memorable MegaZeux comedies, mostly because it doesn't rely on community-based humor and in-jokes.
- Bernard the Bard (Jeremy LaMar) - Bernard the Bard is an adventure/inventory game starring Bernard, a court jester/bard who has multiple adventures in his hometown and castle. The game has multiple paths, all of which lead up to the same battle against the Goobers and their king, Zlabfrinz. It is a sequel to ZZT's Ned the Knight.
- Adlo (craNKGod) - Adlo is an enormous 2D platformer and one of the longer, more complete, and more challenging games for MegaZeux released.
- Demon Earth (Nytar) - Demon Earth is an action/adventure game stylistically influenced by Super Metroid. It featured excellent graphics, considerable yet balanced difficulty, a sizeable length and a "shard" system which allowed considerable customisation of the sword/shot/armor when collectible shards are equipped to them.
- Legend of Rhovanion (LeDgEnD) - Legend of Rhovanion is an attempt to create a fully open-ended game in the vein of the Elder Scrolls series. Unlike similar attempts, LoR has been released in a technically complete (and massive) state; in spite of this, it is still a work in progress.
- Eternal Eclipse Taoyarin (Lancer-X) - Taoyarin is a somewhat traditionalist overhead action game done by Lancer-X, the maker of Meritous. It features polished presentation values, a gameplay system based on a five-day cycle affecting the game world, and a wide variety of weapons and enemies.
- emo maggot FREAK! (Guy) - emF is another popular cameo game series, although its cameos are more generic than those of Cans although its action-based gameplay is given more prevalence. The game series star its author, who eventually ends up battling large forces in strung-together comedic plotlines. Along the way, he meets up with a plethora of characters from the MegaZeux community. The gameplay of the first two games was marked by a "party" system, where over 10 in-game characters can help attack enemies.
- Snarfoogle (Cheezit) - A comedy game without meaning, but one of the first to use animated "cutscenes". The point of the game was to basically make your way through the game's oh-so-original "aliens taking over" storyline, but finding ways to kill yourself along the way. Each death had its own unique and animated cutscene with plenty of bloody, cartoony gore.
Day of Zeux
The Dualstream Day of Zeux is a 24-hour game design and programming contest for MegaZeux. The competition starts with the announcement of two topics, one "general" (usually abstract) and one "specific" (usually concrete). (e.g. "Trust" and "The Internet") The contestants, working alone or in teams of up to three, try to create a game about one of the two topics. The only preexisting materials which can be used are music and sound, meaning that the gameplay, graphics, and programming all have to be created within the 24 hours.
The games are judged on a variety of aspects, including theme, gameplay, graphics, technique, story, and sound. A game can't just be strong in one area to win; it has to be balanced and relatively complete. The challenge in the competition is to manage one's time and try to balance out the different areas while still making a complete game. Most competitions yield one or two games that had potential but never came near to completion because the author spent too much time on flashy visuals or a long introduction.
While the resulting games aren't always the best, the DoZ has turned several interesting and innovative entries, such as an SMZX Mode 3 sprite-based sidescroller, some surprisingly long adventure games, a pixel-perfect sidescroller, and an 80x50 half-char side-scrolling shooter. In fact, the DoZ is often considered the best place to test new concepts and engines.
The DoZ is hosted and judged by different people every time, but a few of the more senior members of the MZX community have hosted and/or judged more than once. The staff is usually set up several months in advance to allow for planning.
During the actual DoZ, many competitors like to congregate on IRC and discuss their progress. The recent elimination of an anonymity rule means that they can actually share details about their work without penalty. While some competitors choose to use IRC only for team coordination, others like to idle in #mzx on EsperNet.