This is more of a quality of life thing, and it’s not the end of the world if it isn’t patched, but in the World Editor, the following things cause memory leaks:
Unit Groups
Locations
Special Effects
Player Groups
Sounds
Local Handle Variables
Some of these are very easy to prevent from leaking. Special effects and sounds you can just “Destroy last created Special Effect/sound” to get rid of them.
All the other ones, however, require special custom scripts to fully destroy so they don’t leak.
In addition, every unit ever created also creates a permanent memory leak of 0.004kb or something along those lines. There should be a way to permanent destroy a unit so that it does not occupy memory.
Finally, the wait (game-time) trigger also leaks due to a bug in the function itself. This should be easily fixable.
Now, all of these do little but slow down the determined mapmaker, but it would be nice if I wasn’t slowed down because I have to keep thinking in my head about memory, leaks, you know?
I’m not an experienced map creator but will it be possible for your work to be instantly mirrored throughout the entire map based on number of players? For example in 8-player map you only need to build 1/8 of a map and have it mirrored to the other 7/8 with perfect symmetry.
You mean in game they cause leaks. Leaks inside World Edit do not matter at all since it is a not real time map development tool. Leaks in game do matter because they can affect memory usage and performance.
These do not leak, just one has to manually keep track of them. This is because one might want a special effect to persist for a very long time, possibly even permanently if you are using it to enhance terrain.
That said an automatic “destroy after time” function for special effects would be nice. Sometimes one wants a special effect to persist for a few seconds and be destroyed and currently one has to track it during that time which increases code complexity.
Only because there is no GUI action wrapper for them… Something which could be easily fixed and was with some third party GUI extensions.
This leak can be considered trivial. If your map goes through enough units that it starts to have serious impact on memory usage your map has serious design problems. Even the most spammy maps that make near 50,000 units will at most have a MB or two leaked as a result of this.
No it leaks because of the local declared local agent (?) variable reference counter leak on return bug. Which is suspect is what you meant by…
This is apparently being fixed sometime in the future. However it almost certainly will not be a problem with the up coming LUA.
One could write a third party program for this. Trigger systems can be made to do this very easily thanks to arrays.