Why can't Warcraft 3 handle many units in game?

I think one of the most known problems that have been around in this game for quite some time now is that this game struggles when there are “too many units” in game. It also struggles if you try to play 1v23 computers with a few night elves there due to how AI and wisps work.

Even on high end hardware the game just massively stutters or straight up crashes, while not even consuming full CPU usage.

Why does this happen? Is it related to memory?

over 15 years old spaghetti code i suppose

I think that 15 years spaghetti code is actually better than the spaghetti code on the actual game engine. I’ve never, in my 15 years of gaming, seen so many issues with a game released by a major publisher.

1 Like

The AI is not optimised for edge cases where it bugs out. The stutter is the AI trying to find a solution for something without one that eventually causes a time out.

Warcraft III can easily handle thousands of units on map without performance issues so I do not know this “too many units” issue you are referring to. If you mean that a single player cannot move a lot of units at once as they will just stand still most of the time that is a path finder limitation, required for performance reasons.

Only 1 CPU thread is used because consumer computers only have 1 core back in 2003 odd when Warcraft III was new. Making it use more than 1 core efficiently is not possible without a total rewrite which would likely break a lot of things. Even then chance are it still will not use most of a top-of-the-line processor due to how many cores there are.

Multithreading is not easy. If it was your processor would have 20+ slow efficiency cores in it rather than the few performance cores it has.

You probably have not played this game for that long then.

Been playing since 2005 odd. Seen maps spam all manner of units everywhere. Performance only really tanks if the units do something or scripts are poorly written.

1 Like

Yes, I’m obviously not talking about 500 units just not doing anything

One of the very old map protections used to store some kind of info about thousands of placeholder units, when opening in the editor they got replaced by a model chocking the system. It was obviously very week, but it exploited the problem of too many units.