M.U.G.E.N

M.U.G.E.N is a 2D fighting game engine designed by Elecbyte and originally released in 1999. Elecbyte distributed beta versions that ran under DOS, Linux, and Windows. The engine allows for anyone to create characters, stages and other game objects through interpreted text files and graphics and sound compilations and it also supports various types of audio formats such as MP3, ADX, OGG and MIDI as background music during gameplay. The engine allows for the type of functionality found in most any commercial 2D fighting game, such as the Street Fighter games produced by Capcom, the Naruto games produced by Bandai, or the King of Fighters games produced by SNK. Creators of M.U.G.E.N content are from all over the globe, most notably including American, Brazilian, Japanese, Chinese, and French creators.

History
From 1999 to 2001, there were several incremental releases of the M.U.G.E.N engine for DOS. Development of the DOS version ceased when Elecbyte switched to the Linux platform in late 2001. For a time, Elecbyte had posted a request for donations on their site to legally obtain a Windows compiler to make a Windows version of M.U.G.E.N. A number of donations to the Elecbyte site soon followed, as many users would much rather have a Windows version instead--there were problems with using the DOS version of M.U.G.E.N on Windows XP. The new Linux releases added features that the DOS version did not have. There were then promises of a Windows port of the engine, but the development group decided to discontinue the project in 2003, presumably due to leaks made public of a private Win M.U.G.E.N beta that was provided to donators. The Win M.U.G.E.N beta contained a two-character roster limit, locked game modes, and nag screens. A "no limit" hack that removes these limitations was made available in 2004. This Windows version is functionally the same as the last Linux release and is the most widely used version of M.U.G.E.N today. Despite some controversies - modifications made on the actual engine are sometimes seen as an analogue to those made on the creations developed for it, and this is a recurrent topic of discussion among M.U.G.E.N fans (see Fork (software development)). Since development of the engine was halted and no source code has been made available by Elecbyte, there are now some projects in the works to make a clone of the engine from scratch, such as OpenMugen and InfinityCat. Some of them present online capabilities, a much sought-after feature. None of these projects are currently complete, though many have high hopes for them. Today, many examples of M.U.G.E.N can be found in combo videos on the video hosting site YouTube.

While the engine is current set up primarily for fighting game development, several other game types have been developed using it, including shooter and platformer style games.

Gameplay
The engine uses 7 buttons for gameplay, fully configurable: X, Y, Z, A, B, C and Start (typically, 3 for punches, 3 for kicks and 1 for taunting) and the directional keys, though all of this depends in the long run on the game made itself. At most, two human players can control characters, with others controlled by the engine. In addition, several gameplay modes are available :


 * Arcade        - Go 1 on 1 against the computer
 * Versus        - Go 1 on 1 against your friend
 * Team Arcade   - Play various team-up modes against the computer
 * Team Versus   - Play various team-up modes against your friend
 * Team Co-op    - Gang up against the computer with your friend
 * Survival      - See how long you can last in an endless battle
 * Survival Co-op - Play survival mode with your friend as a partner
 * Training      - Try out moves and combos
 * Watch         - Watch AI-controlled characters fight
 * Options       - Set up basic game options
 * Exit          - Closes the program

For Arcade mode, the key you hit will determine which side you play on. If you chose with one of Player One's keys, your character will play on the left side. If you chose with Player Two's keys, you will start on the right side.

For the "team" modes, you first choose what team mode you would like to play in. Press up/down to choose a mode. Some modes, such as Turns mode, allow you to set the number of players on a team by pressing left/right. Press a key to choose an option. In "Team Arcade", after selecting your players, you have a choice of your opponents' team mode. These are the different kinds of team modes:
 * Single - Just you alone. Your character has 2 rounds.
 * Simul - You and a partner at the same time. Your team has 2 rounds.
 * Turns - You and up to 3 partners. When one character is KOed, the next will join in. Each character has 1 round.
 * In the EXE there's evidence a fourth mode was planned in the placement of the term "Tag" above Turns in it, as well as the hidden programming controllers TagIn and TagOut (though only TagIn functions). It is uncertain just why Tag never became a full blown option.

The characters' starting life will be adjusted according the number of players on each side. If one side has two characters and the other has only one in one of the Team modes, the side with two characters will have half their normal maximum life!

Team Co-op is slightly different. The only team mode allowed is Simul, which is automatically selected. Player One first gets to select his character, followed by Player Two selecting the partner character. When Player Two is done, Player One chooses the opponent's team mode.

In Survival mode, there is an endless stream of opponents. The objective is to beat as many opponents as possible. The game is over when your team gets KOed. You can choose to play alone or in a team. Single player mode gives you highest hit points and healing (when you win a round). The more players you have on your team, the less damage each player can take, and the less each healing you get after each round. Survival mode was a last minute addition to the engine and the last change done to the engine. As such, users of the DOS version of MUGEN do not have this feature, but those who have the Linux and Windows version do.

