What's MUGEN
|
This is an overview of Mugen, trying to make things as simple and
short as possible, but touching most of the subjects. Basically, on
various Mugen forums, you usually see the same questions come up over
and again, anytime someone new comes across Mugen and asks about it,
anytime someone tries to create his first character... This is aiming at
answering all of those common questions to give a comprehensive view of
Mugen.
This will not teach you all the secrets of creating the best
character, but this will help you understand what's what, what it is you
are looking at, and where to look at when you will later search for
specific things.
|
The program Mugen is the engine itself that will load the code you
wrote for your characters and interpret it to make your character move.
It is possible to build yourself a game using Mugen by putting together
several characters and stages with a screenpack so that they work well
together like a true game you would play on a console.
|
M.U.G.E.N is presented as an acronym, and previous ReadMe files have
mentionned that it once stood for something they have since then
forgotten. However, the pronunciation of the name "Mugen" is intended as
the same as the Japanese word that means "infinite", with a "mu" that
sounds a bit like a "moo" except with a very short "u", and a hard "ge"
sound as in "get".
|
The code language you use to create a character to be interpreted by
Mugen is none of the various programming languages ; it is a language
created specifically by the author of the engine, Elecbyte, so that
anything written for it will work just on Mugen. The engine itself was,
of course, programmed with an existing programming language, although I
do not personally know the details (for example, the previous versions
of Mugen before 1.0 used the Allegro library, for anyone familiar with
it). Regardless, the code of the engine is closed off - the source code
has never been released by Elecbyte, and it is anyway irrelevant to the
development of characters and stages to work on that engine.
|
Mugen is an ensemble made of a screenpack (that includes all the
various menus to navigate in and the hub of the fight - lifebars,
portraits, powerbars), the characters, stages, musics, text fonts and
storyboards.
This overview will focus on the characters, the way and format they are coded in, and the tools to code them.
|
Creating a character is usually not something you can decide within
the snap of a finger and have finished before the end of the hour.
Creating a stage or character requires a bit of dedication, a bit of
imagination, a bit of organization, and the material for what you are
creating.
To create a character (which is what this overview focuses on, but this is also true in general), you need :
- the graphics : 2D sprites / images
- the code : a few text files, the most important ones of them possibly growing well over ten thousand lines
- the sounds : ... well, yeah.
The graphics are very often ripped (extracted, copied, cleaned) from
an existing game, but they can also be drawn by hand on any paint
program. Of course, creating the sprites yourself is much more demanding
and requires much more talent and dedication than the former method,
thus taking sprites from an existing game is much simpler. Very often,
it is possible to find sprite packs on the Internet, but it is also
possible to rip them from the game - often through an emulator with
sprite viewing functions, or sometimes directly extracted from the
original support, depending on your abilities and knowledge of the
material.
The code makes up a major part of the character, and you need to
write it by yourself. Most of your time will be spent on this, as it may
require constant tweaking.
|
- .def : the file that defines
all the other files that will be used by the character, and also defines
the most generic information like the name that is displayed. DEF
obviously stands for definition.
- .cmd : the file that defines the input
sequences for all the possible commands, and assign a command to a
movement. CMD obviously stands for command.
- .air : the file that defines the animations.
- .cns : the file that defines all the movements
by breaking everything down in states. The core of the code. CNS stands
for constants, as the first thing it contains are the constants of the
character : the velocities, gravity, the size, the position of the
head...
- .st : an alternate extension used for the CNS files, especially when there are more than one. ST stands for state.
- .sff : the file that contains all the sprites
of the character, each being assigned a group number, a sprite number in
that group, and the coordinates of the axis. The .air file refers to
these group and image numbers to display a given sprite. The sprites are
given a default palette.
- .snd : the file that contains all the sounds.
- .act : the palette files. They are used to
change all the colors at once, by switching the default palette with the
selected palette. In Mugen 1.0 and above, those files are not used
anymore and the palettes are part of the SFF file.
The DEF, CMD, AIR, CNS, ST files are all text files. You can open
them using your favorite text editor - WordPad, NotePad, NotePad++, even
Word ; my personal preference goes to NotePad++. Technically, these
files don't need to have these extensions, the file that contains the
commands could be named .blargh instead of .cmd, as long as you specify
the correct name + extension of the file in the DEF file ; the reason
for that is that, ultimately, it's just text in the file. The .st
extension is not used all that often, as people more easily use one
single .cns file for most of the code, and when that code is broken up
into more than one file, the .cns extension is often used instead of
.st. Similarly, all these text files could even be put in the same file,
such as putting everything in the DEF file itself, as long as you point
it out in the DEF file. It is, however, simpler to use the standard
extensions, if only to recognize the files at a glance.
Note that there is a file that contains a lot of common states, the
common1.cns file located in the mugen/data/ folder. This file is usually
included in the DEF file.
|
- DOS era
MUGEN was first released in 1998 as a DOS program (this does
actually work on Windows, or rather did at the time, as more recent
versions of Windows put a lot of restrictions on DOS-based programs).
Right from the start, a few format changes quickly arrived in the next
couple of years (such as all names needing to be in quotes while they
didn't at the very beginning). By 2001, Elecbyte started working on a
Linux version, and tried to port it to Windows (as a proper windowed
program that could also work on later versions of Windows).
- WinMugen era
When 2003 came, Elecbyte apparently gave up and let their site die
down without any new version, never going past the beta version that was
only privately distributed for testing. With Elecbyte apparently dying
down, the private beta testing version was leaked, and then hacked
(limitations for the beta version were removed) around 2004. That
version, WinMugen, saw a few more hacks by different people, including
versions that allowed high-resolution stages, screenpacks, then both.
The popularity of the leak then the hack started low, but the community
quickly adapted to it, if only to survive.
- Attack of the Clones
While Elecbyte was away, a few "clone" projects emerged. Some tried
to retro-engineer Mugen and offer a clone that could later be improved,
some came up with a completely new engine that would be very loosely
based on Mugen with various major differences. Few have gained steady
support, and fewer have seen steady improvement. Some of them even
dropped out with the return of the Jed Elecbyte. The notable ones have been ShugenDo, InfinityCat (which is now discontinued) and xnaMugen (also discontinued).
- 1.0 RCx era
Only in 2009, Elecbyte reopened their site, and have since then
released a series of "release candidates" (RC1 to 8 as of the time this
is being written) (strictly speaking, an open beta) of "Mugen 1.0", the
official Windows version. That version has known several bug
corrections, and some major additions, like the "localcoord" parameter
which allowed to display creations of any resolution at the same size.
Elecbyte has then given information on their being working on Mugen 1.1,
which will see some major rewrite for the code to be cleaned up and
updated. While this clean-up would mean no visual changes, they are also
adding new major features on top of that clean-up, such as the
possibility to use full color sprites, a revamped renderer, a zoom
feature, named variables, and possibly more. Finally, later in the
future, plans have been discussed to completely rework the scripting
engine for a 2.0 version.
|
|