MegaZeux

From MZXWiki
Jump to navigation Jump to search

MegaZeux is a game creation system created by Gregory Janson. It was inspired by ZZT, for which Greg and other members of Software Visions had created several games beforehand. The first version, 1.00g, was uploaded to AOL on December 4, 1994.

Features

Robotic

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.

History

History of MZX's development.

Shareware Versions

In 199?, MegaZeux 1.00g was released on AOL. It was designed to be an improvement over ZZT, and at that point featured digital sound and music that could be played over Sound Blaster-compatible cards. It featured editable character sets and larger board sizes than ZZT.

Some time later, MegaZeux 2.00 was released, featuring a vast interface overhaul, the ability to edit the in-game palette, and other new features.

Finally, MegaZeux 2.50 was uploaded, and among other changes, included the brand new BWSB sound engine that was more compatible and more tolerant of Windows. Shortly thereafter, version 2.51 was released, with minor bug fixes and additions. This would be the last version Gregory Janson would release.

Spider Versions

After MegaZeux was released under the terms of the GNU GPL, Spider124 updated the source code with several useful new features and released his own version of MegaZeux, 2.51s1. Among the new features were a vastly expanded counters limit (1000, compared to 2.51's 50 counters), true mouse support, playerx/playery counters, and many bug fixes. Three more versions were released (s2, s3, and s3.1; of which 3.1 was a bug fix release) before development of MZX grew stagnant.

MadBrain took the s3.1 source, added one new feature (the bi_mesg built-in counter) and removed password protection, releasing his modifications as MZX 2.51s3.2. s3.2 was further modified with the introduction of the SMZX graphics mode (this version was released 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 other operating systems such as Linux. Most of the initial coding was done by MenTaLguY, until JZig took over in 1999. piman, while not doing much coding himself, performed most of the non-code tasks such as updating the project's SourceForge page. JZig's development on MZX 2.7 stopped around 2001, and it was not picked up afterwards.

MZXak

Akwende released the first MZXak version, MZXak 1.0, shortly after MadBrain's SMZX alpha version. MZXak featured several additional features (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. He eventually released the source, but not until a lot of public debate and heel-dragging. Other MZXak 1.0 controversy included 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.

Exophase Versions

Following the discussions about MZXak, Koji released MZX 2.60, featuring some of the same additions as MZXak. 2.61 was released shortly after, and around 2.62's release, Exophase took over development of MegaZeux. Tons of features were added in between 2.62 and 2.70 (the last version of MegaZeux in DOS) such as expressions, sprites, strings, the vlayer, MZMs, SMZX Mode 2, and many others.

MZX32

During Exophase's development of MZX for DOS, BFeely began development on MZX32, which was to be a full-featured port of MegaZeux for the Windows platform. Several alpha versions were released, most of which lacked the world editor (and all of which lacked the robotic code editor). MZX32 was generally regarded as unstable and buggy, and was deemed obsolete once Exophase began work on his SDL port. The last version of MZX32 released featured support for games created using MZX 2.69c.

SDL Port

Exophase took most of the summer of 2004 to do a update/rewrite of MegaZeux into SDL, to break some DOS limitations and to solve MegaZeux's ever-increasing compatibility issues (and to eventually expand MegaZeux onto new platforms such as Linux and the Macintosh). This included re-writing the entire Robotic editor. After intense pre-testing, MZX 2.80 was released on Aug 9 2004, with workability only intended for Windows 32 platforms. A slew of bug reports that only arises from public testing shortly followed, and Exophase quickly updated with three incremental versions in one month. Other MegaZeuxers helped in various aspects; for example, the updated sound code was mostly ajs's and mad's doing, and some of the graphical renderers were designed by LogiCow and Mr_Alert.

Each upgrade added some functionality (e.g. multi-char editor, code search, ogg support), and MegaZeux eventually resolved the various issues that prevented sucessful porting to Linux and Mac platforms. MegaZeux is currently extending to handhelds; Oncer released a GP2X port, and PSP compatibility is a future goal.

The current version is 2.81h.

LogiCow's Forks

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 few still use the older versions for the draw command, much to the annoyance of those that wish 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.

External Links

MZX32 Project Page (Sourceforge)