In Watch mode, first choose the team mode and characters to be on Player One's side, then do the same for Player Two.

Any of the main menu options can be disabled by changing their text in the system.def file to "".

Switching order in Turns mode
When you are playing Turns team mode, you can change your team order during one of these situations :

1. right before the match starts loading

2. after you lose a round, and right before the next round is loaded

The order switching is achieved by holding a directional button down. Hold forward to rotate your team order by one member forwards. Hold back to rotate your team order by one member backwards. If you have 4 available members, you can rotate it by 2 members by holding up. Note that you can only rotate with members that have not yet been KO'ed.

Here is a chart to clarify the way it works.

team      1 2 3 4  |  1 2 3  |  1 2 --+-+-- hold fwd: 2 3 4 1  |  2 3 1  |  2 1 hold back: 4 1 2 3 |  3 1 2  |  2 1 hold up:  3 4 1 2  |  ^      |  ^ ^          |         |            |           |         |     this is the character that will come in

Associated Filetypes
The following file extensions are commonly associated with M.U.G.E.N development in that they make up the 'parts' of the game to be developed. Note that while none of these extensions are really required with (for the most part) the exception of DEF, they are the filetypes commonly looked for by tools. With the exception of ACT, AI, SFF, and SND, all these files can be opened in a text editor and altered easily. 


 * DEF: Definition file; has various purposes. For characters defines the name, authorname and files associated with the character, while more specific DEF files such as SYSTEM define the outer 'skin' of the engine (commonly called screenpack or motif), and FIGHT defines the 'cockpit' (or lifebars) for the actual fights themselves. Note that SYSTEM.DEF and FIGHT.DEF are not absolute names, but those commonly used (and used by the default motif). For stages, the .def file acts as both .def (files associated with the stage) and .air file.


 * ACT: Palette file; used with characters to define the character's colors in game. Each character can have up to 12 palettes (one for each attack button, and one for each attack button while holding the Start button). Editable with programs like Paletero, Fighter Factory and ActEdit.


 * AI: A file the engine itself writes when the line "ai =" (followed by a filename) is included in the DEF file, and is not covered in the documentation. While the engine clearly does read the file it's made (an AI file from a different mugen version gets dubbed invalid and rewritten with an error message present in the debug text), there's no surefire indication that this file actually augments the character's natural AI when controlled by the CPU. This type of file is the less used among creators.


 * AIR: Animation file; tells the program how to play back a sequence of sprites to form an animation. The character's colision boxes are also defined here.


 * CFG: Configuration file, used solely by the engine (mugen.cfg). Can be found in the data folder of the engine, and defines the basic functions (some modificable from M.U.G.E.N itself as Options, some only modificable in the file itself).


 * CMD: The command file, defines what attacks the characters can use. Up to 128 unique attack commands can be defined here. This has led to some minor problems with newer versions of Windows that have started using this filetype for their own purposes unrelated to the M.U.G.E.N engine.


 * CNS: Character constants file; defines how a character acts and moves in terms of velocity, height, width etc. Also, coding is typically placed in this file instead of/along with ST files.


 * SFF: Sprite file; contains one or more sprites in PCX format at 256 colors. Used for pretty much all sprites associated with the different parts of the engine, ranging from characters and stages to the screenpack itself.


 * SND: Sound file; contains one or more WAV sounds, and like SFF, used by all related parts of the engine (characters and screenpack).


 * ST: State file; defines character behavior and attacks. Optional, in that commonly coding is used here, but you'll find that many characters like the default Kung Fu Man put the coding in the CNS file instead. Coding can also be put in the CMD file (as shown with State -1).

