Homebrew | name = MegaZeux | screenshot = <!-- Deleted image removed: [[Image:http://www.digitalmzx.net/archive/182/182_s0.png|250px]] --> | caption = Screenshot of a game running in MegaZeux | developer = Gregory Janson, Gilead Kutnick, Alistair Strachan and others | latest_release_version = 2.82b | latest_release_date = [[December 27]], [] | operating_system = [[Cross-platform]] | programming language = [[C (programming language)|C]], [[C++]] | genre = [[Game creation software]] | license = [[GNU General Public License|GPL ]] | website = [http://www.digitalmzx.net www.digitalmzx.net] |
MZX is officially supported on [[Microsoft Windows|Windows]] (Win95 and higher), [[Linux]], [[Mac OS X]], [[AmigaOS 4]], [[Wii]], [[GP2X]], [[PlayStation Portable|PSP]], and the [[Nintendo DS|DS]], but has been ported to other platforms such as [[OpenBSD]], [[FreeBSD]], [[OpenSolaris]], [[HaikuOS]] and [[Android (operating system)|Android]].
== Improvements over ZZT ==
MZX improved on ZZT in almost every aspect:
* The graphics are still [[text mode|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 [[Palette (computing)|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 (file format)|MOD]] music was supported, as well as SAM sound effects. Other module formats such as [[S3M]] were also supported via an intermediate format, [[Generic DigiMusic|GDM.]] Recent versions of MZX (2.80+) support advanced module formats, [[Ogg|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 (computing)|runtime]], and arithmetic commands were present. Later versions added functionality such as [[subroutines]] and [[Expression (mathematics)|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.
== History ==
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 [[Platform game|platformer]] about a [[theology|theologian]]/[[archaeology|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 General Public License|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 code|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 (computing)|mouse]] functions. Later Spider versions also added such features as the ability to take [[screenshot|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.
=== Current development ===
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 (computer science)|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 (computer graphics)|sprite objects]], which are drawn above the normal playing field and can be very large.
* [[String (computer science)|Strings]].
* [[Expression (mathematics)|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 [[Simple DirectMedia Layer|SDL]] library to eliminate hardware compatibility issues. This rewrite (arguably [[Porting|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 file|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 [http://forums.digitalmzx.net DigitalMZX].
== Notable games ==
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 [[shooter game|shooters]] and [[Action-adventure game]]s), creating several then-novel engines which implemented a player inventory, puzzle minigames and a [[2.5D|pseudo-3D]] maze.
* '''Engine''' (Luke Drelick) - Engine is an early action/adventure modelled heavily on [[Console role-playing game|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 [[Self-insertion|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 [[Cameo appearance|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|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 (philosophy)|abstract]]) and one "specific" (usually [[Concrete (philosophy)|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|pixel-perfect]] sidescroller, and an 80x50 half-char [[Side-scrolling video game|side-scrolling]] [[shoot 'em up|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]].
* [http://www.digitalmzx.net DigitalMZX]
* [http://megazeux.sourceforge.net/ MegaZeux at Sourceforge]
* [http://wiki.digitalmzx.net/ MegaZeux Wiki]
* [http://mzx.devzero.co.uk/ MegaZeux Developer Website]
* [http://mzx32.sourceforge.net/ Highly experimental Windows version of MegaZeux (discontinued after 2.80)]
[[Category:Video game creation software]]
[[Category:AmigaOS 4 software]]
[[Category:Free software programmed in C]]
[[Category:Free software programmed in C++]]