With documentation of a new format started, however incoherently, here
, it's time I put to writing my plan for large games made with ENIGMA.
One of Game Maker's biggest downfalls is the sheer length of time it takes to save and load games, both in GMK format and in the EXE format. People with large projects suffer incredible wait times between pressing "Run" and seeing their game working, until they finally just keep all resources external. How can we fix this?
Most people with large projects, if not every single one of them (where "large" implies having lots of resources, not a stolen tutorial and 6 massive WAV-format music files) keep their resources well-organized within the tree. I was looking over the sources (acquired in multiple ways) of successful GM-made Metroid clones. Sprites were divided by player and by land, then by enemy... it was, as a trend, very well organized.
Cutting to the chase, my proposal is sprite_load_group("Crateria");.
Basically, when our new format is implemented, "compiling" large games will be as simple as unpacking resources from the zip. Or, as we're likely to add, compiling the standalone, duplicating the game zip, stripping the script directory, object directory, and manifest files (anything that would no longer be of use in a compiled game), and adding the EXE to that.
ENIGMA games would then, when the user calls sprite_load_group(group), just recursively add all sprites found in ./Sprites/group/.
Likewise, it would recursively unload them when the user calls sprite_unload_group().
This will require minimal modification to the original system, and will save many users an assload of hassle, which when you think about it, is the point of the ENIGMA project, anyway. Built-in support for massive amounts of resources, and keeping them external, is fundamental if ENIGMA is to offer something that Game Maker just fucking doesn't.
I mean, until one of those sodding idiots stumbles upon this thread and puts their programmers to work implementing it.