For those of you having problems, try the direct link
. Oh, just so you know, I have tried a lot of image hosting sites and imageshack has proven to be the most reliable. But mouZ
is correct (thanks bro!), this is neither the place nor the time to discuss that.
So let us talk about gameplay. Regarding that, the Dolmexica Engine
uses s a simple set of guidelines:
- Quick gameplay. (like Street Fighter III)
- A hit detection with an inaccuracy of no more than 2 pixels.
- 60 Frames per Second.
- A character resolution of at least 128x128.
- Different styles of Gameplay (Capcom, Mortal Kombat, SNK, etc...)
- No Loading Before/After Continue Screen. (Hellz Yeah!)
- No maniac Fighter like Killer Instinct. Pick up & play but hard to master.
Currently, all of these points are still achieved. Well, or not yet fully implemented as is the case with the different gameplay styles. Do not get me wrong on this point, all of the basic physics options are controlled directly by the modder. Selecting a style only defines things like "D-Pad-Back-Blocking
" and specials like Fatalities
in Mortal Kombat
Oh well, so much for that.
Despite its awsomesausetacular gameplay, the D-Engine
's main catch is and will always be the moddability.
Here is how creating a new character is supposed to work:
Okay, so you've gone through the process of ripping/drawing the sprites
The Dolmexica Engine
uses two semi-independent files for new characters: One .CHR
file, which stores all the media
related to the characters and one .MVT
, which is best compared to a manual
which tells the game what the character is supposed to do, more on that later.
First you have to create a .CHR
file. Since the engine is optimized for use with the Sega Dreamcast
, the individual frames are stored in the RGBA 4444 KMG
format, compressed with the QuickLZ
compression archive, resulting in a file format called .PKG
(Portable KallistiOS Graphic). Currently I employ 128x128 PNG textures
(which are then converted and compressed before
using them with the game). You might wonder why someone would want a texture with a width of 128 pixels, the thought behind that one is that the all close combat moves take place in this box, so even long-range attacks like Dhalsim's stretching attacks fit in there. Just in case you wonder, those 128 pixels may look a bit small at first, but it's enough to contain even the detailed Street Fighter III: 3rd Strike
characters. Also keep in mind that they are stretched to 256x256 pixels
on the screen, which is a lot comparing it to the overall screen size of 640x480
. One thing that I am still unsure about is wether the engine should use RGBA4444
or both, with RGBA4444
being my current favorite.
After you have successfully converted your PNGs
, it is time to work on the hit detection. The Dolmexica Engine
uses a fifth image layer for that one, colloquially dubbed the Crash Layer
and is stored in a .CRA
file, which is nothing more than a 128x128 array of ones, zeros and other funky numbers, afterwards compressed with QuickLZ
. Since writing 16384 numbers is nothing but a pain, I have also written a tool which converts a normal (24bpp) .BMP
image to the .CRA
format. White (0) is nothing, Black (1) is vulnerable, Red (3) is the area which HURTS
, Blue (2) is blocking. In case you haven't noticed, this hit detection is pixel perfect.
Regarding Sound effects and other small sounds, I am currently evaluating the possibility of using some ADPCM
format. Or just the normal .WAV
one, the most important thing aspect is that the sound effects will be streamed.
Those three filetypes will be merged into the aforementioned .CHR
archive. It probably sounds very confusing right now, but believe me, thanks to the automatic tools I have written, a new attack or animation can be added in less than five minutes
file is a tad more complex. As mentioned before, it serves as a manual
to the game, which tells the game which moves are available. First we have to differ between two different types of manuals: The one used by the CPU
and the one used when the character is controlled by a human player
Should the character be controlled by the evil CPU
, the .MVT
is ordered by the type of Attack
, whereas the Humanoid .MVT
is ordered by the input buttons which trigger the animation.
Both types are being "compiled
" from a readable .TXT
file. For normal attacks, values which have to be declared are the overall amount of frames
, the speed
of the animation, the strength
(attacks only), the Enemy Acceleration
, how much the enemy gets knocked back (attacks only), sound effects
and the AnimationType
(attack, throw, blocking...).
Then there are also special attacks like throws, combos and so on, which have values declared for each individual frame, including some new variables: How much the Enemy's or the own Char's Position change
, how much damage
each individiual frame does and others. This is the stuff I'm working on right now, so expect a lot to change in the special moves department, but this is how I am expecting things to work.
Naturally you can also fiddle with things like the character's jumping height
. The physics
are something I really put a lot of emphasis on and a lot of work into. My primary goal is to make it feel like Street Fighter III
, which in my opinion is the very best 2D fighter
on the DC
Anyway, when you are done with creating the .TXT
and converting it to .MVT
, you have everything you need to have a new working character. My two testing characters right now are Sagat
(Street Fighter II
ver.) and Johnny Cage
ver.), replacing my previous test char, Stickler
(The Best Game Ever
was a long post. If you have any suggestions, ideas or feedback
, please let me know about them.