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

sk8m8trix 13 years, 8 months ago

Want me to blow up Yo-Yo's headquarters with a pipe bomb?

DFortun81 13 years, 8 months ago

You know the difference between Microsoft Corporation and a Linux Distribution? Microsoft shits employees and eats them for breakfast. A linux distro has around 1-23 developers working on it and which one has more potential? The Linux distro. Sure, Microsoft currently has the upper-hand since they have more users and team members, but it's only a matter of time before people realize that free software is better than the shitty software with a price tag and begin to adopt the free software mentality.

DFortun81 13 years, 8 months ago

[Once that happens, more and more people participate on the free software teams and the free software piece works better on more machines that fits the needs and expectations of a larger crowd.]

JoshDreamland 13 years, 8 months ago

I don't think a pipe bomb will do the trick, sk8.

And I also think that's a bad analogy because Linux is having some real trouble catching on, despite its glaring advantages. >.<

KaBob799 13 years, 8 months ago

Some people just don't have issues with windows.

Glen 13 years, 8 months ago

Seeing the name ENIGMA appear on the timeline made me smile. I've always admired the project. Wish I could help out with it. No skills in C++ or Java. Although, I'd like to learn how to use both.

Regarding the posts comparing Yoyogames fanbase Vs. ENIGMA's, I'm sure anyone who uses GM that finds out that there's a program EXACTLY like GM but is more efficient and has more features would switch to it right away. I know I would. I plan on it once this project exceeds GM and is bug free.

Castypher 13 years, 8 months ago

Quote:
Some people just don't have issues with windows.
You could say that's the point I was trying to make.

Honestly, Linux is a cool thing, and I know it's an excellent development environment, but like Kabob said, some people just don't have enough trouble with the leading product to consider switching to a more efficient one. If you've got a little money and patience, you'll probably settle with what works, and won't consider too many alternatives. If I ever ran Linux, it would never replace Windows. The same goes for Mac. I'm a long-time Windows user, used to the interface and navigation, and though I have no gripes with Mac or Linux, I wouldn't prefer them more.

Liken it to your case. If I ever used ENIGMA, I wouldn't have it replace GM, simply because GM's quirks don't upset me. Especially not in ENIGMA's current state. I like ENIGMA and don't ignore it, but you'll have to do a lot more than bash GM and its users to get people to switch.

That reminds me, that you and Serprex have a lot in common. You'd both try to make everything more and more efficient even if there was only a tiny percentage of improvement. The fact is, with computers today, you don't really need to have everything up to maximum speed. So stop focusing on making the same product more efficient (besides the obvious GM bloatings), and just add more features that will make ENIGMA unique.

If it has a different name, it should be a different product. Stop trying to clone your enemy and beat them at their own game. Make your own game to be at the top of.

Anyway, keep up the good work. You'll get a decent userbase in time.

Polystyrene Man 13 years, 8 months ago

I just think of all the people that go through the trouble of downloading cracks for the newest Game Maker version.

And then ENIGMA is free.

And I think that's enough.

flexaplex 13 years, 8 months ago

Aren't people forgetting some major benefits of making Enigma GM compatible?

1) The fact that Enigma will have instant access to using all the resources created with GM. Ie there will be instant examples, and instant games that work. The entire GM community can be used as an Enigma reference on top of it's own that will be created.

2) People using GM often find themselves wanting to move onto C++. Enigma will provide an amazing learning tool in helping people to do this who have become familiar with GM. It allows them to ease into C++ using the GM knowledge they have already required.

The fact that Enigma will be a great FREE learning tool for people is the main reason I want Enigma to succeed. That and I want Josh to show up all the people who have doubted him, they're seriously underestimating the wrong person. I don't think a lot of you realise just how capable Enigma already is as it stands.

Juju 13 years, 8 months ago

Stick at it, Josh.

Can I make a suggestion: Stop fucking around on different platforms, get the base code working.