|Author||Alexis Janson, Charles Goetzman, Kevin Vance, Colin Branch, Alexis Andersen, Gilead Kutnick, Alistair Strachan, Alice Rowan, and others|
|Release Date||December 4, 1994|
|Genre||Game Creation System|
MegaZeux is a game creation system created by Alexis Janson. It was inspired by ZZT, for which Alexis and other members of Software Visions had created several games beforehand. The first version, 1.00g, was uploaded to AOL on December 4, 1994.
See also: Robotic
Robotic is MegaZeux's object-oriented programming language. Some parts of the language, as well as the concept itself, are based on ZZT's ZZT-OOP, though Robotic is much more advanced than ZZT-OOP.
See also: MegaZeux Changelogs
MegaZeux 1.00g was released on AOL on December 4, 1994 as an executable for IBM PCs running MS-DOS. It was designed as an improvement over ZZT, including digital sound and music on compatible hardware, editable character sets, and adjustable board sizes.
In 1995, Janson overhauled MegaZeux with a near-total rewrite for 2.00. User-facing changes included editing of the default 16-color EGA palette, a restyled interface, a more versatile world editor and Robotic language, and myriad fixes for bugs and inconsistencies.
MegaZeux 2.50 followed in 1996, using the more compatible, Windows-tolerant BWSB sound library. Shortly thereafter, Alexis Janson released version 2.51, her last, with minor bug fixes and additions. Janson later released MegaZeux's existing incomplete source code under the terms of the GNU GPL.
MegaZeux After Janson
With MegaZeux's source code newly available, Spider 124 presented a beta of his own version, MegaZeux 2.51 s1, in 1999. Among new features were a vastly expanded counter limit (1000, compared to 2.51's 50 counters), true mouse support, player coordinate counters, and many bug fixes. Three more "Spider" versions (the latter two credited to JZig) were released until early 2000, bowing out with 2.51 s3.1.
In 2001, MadBrain added the bimesg built-in counter to optionally disable MZX's default message text and trivially removed password protection for editing worlds, releasing his modifications as MZX 2.51 s3.2. Madbrain further modified s3.2 with the introduction of the SMZX graphics mode, releasing this version as SMZX 100 Alpha.
MegaZeux 2.7 and mzxlib
MZX 2.7 was an effort spearheaded by JZig to completely rewrite MegaZeux in C++, with a new graphics engine, audio code, and support for alternative operating systems. Most initial coding was done by MenTaLguY, until JZig took over in 1999. piman, though not writing substantial code himself, maintained the project's SourceForge page. JZig ended development of MZX 2.7 in 2001. It was not picked up afterwards.
Akwende released the first MZXak version, MZXak 1.0, shortly after MadBrain's SMZX alpha version. MZXak made numerous changes and extensions (some of which, like the multi-colored configuration dialogs, were determined by the community to be too useless to warrant the memory usage), including file access, robot targeting, and built-in SMZX mode. All MZXak versions included Akwende's MZX version of Tetris, which demonstrated the use of SMZX graphics.
MZXak 1.0 was pulled a few months after release from DigitalMZX due to Akwende's failure to release his source code under the terms of the GNU GPL. Following public debate and heel-dragging, he eventually released the source. Other MZXak 1.0 controversy involved its broken forward compatibility, which led to MZXak games being playable but not necessarily functioning in MZX2.51s3.1. This broke wizdom's judging results in the 2001 DsDoZ.
MZXak 2.0 was released after much waiting, though the release sparked a fair bit of dispute due to the sudden timing with Koji's 2.60 release. MZXak 2.0 is notable for being the only code fork to completely die out.
2.60 through 2.70
In 2002, Following the discussions about MZXak, Koji released MZX 2.60 and 2.61, including a subset of akwende's additions. Exophase energetically took over development of MegaZeux with 2.62. Features introduced between 2.62 and 2.70 (the last version of MegaZeux in DOS) include expressions, sprites, strings, the vlayer, MZMs, and SMZX Mode 2.
During Exophase's development of MZX for DOS, BFeely began work on MZX32, intended as a port of MegaZeux for Windows. Several alpha versions were released, most of which lacked the world editor (and all of which lacked the robotic code editor). MZX32 was unstable and buggy, and deemed obsolete once Exophase began work on his SDL port. The last released version of MZX32 supported games created using MZX 2.69c.
See also: SDL
Exophase took most of the summer of 2004 to rewrite MegaZeux using SDL, in order to eliminate DOS-specific limitations, solve MegaZeux's accumulating compatibility issues, and eventually expand MegaZeux onto other platforms. The Robotic editor's source code, long missing, was entirely rewritten. Many other source modules were either completely rewritten or heavily revised. After intense testing, MZX 2.80 was released on August 9, 2004, only intended for 32-bit Windows platforms. A slew of bug reports arising from public testing shortly followed, and Exophase quickly updated with three incremental versions within one month, also adding official support for Linux and Mac OS X. Other MegaZeuxers helped in various capacities; for example, ajs's and mad's GDM conversion code was a basis for SAM conversion code. Later on, ajs would write support to abstract file operations for case sensitive file systems, and additional graphical renderers were designed by LogiCow and Mr_Alert.
Most version upticks since the SDL port have added some functionality (e.g. multi-char editor, code search, ogg support), and all have significantly improved stability. MegaZeux is currently extending to handhelds and consoles: Oncer released a GP2X port, kvance a Nintendo DS port, Mr_Alert a Wii port, and Exophase has done preliminary PSP support.
In early 2007, LogiCow created his own fork of the MZX source. The first version added the Draw command, allowing users to scale characters from the vlayer. It also served as an underlay (as opposed to an overlay). In more recent versions, the draw command was deleted. A select persisted in using the older versions for the draw command, much to the annoyance of those wishing to stay with Exophase's versions.
A short time after the previous fork, LogiCow created another fork with an alternate renderer that scaled the graphics up to fit the screen, regardless of aspect ratio. This also allowed for seamless resizing of the MZX window when not running in full screen mode. logicow worked with ajs to merge these renderers into the mainline MZX versions, starting with 2.81e.
LogiCow's final fork of MZX (based off of 2.81g) was solely to play Caverns of Zeux with enhanced graphics.
LogiCow was not the only person to fork MZX; NihilistMatt created a fork called SquareMZX. SquareMZX knocked the resolution per-character to 8x8, but allowed a "quadrant" coloring system where each 2x2 section of any character can have its own color pair. This fork got very minor use; PROcrastination and the second RPG Skool Demo both could optionally use SquareMZX mode.
zzo38 is also desperately trying to make people care about his MZX fork. His version focuses on changes and "improvements" that are generally only of interest to him, notably support for Forth, among various other things. He also corrected a long standing, esoteric bug in the handling of built-in spider webs, which has been merged (with changes) into the existing codebase. Despite the fact that zzo38 (and possibly smilymzx, with his fixation on blinking text) is the only person who actually cares about any of these changes, zzo still claims to be working on it and released an initial version of it.