Note that with the exception of CFG, none of these file extensions are absolute: you can use whatever you want (though it's generally best to use DEF always regarding that file for characters and stages, as it makes their installation simpler for yourself and others).

Reserved Keys

 * Pause: Toggle pause. In training mode, this will activate the training menu.
 * Scroll Lock: Frame-step within pause
 * F12: Take a screenshot (saved to mugen?.pcx).
 * Esc: Quit, goes back a step (on the main menu, closes the program). Acts like a Cancel button.

The following hotkeys are for debugging purposes, and are only active if DebugMode is on, or AllowDebugKeys in the CFG file is set to 1.


 * F1: Sets Player 2's life to zero (KO's player 2, non-functional in Training Mode)
 * Ctrl-F1: Sets Player 1's life to zero (KO's player 1, non-functional in Training Mode)
 * F2: Sets both players' life to 1, non-functional in Training Mode
 * Ctrl-F2: Sets Player 1's life to 1, non-functional in Training Mode
 * Shift-F2: Sets Player 2's life to 1, non-functional in Training Mode
 * F3: Gives both players full power
 * F4: Reset the round
 * Shift-F4: Reloads stage, characters and fight data
 * F5: Sets the timer to 0. This occurs even if infinite time is set.
 * Ctrl-C: Toggles display of collision boxes, target data (including remaining juggle points) and NotHitBy attributes. Pressing it again makes the boxes solid, a third time removes the data.
 * Ctrl-D: Toggles debug information display
 * Ctrl-I: Forces both players into stand state
 * Ctrl-L; Toggles display of the life and power bars
 * Ctrl-S: Run the game as fast as possible
 * Ctrl-V: Enable V-sync (stops "shearing")
 * Ctrl-#: (where # is from 1-4) Toggles AI for the #th player. 1 and 3 refer to player one and the character's partner, 2 and 4 refer to player 2 and that character's partner.
 * Ctrl-Alt-#: (where # is from 1-4) Enables/Disables the player
 * Space: Restores full life and power to all players, and resets the timer

Developing Content for the Engine
Before the existence of many tools available today, Elecbyte provided command-line utilities such as SPRMaker, SNDmaker, PCXClean and pal2act to assist in the development. Coding for MUGEN usually is done over text editors such as notepad. For the graphical aspect of the programming, people usually resorted to Adobe Photoshop or Paint Shop Pro to either process the images to be used or to generate palletes, in the form of .ACT files. AIRedit, also by Elecbyte, facilitated in the animation aspect of the programming as well as collision box modifications.

Today, there are more centralized software available that are dedicated to MUGEN development like Mugen Editing Ensemble, Fighter Factory, and MUGEN Quickedit. More recent creators rely on these programs which are actually one or more compendium of tools. Other tools are standalone programs that are dedicated to one aspect of MUGEN creation, like with the manipulation of SFF files. MCM is one such example. SNDsgood is another example of standalone tools, but for SND files.

Legality
The previous license agreements for usage of M.U.G.E.N from Elecbyte have expired and it appears that a new license agreement will never be granted. Thus, any current distribution of M.U.G.E.N has not been authorized by Elecbyte and is technically illegal, although Elecbyte has never taken any legal action; the company has simply disappeared without explanation. Many people chose to continue using M.U.G.E.N despite the lack of a new license. Creations such as characters and stages for use with M.U.G.E.N are not a part of Elecbyte's license, but only the software itself is. So, it is up to the individual whether or not to violate Elecbyte's license by using M.U.G.E.N. Elecbyte itself has not made a public statement since 2003, when they stated that the project had "hit a snag".

Most characters and stages are of dubious legality as well, as most are made using sprites and sounds ripped from copyrighted games. For this reason, some standing communities enforced a loose "time-release" rule, whereby they do not allow linking to characters made from recent games. While this has no actual impact on the legality of the materials in question, it has presumably served to avoid any legal pressure from the copyright holders. But some copyright holders, such as Capcom, are said to understand that it is just fanart work and don't care about it.

The work material has two categories: the content of the SFF (sprite format, based on PCX images) and SND (audio format based on WAV) files are copyrighted by the respective owners (like Capcom, SNK, etc); the other files, like CMD (command file), AIR (animation file) and CNS (constant and state definitions, the main file of a M.U.G.E.N character) are copyrighted by the author of the character or the stage; Elecbyte stated that the reason why the code files were text-based and directly processed by the engine in this manner was so that users could learn from each other, yet there has been a great deal of controversy regarding permission (or lack thereof) between coders.

'Warehousing'
There has been debate over the act of hosting the works of content creators (or authors) for the engine without consent from the author, a practice dubbed "warehousing." Warehouses and content 'megapacks' are generally seen as ideal for new engine users who are able to obtain a lot of useable content quickly with little searching. Arguments have risen against this practice. Since the "warehouse" would host all the content they previously downloaded, the content users are unaware of original source of the content and possibly miss any patches and updates related to the each piece of content. Another issue stems from the fact that many authors gain revenue in one form or another by visitors to their sites, be it by advertising banners on their site or merchandising (such as that sold by Mugen Institute for their original Dragon Claw character.) The use of "warehousing" has the potential to drop the amount of visitors to the author's web sites, often causing the author to lose revenue and to lose interest in creating and updating content.

There is some controversy on the legality of warehouses. Although most of the authors have not registered copyrights pertaining to the code or graphics used to create the content, much like hosting a videogame FAQ it is considered in violation of the author's moral copyright unless permission to host is given. The debate ranges from original design by authors as well as derivative works or fan art often taken directly from previously released video game characters. A violation of copyright of the original designs would be where the original author has good standing to legally sue an offending web host if the correct documentation was files before the release of the characters. Typically it is argued that legal action isn't sought for the misuse of most M.U.G.E.N creations because the origin of sprites and sounds has been ripped from commercial games even though the program code is crafted from scratch or templates.

