The ENIGMA Team
A free rapid game development environment.
A free rapid game development environment.
ENIGMA is a game development environment comprising an IDE, Compiler, and Game Engine.
ENIGMA is meant to be simple to learn and even simpler to work with. ENIGMA makes it refreshingly easy to stand up simple games. Recreating Atari Pong is a job for a handful of minutes. This is true in many modern engines, but unlike most, ENIGMA scales well to positively enormous games, as the engine (and ultimately, all user code) is written in C++.
Users write code in EDL, a language similar to JavaScript (or, more to the point, Game Maker Language) which compiles intermediately to C++. The emitted C++ is optimized based on the game's asset usage, and the result is a C++ game project which can be built by any C++ compiler (we target Clang and GCC). This offers massive portability and library support.
The compiler bundles a C++ parser which crawls the engine for definitions. This theoretically allows users to access library routines directly (e.g. OpenGL), though we recommend against this for portability reasons. This framework is another good surface for GSoC projects, though it's more advanced, so we've left it unexplored in our project ideas list.
To really understand the utility of the project, consider a typical game, which uses "rooms" (a type of ENIGMA asset) to lay out instances of "objects" (game entity classes) visually. The objects contain code for specific events (such as step, draw, or keyboard) which can call out to scripts or begin timelines or start movement on paths. ENIGMA's compiler translates this to C++ and builds it against the engine after parsing both to learn how to integrate them.
Projects
Contributor
Seif Kandil
Mentor
Josh Ventura, jeleve, R0bert, rpjohnst
Organization
The ENIGMA Team
Steam Workshop SDK/Third Party Integration For ENIGMA
ENIGMA currently lacks third-party integration with various digital distribution platforms such as Steam, Xbox, or Origin. First-class support for...