This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
|Developer(s)||Alexis Janson, Gilead Kutnick, Alistair Strachan and others|
2.84c / December 24, 2012
|Written in||C, C++|
|Type||Game creation system|
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 Alexis Janson, who formed her 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, Wii, GP2X, PSP, and the DS, but has been ported to other platforms such as AmigaOS 4, OpenBSD, FreeBSD, OpenSolaris, Haiku 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 run time, 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 Labrynth 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. She 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 she also later elaborated during a return to IRC that she simply couldn't stand the average MZXer then), releasing all her work to the public domain. This included all of her previous ZZT work and the beginnings of Weirdness II, which apparently dealt with protagonist Jace's adventures on the crashed ship.
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, MZXak 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 proposed for 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 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.
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 SlashNet.