ENIGMA [Luda]

Posted by ludamad on April 27, 2008, 3:07 p.m.

Well, I'm over at my grandma's for a bit so I decided I'd pass the time by writing a blog.

I'd like to start of by saying I'm a huge supporter of the ENIGMA project; I've supported the idea since JoshDreamland first mentioned it to me. I'm making this blog just as some general basic information about ENIGMA in case people are still unsure about what it is, and to raise some awareness about ENIGMA.

In response to a variety of issues in Gamemaker by Mark Overmars, JoshDreamland started the ENIGMA project. ENIGMA will address the following issues:

-Gamemaker games are interpreted, not compiled. An ugly megabyte-and-so is tacked on to games and they are considerably slower in runtime.

-> ENIGMA games are converted into C++ by a parser, organized into events, and compiled by G++, a GNU license compiler.

-Gamemaker games can be easily decrypted. In gamemaker, the whole *.gmk file is present in the *.exe.

->Decompling ENIGMA games will be impossible to do due to customizable encryption, and will not include the source code anywhere in the *.exe.

-Gamemaker code is limited in function, the most you can do is still limited to what is available in the GML functions; DLLs and extension packages are needed, and have to be coded separately.

->ENIGMA will accept C++ fully, in the case of a parser problem, you can make the parser ignore a whole area of code so you can code in C++ uninterrupted.

-Gamemaker is a commercial product; many of the more advanced features are not available unless you register, and a logo appears saying your game is created in Gamemaker.

->ENIGMA will not only be freeware, but GNU software. There is little way of discerning if a game was made in ENIGMA or pure C++. Though ENIGMA is GNU, programs made in ENIGMA will be complete property of the creator; the creator is allowed to sell their program commercially.

-The inner workings of Gamemaker are mysterious, it is hard to determine why Gamemaker acts a certain way, and impossible to edit the engine.

->ENIGMA, being open-source, has all the source files included. Not only can you determine the exacts of the system, you can change fundamental ways ENIGMA handles situations to suit your game (provided, it requires a good grasp of C++).

Now, a little about colligma, ENIGMA's up-and-coming collision system that will be coded completely by me. Here's what's colligma hopes to have (and a good amount is done so far):

-Custom collision masks that can be altered in real-time by a variety of functions.

-Custom collision masks that take approximately X*Y/8 bytes of data (that is, the array is filled with bits).

-A variety of shapes you can set your object to in case you wish to save on collision calculation time. Supports triangles, rectangles, and ellipsoids (called circloids in colligma).

-Rotation of collision masks (via image_angle)

-Support for scaled collision masks (via image_xscale and image_yscale)

-Support for sprite-based collisions (as in Gamemaker)

-Fast, efficient collision-checking functions

The end result is that in colligma, as opposed to GM's collision system, it will be unbelievably easy and efficient to have destructable terrain, and you can even alter the collision mask a sprite has in real-time (it will not affect the sprite itself at all, and will not error if the sprite is currently in use)

Comments

omicron1 16 years, 7 months ago

…So you're going to drive MO out of business, y'know?

It sounds like Enigma may end up as a highly successful engine, even in the commercial sphere. Who knows… maybe the Enigma team will end up in the credits of a bunch of commercial games.

What I'd suggest - just a thought - is that you include a runtime interpretation option for development (similar to GM's runner). Compiled code takes many minutes to run through - and while testing, it would be nice to be able to trade compile time for speed if need be.

aeron 16 years, 7 months ago

Quote:
Is there any *particular* reason you decided to use a rather dumb and non-standard term for ellipsoids, or are you just trying to be special? There's no reason to throw out a valid mathematical term.
I don't know, circloids sounds pretty mathematical to me. :P

DesertFox 16 years, 7 months ago

Quote:
A loop is horribly slow. Your best bet is to make a new collision mask based on the distance moved.

Too bad you aren't giving the option of collision_polygon (defined by a trianglelist) cause then you could use a minkowski surface via the collision_polygon and the line to generate the moved polygon smear.

Xxypher 16 years, 7 months ago

WHERE IS MY LUDA BADGE DAMMIT!?

Yeah, it needs better collision. Game Maker doesn't like to let my sniper bullets collide in my Unlimited Ammo game I am working on, 70 speed is just too much I guess…

ludamad 16 years, 7 months ago

Desertfox: Given by a triangle list? So what is wrong with doing multiple collision_triangle?

Cesar 16 years, 6 months ago

Yes Goerge, that is exactly why you have OSX, to make games and play games.

Idiot

DesertFox 16 years, 6 months ago

Quote:
Desertfox: Given by a triangle list? So what is wrong with doing multiple collision_triangle?

Thats like saying "Why take a boat across the Atlantic? You can swim just fine!"

Why? Because you can set up a UI and give them an incredibly easy to use and extremely useful tool for collision detection (and not just minkowski).

Or you could force the user to write horribly complex stuff to work around something because the programmers were lazy, like gamemaker does…. Wait - isn't Enigma being made for that exact reason?

Also, cause minkowski sum of polygon A and polygon B is different from the minkowski sum of the components of polygon A and polygon B. You should read up on minkowski surfaces. I can see you don't really have much knowledge on them. You can eat flour, sugar, eggs, and butter plain, but that doesn't make it a cake. The whole is greater (and more efficient) than the sum of the parts.

Polystyrene Man 16 years, 6 months ago

Quote:
You can eat flour, sugar, eggs, and butter plain, but that doesn't make it a cake.
Unless you're an oven. In which case you don't get to eat the cake anyways. Point being, we're all buddies.

Rusky 16 years, 6 months ago

On the interpreter idea- you could always just load the code ENIGMA spits out into a debugger thingy, like what visual studio has.

Cesar 16 years, 6 months ago

THE CAKE IS A LIE! THE CAKE IS A LIE!