Quote
There's not much to the Function syntax, just provide a Command and its parameters, and perform one operation at a time. You'll notice that many of the basic Aliases (which, if you haven't noticed, have replaced the Command and Variable IDs in the recent update) look like C, and for the most-part, the ones that don't are higher-level functionality that might as well be equated to library function calls. The only thing that might be a little tricky about basic function creation is the "
fetching" aspect, but it shouldn't take long for it to become clear how it works
Quote
everything still needs to be written from scratch
I certainly wouldn't say that, considering what E02 does take care of on its own. You will do a lot of coding for a complex game, but that's true of pretty much any system. It's my understanding that lot of people are putting a lot of their own work into Game Maker games lately, or are at least relying on other people's major works, which would be easily relatable to my templates. As I stated in a previous post, I also intend to create more basic and advanced templates that can be built upon or harvested for functionality
Quote
Is there supposed to be an advantage to E02 that I'm not considering?
One of the benefits would be one of the "advertising" points- It's multiplatform. You fill in the assets and game logic, and you get it running on about 7 platforms for free- there's absolutely nothing else to do
You're also not only getting the low-level handling of graphics output taken care of, but sound output, and key/button input. As you said, there are APIs to take care of that (although, even of the ones that are multiplatform, I don't think they have this broad of a range), but it's not
just that. You're also getting other game-internal systems handled for you, and I've expended alot of effort in designing them for both functionality and performance. Some of this includes:
-
Level and Tile management- automatic tiled scrolling with available fine-control through script, dynamic level segment looping control, automatic tile animation, automatic and script-controlled palette animation, easily-swappable palettes, a couple of useful tile property settings
-Although Levels are created with Tiles for performance, there is still functionality available to use mobile objects that have a collision reaction very much like the surface of a level
-A few
sprite features such as multiple boundary boxes of three different types for each frame
-
Animation management with a few accessory features such as allowing more than one animation per object, and assigning any of them freely-controllable offsets, while taking all visible frames and their boxes and offsets into account for any collision testing
-
Object handling system- priority and other list management such as insertion and removal during spawning and destruction, fine level collision with or without path following, pretty much an "interrupt" type system to test for and manage object/object and player/object collisions the moment they happen (in-hand with the "phase" management for calling the individual function types, such as movement, drawing, and collision), "activity range" and resetting, four-level object freeze control by flags, etc
-
Player handling system- all the benefits of individual objects from the object system, but with better path management, a few other accessible built-in statuses and controls, "key events" for reacting to input, "movement modes" for managing player state and separating the key events, "Boundary Events" for automatically triggering functions when the player or his camera enter defineable areas, a modifiable "animations list" for dynamic animation selection control...
-The "
Status script" system that provides easily-managed movable "objects" (fixed or variable text, or sprite graphics) with absolute or relative positioning and with nestable draw windows, and "selections" for managing menu-style input, useful for HUDs, Title Screens, menus, etc
-The "
Functions" system is like a multi-tasker to some degree; it's separated into a few processors such as the general functions, various function types for each player, various function types for each object, status script functions, tile plane control functions, music-controlled "XM event" functions, etc, all of which can be made to start or stop the processing of other functions (including manipulating other processors, to certain extents) at any time, and each of those functions can be made to "break" at any point to move on to the rest of the game before they continue processing, at which point, they'll return to the exact point at which they were told to "break"
-A few more powerful
script commands to take care of certain high-level tasks with a single call
-The Utilities for data creation and manipulation (such as
Level Ripper [which is also available in the "utilities" menu in the interface, although only the command-line version is documented],
Tile Editor,
Level Editor,
Sprite Editor,
Object Layout and Status Editor) are not only available, but can be accessed at any time during gameplay for quickly checking up on issues and/or making and testing adjustments
I'm probably leaving stuff out, too, but I think that the fact that E02 handles all of that, and handles it well, makes it very useful