Perhaps one of the more interesting and flexible game creation systems for its time, MegaZeux was one of those pursuits where there was a definite learning curve involved and game design was limited far more by the ingenuity of its creators than by the constraints of the software platform.
I was involved in the MegaZeux community during its "golden age" and spent a great deal of time working on game design and programming, beginning early on with ZZT, an early GCS by Tim Sweeney of Epic MegaGames (I am actually a registered user!) and moving to MegaZeux after discovering an early version of it one day thanks to my younger brother, who'd gotten a copy from one of his friends.
In the course of using the program, I emailed its creator, Gregory Janson, in regards to some difficulties I'd had with the program, and to convey my enthusiasm for the game he'd coded as well as my consideration of actually registering the software. As a result of this, we exchanged some emails and I eventually ended up joining the mailing list. Greg had written the MegaZeux game creation system while a teenager in high school as an improvement on ZZT, which he hoped would be useful for creating far more advanced games and which perhaps could even break into limited commercial market use. He had used ZZT extensively and had written several successful games for it, but was bothered by the various limitations of the engine as a game-creation platform and decided to code his own.
The MegaZeux Revolution
MegaZeux remained character-based, but fully supported editable character sets, both statically through an editor and loadable font files, and dynamically modifying them within Robo-P/Robotic. It also included support for 8-channel music through a proprietary format (.GDM), and a converter for .MOD and .S3M files was included in the package. I believe that this was due to the fact that Greg had used a third-party sound library which supported only its own format (this was fairly common practice at the time, when code for MOD players was not easily available and most of the the libraries available were commercial and closed-source.)
This means that in 1995, there was a game-creation platform which:
- Was free. MegaZeux was shareware, and aside from a few registration reminders, was fully functional.
- Allowed color, character-based graphics and animation.
- Supported up to 8-channel tracked music as well as sound effects. (pre-2.0 supported 4 channel MODs)
- Had a full-featured internal programming language (Robotic) and was object-based.
Even though it may seem like a product of the dark ages now, what MegaZeux allowed one to do at that time was fairly revolutionary. It in fact spawned a whole community of a few hundred young people who utilized MegaZeux to play, design and program games. The early MegaZeux community was composed mostly of teenagers, with a solid base of us in our mid-teens. This led to a lot of adolescent stupidity and pettiness. As a result of some particular stupidity and harassment on IRC and email, Greg basically disappeared from the community his hard work had made possible.
Reflections on the Golden Age of MegaZeux
Much like the earlier demoscene, we MZXers were a strange lot, trying to pry the last bit of performance from our chosen platform much like the demo coders of old. At least for game designers, it was a closed-source and competitive world, very much akin to the "real world", where innovations like programming for a side-scroller platform game or program-based character animation would result in many different individuals trying to duplicate the achieved effects to incorporate into their own productions. Because MegaZeux allowed you to password-protect and encrypt the worlds you'd created with it, and the GDM format for music couldn't be converted back to an S3M/MOD, without a password-cracking utility and a third-party GDM-to-S3M converter, innovations were fairly secure.
Those of us with programming experience of any substance (remember, the demographic here was basically middle- and high-schoolers) in general had a significant advantage over the rest of the community, because so much could be accomplished in Robotic (due to the flexible and object-oriented nature of the system) which was impossible by just using the defaults. Indeed, for a while, it was considered poor form and a sign of a "newbie", inevitably leading to ridicule, to produce a game based simply on the built-in objects and graphics which MegaZeux provided and which early games utilized heavily. Especially after the MegaZeux world had been deluged with lots of fancy programming tricks and graphic-intensive, story-based RPGs (many of which were extremely long and had little user interaction) creating a more standard game was looked upon with disfavor by much of the community.
Much could be accomplished with clever programming and use of different palettes to easily circumvent the 16-color limitation. Because it was designed for VGA, the palette was actually RGB-based and thus effects like fades were fairly straightforward to accomplish. In the 2.0 release, sound was fully integrated into both the default objects and actions and the programming language, and supported concurrent sound and music, as well as simultaneous sound effects.
State of the Art
Initially, at least, the majority of games released used music ripped from various sources. At the time, the tracker scene (with which I was also briefly involved) was big and there was a plethora of music available which most MZXers who were not demoscene or #trax people were generally not acquainted with. After many of them discovered it, through the Hornet Music Archive (the defunct www.hornet.org, now mirrored by www.scene.org) and AMINET, among other places, the size of MZX game downloads increased dramatically!
Early attempts at original compositions were generally pretty poor. The typical MZXer was not a musician, much less acquainted with the intricacies of tracker-based composition. Greg Janson's tracked works (such as those which could be found in the sample world released with the shareware version of MegaZeux) were fairly decent, but there was a lot of really bad music out there. Tracking at the time was far from simple or intuitive, having only recently migrated to the PC thanks to programs like ScreamTracker and good, usable samples were not always easy to come by, so it became common practice to rip usable samples from other works and then to credit the original creator of the sample.
As someone with a musical background and some experience with tracking, I had a competitive advantage in the MZX community which, combined with some exhibition of programming and game design abilities led to my becoming one of the first members of Draconic Creations, under the alias Psion, my tracking and MegaZeux alter ego. But that is a story for another time.