Unfortunately, most of those have died during my class-related absence from the project.
Here's the state of them, as I understand it:Run
: The point of Run is to build quickly, but run basically the same as it will run when ultimately built. It gives you the best idea of what your game will be like when released. It's also the only option you can count on working, because most of this project's developers don't understand that their changes might work in one mode, and not in another.Debug
: Debug mode has mostly survived due to its utility. The purpose of debug mode is to create an executable with full debugging symbols to allow attaching programs such as valgrind or GDB. Debug mode also does checking for issues in your game, such as attempting to draw a sprite that doesn't exist. In C++, those kinds of issues usually result in the death of the game.Design
: This mode was in our third demo release, but fell into disrepair during the branching of the project to work on more platforms. It relies heavily on widgets, which are only recently fixed upstream (and we're still having issues with the installer that uses the new MinGW with the bug fix—see BinUtils #13297
. Barring more issues with the installer, the only issue is that IsmAvatar (LateralGM's maintainer) and I don't have enough free time to collaborate on its re-introduction.Compile
: This one's all IsmAvatar. When you build on Windows, you must use the extension ".exe" or MinGW GCC will add it for you, which in turn makes it so ENIGMA can't find the executable to add resource data to. To fix this, we were going to add extension information to the compiler configuration files in, eg, Compilers/<platform>/gcc.ey
, along with a plethora of other changes to account for huge differences on MacOS vs Windows vs sane operating systems (On Mac, applications are special directories instead of single binary files). The specification was never fully laid due to a lack of collaboration between developers from all three platforms (OS X being the one we were always missing). As a consequence, Ism never added a fix for the file extension, despite nagging from fifty people. I think TGMG hacked together the entire Mac port, anyway, to be honest. I don't even know if it works, because no one ever tries to use ENIGMA on it except TGMG and ugriffin, neither of whom I've seen for two years.Rebuild all
: This option just deletes all the object files and binaries, forcing ENIGMA to rebuild them. It's helpful if something breaks in the build process (which is very rare, and not to do with ENIGMA).
So now you know.