Here is a list I've been forming since late last year. Essentially if there was ever something I felt like gE should have, I added it to the list. I was going to go through and organize and rank it, but I'll post it here as requested by akr. I will still go through it and organize it, currently this version doesn't have any bugs I experienced, as a lot of the bugs only happened in large sized games. Some of these might not make sense, if so mention it and I can explain. Almost all of these I have found workarounds for.
-Edit
Somewhat more organized.
ACTOR
-Be able to change the default actor referenced by actorName.var. Currently the actor reference is defaulted to the actor with the lowest cloneindex, or the most recently created clone within the local script.
Example:
//actorName.2
actorName.var=0;
-Actor variables changed and referenced in global script are not updated in game. Currently you need to type a comment before the function call with the actor's name. This is partly what I'd call a bug, but I find this one to be extremely ridiculous and should be fixed.
-Width and height should have default values even if an actor is not created. Currently you cannot know the size of an actor before creating it. The default value can be the default animation of an actor in the stage, or create a function that retrieves the dimensions of an animation.
int GetWidth(char * actorName, char* animationName);
int GetHeight(char * actorName, char* animationName);
-Be able to adjust the xy width/height settings for frame regions in game. So, either for frame regions turn allow users to change width and height, or create functions to change them.
-Actor* actor variables. Now this one isn't as common for small level games, but I know I have had so many occasions to use this. There are workarounds, and I end up doing this in every game I make.
-An xyz actor search. I know about the getactor function, but it only takes x and y. A different fix for this problem would be like getAllActorsInCollision where it returns an array of the actors, allowing the programmer to sort through them.
Actor * getactor(int x, int y, int z);
CLONES
-Be able to destroy clones quickly. Perhaps much like destroying tiles, or removing all extra clones. Lots of things could be done to fix this.
-GetHighestCloneindex function. When dealing with a lot of clones it would be helpful to be able to know the highest cloneindex. Example is using a for loop and getclone type functions.
VARIABLES
-Adding zdepth variable. Since several of my games have been 2.5d, I've used a lot of zdepth, and would find this quite useful. This should be an easy addition.
-There should be an actor variable or function to return the actor's visibilitystate. Of course this would be actor specific as well.
int GetVisibilityState(char * actorName);
-There should be an actor variable or function to retrieve animation state. Again this can be created, and I have once created a higher level ChangeAnimation function that does this for me, but I'd prefer dealing with gE's built in versions. (actor specific).
int GetAnimationState(char * actorName);
-Destination variables for MoveTo. This can be done manually, but when using MoveTo it is often desirable to know the distance from the target.
PATHS
-The ability to rotate and/or mirror a path. So when you set the path, you set a rotation, and a mirror variable. This would be really helpful in shmups and particle effects.
ChangePath(char * actorName, char * pathName, int rotation, int mirror);
SOUND
-A function that returns the name of the sound/music in a given channel.
char * GetChannel(int num);
-Add and remove sounds. Currently the game adds a sound to the data file if there is a PlaySound2 call. So if you use a custom sound function, you have to list a bunch of PlaySound2 calls.
TEXT
-Change fonts for textActors with a function. The parameters subject to change, but essentially be able to change font and size.
ChangeFont(char * actorName, char * fontName, int size);
-Functions to escape text input, and more text input support.
NEW EVENTS
-End of Music
-End of Sound
-Mouse Over
-Mouse Button Down (not based of zdepth). So if the mouse is over the actor, and you click. Currently only the top actor, unless it has mouse button down event disabled, will be activated. This really isn't a big problem most of the time, but I have been using filled regions more often with iPhone development, so it might be a good idea.
ANIMATIONS
-There should be a setting that either makes specific animations, or at least ged files, not remove the top left pixel and turn it transparent. I think it should be toggleable, I personally don't have problems when creating my own images, but when given images from others, it is not a common habit for people to remove the top left pixel.
-GetAnimName needs to be actor specific. Currently you cannot easily make dynamic animation changes through code.
Sequences have become very convenient now due to the size limits for iphone/ipad. Currently though, you cannot change the base animation. This isn't extremely necessary but it would have helped in my last project.
//...Have a parameter for animation direction (state) in CreateActor.
TIMERS
-Timers could benefit from a few changes and several additions. First of all, you should be able to edit timers... For timers that don't change type, as in all you want to do is change the time it goes for, it doesn't matter, but if you want to change a timer to repeat infinitely, then it does. A nice feature would be pausing timers, and of course resuming them. This would better support pause type functionality in games.
-Destroy other actors' timers. Again, any built in gE function should not just target the Event Actor, but should be able to target any actor.
If there is already a variable gE uses for timers, then being able to see it would be nice. I am pretty sure it doesn't use that, as it would then be frame based I believe, but still I've occasionally thought it useful to be able to see the progress of the timer.
ACTIVATION EVENT
-Be able to send an activation event to all actors.
SendActivationEvent("All Actors");
-Activation events should have an actor* (activator). In scripts we have access to things like creator and parent. In collision events, we can use collide, so I propose in activation events, activator. It would come in handy when dealing with clones and very specific events. activator would make activation events extremeley useful.
OTHER
-Have a place that holds timers.
-Be able to toggle fullscreen/windowed mode in game.
-Improve how gE handles undo. Currently undoing will cause the entire game to reload. With larger projects this can be vastly inefficient, and undo becomes unusable.
-Exterior text editor support. Mainly I want to use emacs. This would make gameEditor even faster. An alternative, though I much rather have exterior editors, is to have a version of the load script that constantly loads the script into the game. Improving the #include might work (not preferred though), if when exported it adds it to the global script.
-Add more shortcuts to the interface. Saving is the most important, but things like bring up the actor control panel would be nice as well. For the most part it would be nice to be able to use the keyboard more, so if creating an event was possible, then selecting through key presses.
-Support for a load game bar type feature. This can be done by splitting the work, but only in game. If you create everything by code, it can be done even with LoadGame, but that eliminates the major advantage of the stage.
-Wire regions (canvas, filled, and wireframe), should have a smaller minimum size. I tried to make a thin hp bar, but the region can't be smaller than 10 pixels. I say it should be 1 as the minimum size.
-The built in menus for gameEditor should allow constants. Examples being sequences, variables (array sizes), animation fps, similar. There shouldn't be any problems with things defined at compile verse run time, so its doable. Really the gE interface isn't amazing, so this would help clean up some interaction with it. I can see this being somewhat hard, but still in big projects, it can help a lot (especially when building cross platform games).
-Canvas support for tiled actors. Minimaps... I've always thought this would be nice, the alternative takes many lines of code, this would take one. This is one of the few disadvantages to using tiles in my opinion.
DEBUGGING
The ability to disable events, switch them on/off. I know I'd use this quite often. I currently just comment out the code with /* */...
There should be a mode that darkens wireframe regions, or allows you to see the borders. This only really is needed for a small number of things, such as testing create xy positions, but I can see the fill in being convenient for other things (though yes canvas does this).
LINUX
-Better file directory navigation for Linux. The need to click and click and click is quite inefficient, if nothing else support for typing the file name and the auto cursor move when typing. Currently Linux is the only one using gE's version, and it is quite inefficient.
iOS
-Multitouch (we need more than one instance of xmouse/ymouse).
-The ability to call the built in keyboard.
-Be able to suspend the game, maybe set the SuspendGame function. A setting would be nice to allow the game to suspend when you press the home button, instead of closing it.
FUTURE
Multiplayer/Networking.
-Flash port.
Released port for android.
A better way of telling what device is playing the game. Whether it is computer, iphone, ipad, android, etc.