ENIGMA

Posted by JoshDreamland on March 3, 2011, 9:50 a.m.

[If you don't know what ENIGMA is, I've included a couple footnotes at the bottom]

Over the last two years, I've watched as it seemed that every venture ENIGMA had undertaken, Yoyo paid someone complete in a matter of weeks. This is becoming unbearable. With time, Yoyo's questionably paid staff has made (however poorly) several strides which ENIGMA has thus far only demonstrated as a proof of concept. With them, Yoyo wooed their hoards of fanboys, touting utter nonsense about the wrong aspect they should be bragging on. For instance, when they started work on their PSP port (which I've not heard anything about lately; have they abandoned it?), the first thing they did was post a blog on how hard they've worked to optimize it. That's a great concept; they should be proud of their work, except for the fact that the blog showcased their implementation of an existing function (lrint), and the majority of the blog was an overview of the IEEE floating point specification. People ate it right up, nonetheless.

More recently, they've posted a blog about porting Game Maker to HTML5. I was shocked to see that several individuals on the community actually evaluated this beyond face value (I believe the stupid ones didn't see any value in converting GM to HTML5 at all, or didn't understand what HTML5 is, and so ignored the topic); the first several GMC posts actually brought up the very first points that came to my mind, and that's really unusual (typically I'd have to dig through piles of ass-kissing nonsense, which until now I thought was ubiquitous on that forum). Still, most of their following that frequents the GLog did nothing but glow at how much work they did on it, which apparently they did, but I know they're not going to be releasing their JavaScript-based runner and parsers open-source.

I'll cut to the chase. I'm not accusing Yoyo of anything, for once. They've got me licked in one dimension: resources. Every time I have a "cool idea" for ENIGMA, people don't hear from me for a month or two and then I implement it, and in the meantime, Yoyo hires someone and does three other things. I don't have time for trivia and PR when I'm working on something big. And ENIGMA is otherwise grossly understaffed, if one considers us as even having a staff. Yoyo can basically shit staff members, and it's becoming more and more difficult to compete with that. Here is where we stand:

IsmAvatar is a Java programmer, as I'm sure many of you are aware. She runs the LateralGM project, which ENIGMA still uses as an interface. She is also responsible for the ENIGMA plugin. The plugin is for LateralGM; it creates ENIGMA's pieces of the GUI and sends game data to ENIGMA itself, which is a DLL (or Dylib or SO).

Ism and I are working on a text editor for LateralGM. I'm about to abandon it because I have bigger fish to fry. Ism's to-do list for ENIGMA also includes parsing a number of settings files to allow users to choose platform, which is a problem in its own…

TGMG–you may remember him from G-Java or G-Creator–Waltzed in a few months ago and made ENIGMA work on MacOSX, iPhone/iPad, Android, and PSP. The problem is, he made modifications to the compiler's source to make them work, and we have no idea what those modifications were. We have his source code to everything but the PSP release; we're trying to coordinate with him to get the changes he has to make to the engine put into compiler setting files, but this has been a slow operation (he's infrequently online when Ism and I are). As such, we have nothing to show for the fact that ENIGMA can run on all those nice portable devices, or even OS X; we've received a couple reports that some really strange shit doesn't work on Apple (much of it, Java!).

r9k started a polygon collision system to replace Colligma, which Ludamad has recently volunteered to restart work on. I haven't pestered Luda about it (it's only been a couple days), but r9k has vanished, and he's not left us his source. He has been waiting on Ism to do some UI work that would allow the user to set custom polygon vertices. That hasn't happened (We pretty much have Ism spread too thin).

At present, ENIGMA is missing very few things before it can compile and run all the GM6 examples successfully: Tiles (it will compile and run without these, but look ugly), a default font (I'm not sure if Ism passes one), the score system (UI work across platform is a hack), instance deactivation (this is the big one), and more than likely, something else we haven't noticed. By removing the instance activation and the call to the score system, TGMG was able to get all of the GM6 examples working.

What ENIGMA is

For those who weren't here or weren't listening when I introduced the project a couple years ago, ENIGMA is a compiler for Game Maker. It takes GML and converts it to C++. It then passes the generated C++ to the GCC, which compiles it, optimizes it, and links it against a free implementation of the Game Maker library. This means faster, smaller, native code.

We have managed to preserve GM's syntactical quirks, such as the with() statement, and integer field access (object0.speed = 10). Instead of the runner interpreting your code, it simply makes calls to it. The runner is not a separate module; it is compiled alongside and linked into your game, meaning that unused functions can be omitted from it by the compiler. This means that a "Hello, world" program doesn't have to be 2 MB. The code also compresses marvelously, because we don't compress any code ourselves. I'd be happy to show it working, but at the moment I'm busy, and this blog is here for a reason. The release candidate after the fourth-phase release, R4, has not been formally released. You can download it here if you want to try it out. A platform example that works well is available here, but it does not utilize the collision event, which was only implemented a couple months ago.

The point of this blog

What I need is someone like we were when we started these projects. Or someone like we are now. When I started out, I knew little of C++ compared to what I know now. What I had was dedication. And free time.

Now, I have plenty of C++ experience, but I'm constantly swamped, and there's always more work to do. If I could make ten of myself, three of Ism, and another TGMG and Luda, we'd probably be equipped to finish the project. Problem is, I can't. Thus, I find I must pull a Jimmy Wales and give you all a personal appeal.

No, I don't want money. I want a few people with some C++ or Java coursing through their veins. You don't even have to be great about it, you just have to believe in this cause: defeat Yoyo. If you read that and your stomach churned with embarrassment over how naive and ambitious a statement that is, then you aren't what I'm looking for. You'll back away. You'll quit and go cry into a C# pillow. Or a Python pillow. Or a Haskell pillow. Pony up, grab your spear, and shout, "I'm going to fucking stab Yoyo in the goddamn face!" Then FUCKING DO IT. Or, I mean, join our IRC channel at irc://irc.freenode.net/enigma-dev and talk to Ism or me about it. If we're in the channel, we're likely at the keyboard. We could use a Java programmer (particularly one skilled with Swing), a C/C++ programmer (Ambition and capability are largely interchangeable; understanding how a pointer works or how to instantiate a template and understanding runtime complexity (big-O) is desirable). If you think you can bring anything at all to the table, we'd love to hear from you.

I can't shit resources. When I rub dried feces and paper together, all I get is a static charge micro coulombs in magnitude. Not money and developers. I know there's some great talent on this site, and more than ever since the GM5/6/7 crowd is starting to "grow up."

Go forth, and propagate. Or something.

Comments

Castypher 13 years, 9 months ago

You can't really be surprised that YYG outdoes you. You're a small team versus a corporation. You've done well enough already, and you've certainly come much further than I expected. Don't look at the bad side; this is a non-profit project (I think), and you're keeping up very well with professionals.

Relax. There are very few cases where a small group such as yours can ever beat a company like YYG. Instead of trying to beat them, simply offer a little more that they don't. You're creating a more efficient duplicate of GM. Obviously people are going to choose the one that's better known. It's like making a game. Come up with something cool and original or it doesn't sell well.

JoshDreamland 13 years, 9 months ago

Indeed. I'm here to address the size problem. It doesn't take much to implement GM's standard library. I left some templates (in the original sense of the word, meaning instructions conveyed by an example format) for functions that I think could be easily screwed up or overcomplicated. I just need some people who can operate in a C++ environment and implement simple functions.

Yoyo seems to have us beat simply in terms of volume: volume of functions, volume of user-base, volume of hysteria.

Ronnica 13 years, 9 months ago

I'm glad I read this whole thing.

Quote:
If you read that and your stomach churned with embarrassment over how naive and ambitious a statement that is, then you aren't what I'm looking for.

It didn't but I'm still not =(

But now that I actually KNOW what's going on, I'm rather impressed. TAKE 'EM DOWN, JOSH!

aeron 13 years, 9 months ago

Quote:
Pony up, grab your spear, and shout, "I'm going to fucking stab Yoyo in the goddamn face!" Then FUCKING DO IT.
This. You know Josh, I guess it never registered before but I have a decent amount of experience with Java/Swing. I could easily help out with LGM. Where do I sign up? (And don't worry, I still intend to re-do the EDC :P)

JoshDreamland 13 years, 9 months ago

IRC works, or drop Ism an email/PM via ENIGMA's current forum system.

Castypher 13 years, 9 months ago

Quote:
volume of functions, volume of user-base, volume of hysteria
The userbase itself is a big problem, because without a lot of support, who are you developing for? And who are you attempting to appeal to? Those who once used GM and hated its quirks, those who still use GM, or those who know nothing about GM?

If you're trying to pull in those people who are already using GM, realize you've got a slim chance. If you're dedicated to a program and/or have paid for it, you're not going to switch from it very easily.

If you're pulling in those who know nothing about it, know that if they find GM, they'll be aware that it's more professional, and yours is just a copy.

If you're getting those who hate GM, they're probably (and should be) looking to move to a real language rather than a program that does most of the work for you.

The point is, and I don't mean to discourage you, is that I don't think you realize what you're fighting. While we here at 64Digits support you, we're only a fraction of the thousands of peons at the GMC. And I will tell you right now, that while I support you and your efforts, I'm not moving to ENIGMA for the reasons listed above. If anything, I'm going to stick with C++ and make my own shit, not move to a slightly better GM done by a much smaller team when we all know that even the GM developed by professionals isn't going to cut it.

You're going to have to try for different tactics. That's all I'm trying to say.

JoshDreamland 13 years, 9 months ago

That's the beauty: I can appeal to all three. Since ENIGMA supports C++ and GML, including DND, we have a really good range of appeal. I realize that all of those are barriers, but I believe we can work around them.

And I know we're a fractional margin, but do remember that Yoyo wanted to take over 64D and might have had it not been for FSX's steel will. (Or aluminum will, or whatever he describes it as. Point is, it wasn't going to happen.)

I'm thinking the GM crowd will merge if they're met with an influx of people who compile their games into smaller executables for multiple platforms. Just like a charity thing; find a game, make a post with compiled executables for three platforms. Word spreads fast via magic tricks.

Sadly, Yoyo actually has found a professional. While the majority of them are still idiots, they have a couple people there who know what they're doing, and that is problematic. But I doubt that anyone will do a background check on project leaders past an attractive homepage, which at this juncture, Yoyo lacks.

Scott_AW 13 years, 9 months ago

I wouldn't say they out do you, since it was Mark who did the bulk of the work and they just..um…got paid to dick around?

JoshDreamland 13 years, 9 months ago

Their Mac programmer did work, too. Poor work. Included two copies of SDL and one copy of D3DX8.DLL in the runner. But he did work and has something to show for it. ENIGMA has no SDL or DX8 dependency, but we have nothing to show because our schedules are apparently incompatible, and I don't have money to fix that.

Half the problem is that they have people working, on the clock. Even if their output isn't good, it's visible.

Rusky 13 years, 9 months ago

I think if you want to beat YoYo your best chance is in the functionality Enigma has/will have over GM. Making it compatible with GM is quite possibly a mistake design-wise, but also quite possibly a way to get a lot of users. If, like you said, you can spread the word about small, fast, cross-platform GM-based games people will be interested. Then if you have nice things like polygon-based collision detection, build/design mode, better support for version control, better support for third-party libraries, etc. people will have a reason to switch to Enigma.

There are some things YoYo can't or won't do that Enigma can, but small/fast/cross-platform won't be in that category for long. It would be nice to take advantage of that while you can, to increase awareness on the GMC. Posting games made with Enigma would probably help.