No matter how old Warcraft 3 is, it's still solid game with decent requirements. It's most obvious if you're using a low-tier PC. Due to the nature of intricate systems and mechanics, some players with low-tier PCs can encounter some FPS issues in our map, DotA Allstars. No wonder - the map was made on modern systems and basically allows stuff you could only dream about in IceFrog's old versions. But, since it's still an issue, let's see if we can help it.
Since the version 6.88u, there are chat command '-betterfps', which toggle some extra visual effects off or on. Try to use it to see if it helps your PC to run WC3 easily, If that didn't help, look below.
We need the windows Registry (access it by searching for "regedit" in your startmenu) to work with. As a first step, find the main table for the WC3 parameters: HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\Video
Q: Does it affect the gameflow?
A: Nope. It's just video graphics adjusting, like changing resolution.
Q: Didn't help me, I'm still at 50 FPS.
A: This tricks supposed to help people with 20+ FPS. 50 FPS is pretty playable for a normal players, WC3 has a limit of 64 FPS anyway.
Solution #1: lockfb
To be honest, I have no idea what this param stands for, but it's part of DirectX drawing engine. Disabling it will increase FPS for 10-20 points everywhere, not just DotA.
- This trick won't affect non-DirectX drawning, meaning it's useless if you already use OpenGL to run the game.
- This trick may affect your mouse movement style. To fix that disable VSync on the control panel of NVidia/ATI, whichever graphic card you are using.
Solution #2: opengl
DirectX came to replace OpenGL. This package contains way more powerful graphics, modern and shiny. But since you struggling for every FPS, you shouldn't care about prettiness.
In order to use OpenGL you should create a shortcut to Warcraft 3 main .exe file and add the parameter "-openGL" in the Target window, as shown below:
Alternative way: create "Gfx" subpartition in the "Warcraft III" section
Add DWORD (32bit) named "opengl" and set it's value to 1.
Solution #3: swtnl
With given low-cost videocard but proper CPU (typical situation for laptops, for instance) you could transfer graphics jobs onto CPU. This will increase it's temperature, so beware of overheating.
Create "Gfx" subpartition in the "Warcraft III" section:
Add DWORD (32bit) "SwTNL" with value 1. This may increase your FPS but may also cause your CPU to be overloaded.