Implementing garbage collectors isn't an easy feat and can introduce more issues than it's worth, especially in a codebase as old as WC3. Determining when and how something should be collected isn't as straightforward either. Locations are probably the biggest offender here.
There are left overs from in the engine however, that you can implement, but most of them are used to clear cache/memory after you finish a game, which also is not active by default, took Karaulov some time to enable it. However, it might not be "as easy" and I never said it is, but it IS indeed useful, or you could at least give mapmaker choice to enable/disable it.
Multi-threading isn't a magic bullet. You can't just throw more threads at a game and have better performance. JASS is fundamentally single-threaded and has no synchronization capabilities, and introducing them would break the code in incompatible ways (and inexperienced modders won't know how to use them effectively anyway). Introducing multi-threaded code in other areas of the engine would require a substantial redesign of the engine architecture. Likely not worth the investment either.
Fun fact, it is. Right now, if you pile a lot of garbage on 1 core, it will require a straight up higher core clock to maintain its function fully, which I've mentioned before, meaning if the load will be spread, you will have much more window for actual FPS and load spread, that will result in lower FPS drops, or remove them all together as one core will handle that and rest will handle the frame rate. Speaking of "Jass has no synchronization" is very strange, and I doubt that has actual proof, but I may be wrong, can't say for sure, but I would like to see some information on this. Again, I am only suggesting, not saying it is NEEDED or UNAVOIDABLE, however yes, it will take them to remake the whole engine, which is truthfully not really worth their time, which I do agree with.
Not all data can be dynamically changed since a lot of it seems tied to static definitions of object data, which means that if you change it - you change it for all of them. Probably something that can be worked around with, but it raises memory consumption.
Not true at all, especially when memhack can do it for single units, because each unit has memory dedicated to him, therefore you can affect a selected unit and not affect anyone else, exactly what Blizzard is slowly but surely fixing with their SetUnitName.
Cokemonkey wrote an excellent post before explaining that things have to justify the cost-to-benefit ratio. Rewriting may sound easy in your head, but for an engine as old and forgotten as WC3 it is no easy feat. They stated repeatedly that a lot of the knowledge has been lost to time, as well as tooling related to the engine. It's very hard to work on old codebases even if some of the old people are around. It gets exponentially harder when you have an all-new team.
Why do you people keep assuming for other people how they think of anything, it is more proper to ask them how they imagine it happening, instead of assuming. Also, yet again, I never said it was easy, however when users like Karaulov can dig up their data and fix it with external dll, you really should start thinking about if it is as hard as people tell you to. Or take a look at RenderEdge, you will find things he did mentioned by Blizzard as impossible, so there is that.
Not to mention that rewriting a large portion of any project brings with itself many new hurdles and challenges:
- How do you maintain backward compatibility?
If the final data is handled by the core in the same way, you don't break the compatibility, meaning if data to process it receives is the same, it takes developer to only make the core to be able to spread the load evenly, it will take them to rewrite the logic of course, but it should not be straight up breaking compatibility, that is not how it works.
- How do you not break functionality that relied on existing bugs?
Could you elaborate? This seems unclear and a bit out of place.
- How do you make the new systems work correctly with the old ones?
A question back, how do you not make it work? What I mean is, that essentially you change the LOGIC, not whole ACTION, but again it also depends on those who code it. And as I said, you can take a look at things I mentioned before, memhack or RenderEdge or even NetEase platform with their external dlls. Yes, this is not the same as rewriting the core and making it use more cores, but it should not be anywhere close to straight up breaking anything, that is just not how it works.
- How do you make sure you don't introduce more new bugs in place of the old ones?
This question is overshadowed by patches 1.27 to 1.29, you can never be sure, same goes to mapmakers, whenever you do something, you test it, that's how you make sure it works, that is normal, is it not?
None of these questions have easy answers to them.
They are not that hard, but you are trying to make it sound hard for no real reason, this is a discussion, not a war
Don't fix what ain't broke.
You should not write something like this, especially if you look yet again at patches 1.27a to 1.29, so what you are saying, is that Blizzard did a poor job, and these kinds of comments are what makes others look bad.
Did I say it is? All I said it lacks optimization and could use improvements... urgh.
Most maps perform just fine as is
Please do take a broader look at maps, that are not on hive, those maps that are not approved here or are just straight up badly made, you will understand, how this statement is incorrect...
performance isn't the biggest of Warcraft's concerns - accessibility, ease of use, and tooling are. Like I said earlier in my previous post, help the community help you.
Performance is the biggest issue, if you look at things from a broader perspective, as I have said many times before, to judge globally you need more information and in my displeasure too many mapmakers are bad at coding and cannot make maps that don't drop FPS, which results in a dire need of someone to fix said issues, and the best one there is has to be Blizzard if they make the engine stronger overall.