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.
9 projects across 4 years.
Sign in with GitHub and LiveIssues checks what you already write against this organization's repositories, then brings you open issues nobody has claimed. Free and read-only.
Find my match