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

SteveKB 16 years, 5 months ago

don't make polygons the lazy way either, make sure octagons have six triangles not eight.