The Dolmexica Engine [Moddable 2D Fighter]

newt model
Avatar
05 Aug 2011 07:00 / last edited 05 Aug 2011 07:01
Thank YOU for making Dolmexica! 

Senile Team Big Cheese
Avatar
05 Aug 2011 17:11
August 5th (...) playable beta

Is it there yet?
Is it there yet?
Is it there yet?

05 Aug 2011 23:53
Roel wrote:
August 5th (...) playable beta

Is it there yet?
Is it there yet?
Is it there yet?

Plombo, in the third person, also awaits Captain Dreamcast's response.

06 Aug 2011 01:03
At my defense, in some time zones, it's still August 5th!

Laaaaaadies and Geeeeentleeman, tonight, I present to you, the first homebrew 2D fighter for Dreamcast (not counting a certain BoR mod), Dolmexica Engine!

Despite the rather "large" amount of selectable characters in the demo, only two of them are playable. Ryu and his eternal rival Ken will once again step into the ring to show the D-Engine's basic gameplay. Sure, it's hardly Street Fighter vs. Mortal Kombat anymore, but I explained my reasoning behind these two character choices before.

Now, the core of this post. Like with "The Best Game Ever", I put my faith in Filesharing sites again. This time, Mediafire:
Mediafire Mirror

Of course excellent game developers like Senile Team and the OpenBoR devs don't really need a precompiled image, as they have the ability to see games only by looking at the code (Matrix-style)
You're lucky there since the D-Engine has to be released under the GNU General Public License V3, with the source code being available here. To be honest, I don't recommend looking at it, as there are absolutely no comments and my coding style is... let's call it wild

In case you don't have the time/tools(?) to download and burn the game, a cool guy named Dreamcaster already uploaded a gameplay trailer:

Watch the video, it's a perfect transition to the next paragraph.

Like you see, not all is fine in Dolmexicaland, various bugs and glitches are roaming the landscape, in addition to unbalanced gameplay. So my only plea is, in case you try the game, to please tell me about the engine's shortcomings. Don't worry about hurting my feelings there, in fact I'd prefer to hear about everything wrong, so those things don't get overlooked.

Let's take the Hadouken for example, that one's more than broken. The hit detection only hits when it feels like it, without any visible pattern, making it a very difficult bug. 

Another thing you need to know is that Player 2 can only join in by pressing Start at the Character select screen.

Although there are still a lot of things that need to be done, fixed and improved, I believe 100% that the D-Engine has the potential to be awesome.

newt model
Avatar
06 Aug 2011 07:51
Looking good! I was pleasantly surprised that everything looks pretty polished already. Of course it's a shame that the actual fighting part is not ready yet 

07 Aug 2011 18:23 / last edited 07 Aug 2011 18:24
jeroen wrote:
Looking good! I was pleasantly surprised that everything looks pretty polished already. Of course it's a shame that the actual fighting part is not ready yet 

Aww, thanks for the kind words!

It's interesting to note that the various menus, which I personally consider to be the best-looking part of the engine, was pretty much a hack-job and done in two days, whereas the fighting part, which really needs a lot more polish, was worked on for about eight months. 

Oh, and in case the gameplay trailer led you to assume that the fighting is completely broken, I would like to clarify that the disappearing sprites bug doesn't happen on a real Dreamcast, but only when using an emulator. Of course then engine could freeze anytime , especially during special moves, but that's another, sound-related, story.

Ceharet
Guest
08 Oct 2011 22:18
*Sigh*, oh great and admirable Captain Dreamcast, hero of many-a battles and lord of Videoland, programming geniu... You're not paying near enough for this...

C-Man out forever. Peace.

08 Oct 2011 22:47
Hah, no double post! Sweet! 

After rewriting every single line to simply loop through the shared code between the two fighters and making sure that it won't freeze anymore (At least not randomly. Heh.), I think things are starting to speed up. Additionally, the first versions of the Dolmexica-Compiler, dubbed "Dolmexiler" is up and running, almost completely erasing my need for a Hex editor.     

Just this week I was able to add two new characters, Liu Kang and Johnny Cage, a process which would have taken weeks before. Yay!

