The ENIGMA Team
A free development environment geared towards game development.
ENIGMA comprises three principal components:
- An integrated development environment meant to help users organize their game's assets and logic in a way that is free of boilerplate and easy to reason about.
- A compiler that builds these game files into executable code, with generated asset management boilerplate (among other game engine basics).
- An engine that integrates with the user's built game to drive the core logic and tie everything together.
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++.
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.
The ENIGMA Team 2021 Projects
Android Support for ENIGMAThis project aims to fix the issues regarding the Android platform that includes fixing the shader, adding a new audio system and the addition of ...
Polygon Based Collision Detection SystemA Collision Detection system that is an alternate to Bounding Box and Precision Collision Systems. Used In Enigma to detect collisions in a game...