The debate over warehousing has been long standing, but several key arguments stand out:


 * The argument that the engine itself is freeware, and thus covered under freeware laws. In reply, opponents state due to the license agreement obtained by Elecbyte, which in part may still apply, M.U.G.E.N itself is actually shareware, and covered under the laws governing such.


 * The argument that when copyrighted characters or sprites such as those owned by Capcom or SNK are used in the works, the works themselves are a violation of copyright and thus any claims are to be argued as null and void. Although Nintendo has released a statement against emulation in all forms, Capcom, SNK and other sites have not shown any ill will towards those creating content for the engine, despite being aware of the practice for several years. In fact, only one group has stepped forward to ever ask content from their work not be made for the engine: French Bread (Known as Watanabe Seisakujo prior to 2003) the creator of the Queen of Heart games, and the co-creators of Melty Blood. They also included the community of developers for the game Knuckle Fighter X in this notice. During the release of Melty Blood, they requested that sounds and voices from the game itself not to be used with the characters, notably loosening slightly their stance regarding conversions. Interestingly, this limitation was removed in subsequent installments of the game series. Since then, French Bread has not aired any publicly known objections of conversions from their later games, like Glove on Fight, and Ragnarok Battle Offline, however their exact stance is debatable.


 * Some sites host original characters generated by the author themselves (such as those by Reu or Rikard), in which case the characters are still copyright of their authors. The copyright on the code itself is the key factor here, though this use copyright has been misinterpreted to cover the sprites or the character concept.

The M.U.G.E.N community is one of the few online game and modification communities to practice such disdain for warehousing.

M.U.G.E.N Characters By Elecbyte
Kung Fu Man - The first, and only, character created for the engine by its creators, Elecbyte. Kung Fu Man (usually called KFM for short by those in the community), despite his name, is a practitioner of karate (as can be seen from his moves as well as his outfit). One day, KFM was walking with his girlfriend when Suave Dude and his minions kidnapped the girl, and retreated to their mountain temple. KFM soon followed, only to come face to face with a clone of himself created by Suave Dude. Although the orginal KFM won the ensuing battle, Elecbyte hadn't made Suave Dude as a character yet, and KFM was left to simply wait.


 * His appearance is that of a man in a gi with blue shoes, a black shirt underneath, headband, hair standing straight up, and closed eyes (similar to Goro Daimon or Brock).


 * As the engine's development progressed, so did Kung Fu Man, gaining the occasional new move and at one point an improved look. Sadly, his story was never actually fleshed out by Elecbyte themselves, leaving him doomed to be a mere template character of everyone else to use as a base for their own characters. Many fan storylines exist though, and fanon would have his real name as Joe Mayama, based off the character "Kung Fu Mako"/Mako Mayama created by Taruse, widely regarded as his sister in fanon. Canon-wise though, his name probably is just "Kung Fu Man" as the character was not heavily developed by Elecbyte.


 * As of yet, many alternate versions of Kung Fu Man have been made for the engine by creators, quite possibly more than any other character.

Suave Dude - Suave Dude is the antagonist of Kung Fu Man's storyline, though he really exists solely as a single sprite: Elecbyte never actually made the character, nor has anyone else in the mugen community, thus leaving KFM's story unresolved.


 * He's shown in straightforward attire, with blond hair, shades, and a gun in his hand.


 * Little else is known about him, other than the fact he seems knowledgable about cloning (he creates a clone KFM to fight the real one ) and has an interest in Kung Fu Man's girlfriend.

Pronunciation of M.U.G.E.N
There is no official pronunciation. However, here are some popular examples of pronunciation:
 * moo-gen
 * mu-gen
 * muh-jen
 * moo-jen
 * myu-gen
 * myu-jen
 * mug-en

"Mugen"(無限) in Japanese means "infinite", therefore the latter could be the suggested pronunciation. Whether M.U.G.E.N's acronym origin is simply the Japanese word Mugen, but spaced out by periods or the acronym just coincidentally spelt an existing word out is debatable. However, Elecbyte claims to have forgotten what the acronym M.U.G.E.N stood for, but documentation states that its meaning referred to the days when the engine was meant to emulate shooting games as opposed to fighting games. Kung Fu Man's documentation has Japanese comments to go along with some of the English ones. So having no official acronym for M.U.G.E.N, it wouldn't be entirely unrealistic to conclude that the Japanese meaning was intended, despite what the provided documentation states. Lacking communication with Elecbyte, the real meaning of the acronym M.U.G.E.N may always be unknown.