On a completely unrelated note, it looks like I'll be doing this for a living. Last Gamescom, when I used to hang around with some game development students, their head professor showed up and took a look at the D-Engine. Needless to explain, he disliked it, probably due to the fact that he didn't understand that it was for a decade-old console. In retrospective, the fact that it freezes and uses stolen textures did not really aid my cause. Since all other universities not only disliked, but rather loathed the good ol' DC as if they were financed by Sony itself, I'll still go with the original university. 

Oh well, if you started throwing popcorn at your computer monitor shouting: "BOOOORING", you're right, we're here for adrenaline-pumping fighter action!! So yeah, it's high time go back to working on that gameplay trailer. Thanks to my new sound engineer, it's bound to rock! 

Senile Team Big Cheese
Avatar
09 Oct 2011 07:14
Good, I'll get some more popcorn ready for your next post, then.

26 Nov 2011 07:02
Questions, requests, and trollings:

1- Are you coding directly in a .txt file, my friend?
2- Can I make a Hadouken already?
3- msvc > gcc (says the 4 sized tabs lovers)
4- Please, zip everything and let a lazy do lazinesses, aka download one time
5- file_t's all around
6- Will Roel call you to work with him?
7- *lovin to be a trollin nigga o/*
8- kisses, call me

Senile Team Big Cheese
Avatar
26 Nov 2011 08:01
Tab size doesn't have anything to do with gcc, does it?

26 Nov 2011 16:17
How not? I am talking about User Interface tools though. GCC itself doesn't even have one (does it?).

Senile Team Big Cheese
Avatar
26 Nov 2011 17:43
CGR wrote:
How not? I am talking about User Interface tools though. GCC itself doesn't even have one (does it?).

I think you just answered your own question.

27 Nov 2011 00:40 / last edited 27 Nov 2011 01:03
WARNING! Novel-size post approaching at full throttle! According to the data, it is identified as "cheap try to avoid talking about the trailer"! NO REFUGE!

Obscure Ikaruga references aside, there have been some cool new additions to the engine. But first things first!

CGR wrote:
1- Are you coding directly in a .txt file, my friend?

Short answer: Hellz yeah!

Long answer: A long long time ago (~1 month) , back when I was still developing with my Coder Cable, I was forced to use my computer with a COM connection- a computer so old I was surprised it didn't have "Property of the Kaiser" written on it. Due to the unfortunate circumstance that my Development Environment depends on the latest Linux version, the only program running with more than 5fps was Mousepad, the Linux equivalent of the good ol' Windows editor. So yeah, not sure if that answers your question, but I use the bare text files without syntax highlighting. Is there a better way to get that Rocky-Balboa-underdog feeling?

Quote:
2- Can I make a Hadouken already?

Gotta dig the Hadoukens in the Beta: Completely glitched and hitting everything but the enemy. Now that I think about it, I can't remember what the exact bug was, some overflow error or something. It's all fixed now, in fact, the fireballs have even been: [super deep bass voice]UPGRADED [/sdbv]. Those damn Ninjas and their cool special moves, the first long range attack is supposed to freeze the enemy and the other one pulls the enemy near so your own character can perform an uppercut?! Of course it's not a problem anymore, the current "build" can handle both. Even those super-ultra-mega-screen-filling attacks, which look like they could destroy a whole building full of Kyo Kusanagi clones, work just the way you'd expect them to.

Quote:
3- msvc > gcc (says the 4 sized tabs lovers)

Took me about four minutes to realize that msvc does not stand for a crossover between a comic franchise and a renowned game company. Anyway, back on topic, I have never seen anybody developing with both KallistiOS and Visual Studio. My personal gcc/binutils/newlib combo was actually put together by myself using the KOS dc-chain script, is it possible to create a similar toolchain with msvc? A GUI may be helpful, but typing "make" into the command prompt window isn't that much of a daunting task either.
Oh, and there is still the teenzy weenzy problem that my Windows partition crashed, burned and died a horrible death. Haha, guess I have to be rooting for gcc, but maybe I'll check it out once I port the D-tools to Windows!

Quote:
4- Please, zip everything and let a lazy do lazinesses, aka download one time

My pseudo-monthly backup of awesomeness is actually a single zip file, well, a rar file to be nitpicky.  Now I'm not really sure why I decided to release the Beta's source as single files, but it must've been a great scheme which involved ninjas, intergalactic space travel and saving the world!
(My way of saying: "Thanks for the tip!")

Quote:
5- file_t's all around

file_t's are awesome. The fs_open, etc. functions fit the D-Engine better than fopen and its friends. Nah, it was just two days ago that I found out about KallistiOS' compatibility with the standard file reading functions. Well, to be honest, there's less of them around right now, many file_t died because of the inclusion of new utility functions. They belong to a dying species, so please donate to the "Fund-To-Rescue-NonStandard-FileHandlers" so we can repopulate the D-Engine's source code with file_t's again. Thank You.

Quote:
6- Will Roel call you to work with him?

Oh, oh, oh, there's a real thesis why that will probably never ever happen, I call it the Tari-Cogramming-Theory:

As long as you are programming all by your lonesome self, things are pretty hard, time-consuming and lonely, but you constantly make a steady amount of progress. Now, if a second programmer comes in, complete with his own style of coding and preferences, you lose lots of time figuring out the other guy's stuff, as well as arguing which way is the best to go. Naturally, the effect lessens the more programmers are involved in a project, but I have serious doubts a team with less than four programmers could be more efficient than a single programmer all by himself. Or maybe I'm just making this up, to feel better about the fact *sob*, that nobody *sob*, let's me play *sob* in their teams. C'mon guys, weird puns in function names and integers named after '70/'80s songs are cool! 

Quote:
7- *lovin to be a trollin nigga o/*

brofist.jpg

Quote:
8- kisses, call me

Pretty much the same as Number 7!

Man, time sure flies when you're having fun and/or an extensive Q&A.

This is the point where I wanted to start talking about all the new and fancy additions to the engine, the kind of weird shenanigans you can only include if you suffer from an extreme lack of interwebz. But it's like 2 AM now, so we'll save that for next time. 'Till then!

27 Nov 2011 04:26
No Roel, I made myself more questions than actual answers.

Captain, thanks for referring and answering to my post with higher priority than posting news about the engine.
Now everyone hates me, except you. And everyone hates you, except me... or not.

"Property of the Kaiser" heh? MWAAHHAHAHAHAHHAHAH

Senile Team Big Cheese
Avatar
27 Nov 2011 06:37
CGR wrote:
No Roel, I made myself more questions than actual answers.

Well, they seemed rhetorical. That should actually be enough of a hint to answer them, but just incase you're still confused:
GCC is just a compiler (or actually a "compiler collection"), and as such does not dictate, imply or even use any tab size.

By the way, if tabs are properly applied (i.e. not mixed with spaces and only appearing at the start of a line), it shouldn't matter what size they are. The text should then be displayed correctly in every editor, regardless of the tab size setting therein. Incidentally, that's why I prefer simple editors like notepad over "fancy" editors like notepad++; they tend to mess up the tabs and mix them with spaces. Not sure what msvc does to tabs, but most msvc-written code I've seen suggests that it is nothing good.



Anyway, back on topic, I have never seen anybody developing with both KallistiOS and Visual Studio. My personal gcc/binutils/newlib combo was actually put together by myself using the KOS dc-chain script, is it possible to create a similar toolchain with msvc?

It's possible, but if the only goal is to have a 4-space tab size, there are much, much easier solutions.



A GUI may be helpful, but typing "make" into the command prompt window isn't that much of a daunting task either.

I use a batch script to do that. I start it from Windows Explorer, and that's GUI enough for me. 



Quote:
6- Will Roel call you to work with him?

Oh, oh, oh, there's a real thesis why that will probably never ever happen, I call it the Tari-Cogramming-Theory:

As long as you are programming all by your lonesome self, things are pretty hard, time-consuming and lonely, but you constantly make a steady amount of progress. Now, if a second programmer comes in, complete with his own style of coding and preferences, you lose lots of time figuring out the other guy's stuff, as well as arguing which way is the best to go. Naturally, the effect lessens the more programmers are involved in a project, but I have serious doubts a team with less than four programmers could be more efficient than a single programmer all by himself. Or maybe I'm just making this up, to feel better about the fact *sob*, that nobody *sob*, let's me play *sob* in their teams. C'mon guys, weird puns in function names and integers named after '70/'80s songs are cool! 

What you're saying makes sense (especially the part about variables and functions named after '70s and '80s songs), but on the other hand, I know from experience that a project can be successfully divided over a small group of programmers if they are clever enough to actually talk with each other about who does what and not mess with each other's code without asking first. Incredible as it may seem to many of today's programmers, good communication trumps even SVN.

28 Nov 2011 23:09
-DARY!

Of course it would have been cooler if I had actually ended the last post with LEGEN-, but that doesn't change the fact that it's time for part two of the novel-sized news post.

So I've already talked about the new screen-filling Special Moves, appropriately named "Omni Moves", which allow a lot more action on the screen, since it disables the hit detection. After the initiating move (either a Hadouken or a normal attack) connects, control is immediately passed over to the Omni-portion of the code. Or to use simpler terms: BOOOM, BAM, BAZOO, PSHU and KAZAAM. Ahh, by far my favorite type of attack.

Next up was the Dolmexiler (Dolmexica-Compiler -> incredibly thoughtful pun) again, who still needed a little add-on to support Artificial Intelligence. The add-on itself was relatively easy to create, requiring a new input file that declares which move is used for what, but the hard part had yet to come: Finding an appropriate pun to name it. However, after days of meditation I came up with a perfectly fitting name: DolmexicAI.

Another little plaything of mine is the Omni-Converter (omni is omni-usable), a drag 'n drop tool which converts Input PNG files into D-Engine input files. Portable KallistiOS Graphics (PKG), the finalized texture format, KallistiOS image file (KMG), the uncompressed textures (for debugging etc.) and black 'n white Crash Layer Bitmaps (BMP), which can be altered before converting them to the final D-Engine format. Now I'm really, really not happy with this tool. Sure, it works perfect, is capable of batch processing, easy to port and makes converting the images a lot easier, but as you might have noticed: No secret little joke hidden in the program name. Unacceptable, there's no way I will release the tool with a name as lame as D-Omni Converter. Domni... Dolmexomni... Dolomnix... See? Lame.

Of course the D-Engine changed as well:

- A completely new Artificial Intelligence:

After playing more Garou: Mark of the Wolves than can possibly be healthy, I have come up with a new way to organize the AI. Originally, I was too influenced by a statement made by a veteran game developer, which implies that sometimes random patterns are enough to trick human players into believing that they're fighting against an intelligent and carefully planning foe. While this may be true for 99% of all genres, I have come to believe that fighters should have as little randomness as possible. In order to simulate fighting a human opponent, the thing most fighters were made for, all moves should be based on some kind of internal logic. Too far away? Get closer. Too close? A quick jab to free yourself. Now those examples were incredibly simplified, that's how it works for "D to the M to the X to the C", yo.

Or to quote a Quentin Tarantino movie:
Admin wrote:
If on its journey, this AI should encounter God, God will lose.

Additionally, all characters of the Street Fighter vs. Mortal Kombat promo are playable now, both as a human- and a computer-controlled char. Thanks to all of them tools with their great names, it was pretty easy, most of them still lack their special moves though. Can't wait to see Johnny Cage pull of his nutcracker move. Not sure if Chun-Li is going to call it sexual harassment, though.

- The Arcade Mode: Eight fights in a row, with random characters which may only appear once. The overall goal here are points, so it's just the way you'd expect the "normal" mode to be. Not that this game could ever be normal, even the normal part is awesomer than the awesome part of other games. High-Five, anyone?

- The Survival Mode: Contrary to the Arcade Mode, the Survival Mode goes on until the player loses. You're supposed to have the whole adrenaline-pumping "NO REFUGE" feeling, so you keep your health, fights only last one round and the only thing between fights is the (short, short, short) loading time. Points don't matter in this life-or death situation, only the amount of bad (or good) guys you've squashed. But hey, not all's gloomy, you recover 20% of health between rounds. Generous, isn't it? Characters may reappear as often as they like, so it's possible you have to fight Sagat ten times in a row. Sorry in advance!

- The Story Mode: Back before Dolmexica was the moddable beauty it is today, the Story Mode was supposed to be the main focus of the game. That's why I've taken an extreme level of care with this favorite mode of mine. The main kicker here are the storyboards:
Not to simplify things, but basically you have three textures, two text boxes and two sound effects at your disposal and are free to use them whichever way you wish. It's cool, but also takes a long time to create complex scenes and scenarios. Maybe templates would be a possibility, but this will have to wait for now. Originally I also wanted scripted battles to be possible, but looking at the way things are now, it's become kinda unlikely. Oh well, this mode needs more testing anyway. Can't have it be as buggy as the beta, right?
*A-hem*, enemies can be either chosen randomly (without reappearing), taken from a pool or be fixed. There is nothing to go after other than the story itself, so make sure to make it interesting. As long as it's not about a Video Defender trying to retrieve a super-secret power source called Dolmexica. Seriously, NO.

- Intro Movies: It's just a storyboard displayed before the Title Screen comes up. Yup, reusing functions is fun. 

- Smoother Fights: Fights feel a lot more natural now, thanks to some new additions to the code. Of course when I say natural, I don't mean pain and blood and all that stuff. Just imagine what that would be like, a giant boxing glove add-on for the controller which punches the player if he gets hit. Gotta pitch the idea to Max, RIGHT AWAY! 

Now I'm desperately trying to fix all the things which sucked when I wrote 'em the first time around, namely the graphical user interface. Yes, it may shock you, but even I make a small mistake every once in a while. Not anymore, though.  XP

I'd like to use this incredible moment of incredible arrogance to give credit to another person: Jenkins, who has been creating some cool screens to be used with Street Fighter vs Mortal Kombat. He has done a great job, so I can't wait 'till they finally find their way into the actual D-Engine. As soon as they do, it's SCREENSHOT TIME!!

You know, here's a little more thoughtful quabberdizuck:
Even the best sound engineer isn't worth jack if you do not have, drum roll please, a VGA splitter and a capture card. Sadly, I have neither and the ones I believed I could use was nothing more than a red herring. So much for the trailer. Is there such a thing as a post-release trailer? 

Now, what's that tabs talk about?

*tries to hide the fact he does not know what tab size is and why it should matter* 
Size doesn't matter, it's only about how you use it.
*disaster averted* 

Ohhh, right-o right! There used to be a second programmer, right? The genius who came up with the Error Code Modeler among other things, as well as coding part of the strawberry-flavored magic R4 runs on. Now if only there was a replacement for Neill Corlett, preferably someone with a top hat and an epic german accent. Haha, just kidding, you handle just fine and I'll stick with the lone-wolf-like-Terry-Bogard thing. (Wow, second SNK reference in this post! Bazinga!)

Anyway, thinks are getting closer to the end (for Dolmexica, not me!), but I'm in no rush. There is always enough time for some more testing or some cool new addition. There's no way the final version is going to be as buggy as the Beta!

That was it, part two of two of "Dolmexica Update 4: The novel". Hope you're going to read the sequel: "Dolmexica update 5: The Bugpire strikes back". 'Till then!

29 Nov 2011 05:22
-DARY!Originally, I was too influenced by a statement made by a veteran game developer, which implies that sometimes random patterns are enough to trick human players into believing that they're fighting against an intelligent and carefully planning foe. While this may be true for 99% of all genres, I have come to believe that fighters should have as little randomness as possible. In order to simulate fighting a human opponent, the thing most fighters were made for, all moves should be based on some kind of internal logic. Too far away? Get closer. Too close? A quick jab to free yourself. Now those examples were incredibly simplified, that's how it works for "D to the M to the X to the C", yo.

I remember that statement. Although it was as respond to other poster's observation of Beats of Rage's AI.

Anyways, you have good idea there! have you thought of difficulty setting? something like easy mode will feature simple and repetitive AI while hard mode will feature complex and strategic AI.

newt model
Avatar
29 Nov 2011 08:11
High five

Senile Team Big Cheese
Avatar
29 Nov 2011 09:29
Unacceptable, there's no way I will release the tool with a name as lame as D-Omni Converter. Domni... Dolmexomni... Dolomnix... See? Lame.

Since you seem to like '80s references, call it Dolminic Convertini! After the Airwolf character Dominic Santini.

Copyright © Senile Team. All rights reserved. | About Senile Team | Contact us
Wii and WiiWare are trademarks of Nintendo. © 2012 Nintendo.
Dreamcast™ is a registered trademark of SEGA Corporation.