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 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, Portuguese, 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. 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 (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.

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 start 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).

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).

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 natuaral AI when controlled by the CPU.

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 its basic functions.

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 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. Used for pretty much all sprites associated with the different parts of the engine, ranging from characters to the screenpack itself.

SND: Sound file; contains one or more sounds, and like SFF, used by all related parts of the engine.

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, as it makes character 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
 * Esc: Quit, goes back a step (on the main menu, closes the program).

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
 * Ctrl-F1: Sets Player 1's life to zero<BR>
 * F2: Sets both players' life to 1<BR>
 * Ctrl-F2: Sets Player 1's life to 1<BR>
 * Shift-F2: Sets Player 2's life to 1<BR>
 * F3: Gives both players full power<BR>
 * F4: Reset the round<BR>
 * Shift-F4: Reloads stage, characters and fight data<BR>
 * F5: Time Over<BR>
 * F12: Take a screenshot (saved to mugen?.pcx) (Functions without debug mode active)<BR>
 * Ctrl-C: Toggles display of collision boxes, target data (including remaining juggle points) and NotHitBy attributes<BR>
 * Ctrl-D: Toggles debug information display<BR>
 * Ctrl-I: Forces both players into stand state<BR>
 * Ctrl-L; Toggles display of the life and power bars<BR>
 * Ctrl-S: Run the game as fast as possible<BR>
 * Ctrl-V: Enable V-sync (stops "shearing")<BR>
 * Ctrl-#: (where # is from 1-4) Toggles AI for the #th player<BR>
 * Ctrl-Alt-#: (where # is from 1-4) Enables/Disables the player<BR>
 * Space: Restores full life and power to all players<BR>

Mugen Tools
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 softwares 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." The matter is similar to hosting roms or mp3's. Warehouses and content 'megapacks' seem ideal for new engine users who are able to obtain a lot of useable content quickly. Arguments have risen against this practice though. First, because the "warehouse" would host all the content they previously downloaded the content users are unaware of original source of the content and miss the patchces and updates related to the each piece of content. The second problem is that many author 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.

Warehouses are also considered by some to be illegal in that they violate certain copyrights pertaining to the code used to create the content, much like hosting a videogame FAQ is considered in violation of the author's copyright unless permission to host is given. The debate ranges from original design by authors as well as derivative works or fan art often mimicking 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 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.

As with most internet content, several points are raised from people to try and justify being able host and edit the creator's content for the M.U.G.E.N engine, though they are still argued against by warehouse opponents:


 * The first is 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 still applies, M.U.G.E.N itself is actually shareware, and covered under the laws governing such.


 * The second belief is 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 two groups have stepped forward to ever ask content from their work not be made for the engine: the creators of the Queen of Heart games, and the creators of Melty Blood (in that they wished for sounds and voices from the game itself not to be used with the characters, though this limitation was removed in subsequent installments of the game series by the publishers.)


 * Many sites that use this argument tend to 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 a factor here also, though many people misinterpret claims of copyright to cover the sprites or the character concept, which may not be the author's intention at all.

In general, 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) is as his name implies a student of Kung Fu. One day, while walking out with his girlfriend, 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. The two fought with the original being victorious, but because Elecbyte hadn't made Suave Dude as a character yet, 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 occaisonal new move and at one point an improved look. Sadly though, 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.


 * 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 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 straghtforward 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 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-jen
 * myu-gen
 * myu-jen
 * moo-gen

"Mugen" in Japanese means "infinite", therefore the latter would be the suggested pronunciation. However, M.U.G.E.N is a forgotten acronym, referring to the days when the engine was meant to emulate shooting games as opposed to fighting games as stated by Elecbyte, therefore the real meaning of M.U.G.E.N is and always will be unknown.