MAP Optimizers

hellmonja27

Member
Reaction score
16
i originally posted this at the DotA-Allstars forum. hope you find it useful.

i optimized my first map yesterday. like Chuckle Brother said, i should experiment on different settings and combinations. since things about map optimizers were pretty vague to me, and i'm sure that's the same with other 1st time mapmakers, i just thought i'd recount what i found out during my "experimentations". feel free to correct me if there are mistakes.

the optimizers in question are Vexorian's WC3 Map Optimizer and PitzerMike's Widgetizer. Both can be downloaded in wc3campaigns.net. let us look at these two individually:

WC3 Map Optimizer
This is a very good program to optimize your map with. It has a lot of cleaning options you can click in and a few extra ones such as changing the buffer size or adding comments thrown in. i'd highly suggest for 1st time users to read the README first before using this. Take time to understand everything and know what each option does. The README alone is worth mentioning because it not only says how to work the program but it also contains FAQs and a section about Widgetizer.

reading the README, i've found some options to be useful and some options to be rather risky. for first time map makers with a map that has a lot of triggers, i won't recommend checking these:

-Anti BJ
-Conditions
-Look for other script files to obfuscate

as stated on the README, these may cause some triggers problems. so for nooby's like me, it's not worth the risk. but adventurers and explorers of the unknown are welcome to try.

another feature it has is the New Buffer Size feature. if i understand correctly, this indicates how much space you reserve in the RAM for your map when it is being played. Blizzard's favourite buffer size is 4096 bytes. for larger maps, a bigger buffer can do wonders in terms of gameflow speed but keep in mind that it might cause problems with slower computers. best option for now is Auto-Detect.

another feature worth mentioning is the Clean SLKs option. although this is a good option for cleaning your map, it is not recommended for those who have custom SLK files imported in, such as custom ubersplats. some custom SLK files are having trouble with the Map Optimizer's cleaning method. so if have any custom SLKs imported in, uncheck the "Clean SLKs" option. (thanks to Chuckle Brother for pointing that out.)

Widgetizer
a good tool for optimizing maps. This can really squeeze your map into amazingly small sizes and incredibly faster lodaing times. but there is a catch. The problem with this tool is if you have a well terrained map and you check everything on the widgetizer, much of the doodads are changed. how? let's say they're just there but you just can't see them. so it would really make your map look desolate. to eliminate this problem, uncheck the following:

-Doodads
-Destructible

now that you've unchecked the two, another problem with it is the map isn't that small compared to a map optimized in WC3 Map Optimizer (let's call this WC3MO from now on). and the loading time isn't as fast either. i've tested this on a Pentium 3 Celeron 800mhz unit where WC3 lags and slow loadings are easily noticeable.

Experimentations
ok now i've tried some combinations and stuff. some people use WC3MO after Widgetizing the map. some just Widgetize and some just WC3MO. so which is better? it depends.

Widgetizing
like i've said, Widgetizer by far has the fastest loading time and smallest map size regardless of the catch. this is accomplished by checking everything. simple maps will benefit from this and maps with not much doodads and terrain beauty in it.

with these settings:

-doodads unchecked
-destructibles unchecked
-the rest checked

Widgetizer doesn't do much compared to WC3MO. but it will leave the doodads untouched.

WC3MO
The settings i've used in WC3MO is this:

-check Remove Useless Code
-check Merge Initializations
-check Order Strings To IDs
-check Shortest Number representations
-check Optimize string usage
-check Clean SLKs (given that i don't have custom SLKs imported in)
-check Remove Editor suffixes
-check Remove Editor-Only Files (crashes WE thus protecting your map)
-check Remove as much WE-only data as possible

with a 1.37mb map it reduced 16% of its size and turned it into 1.12mb. this is by far the smallest without much of a catch (unlike Widgetizer). there are also improvements in loading time but not the fastest as of late

Widgetizing+WC3MO
so if you have two great map optimizers, why not have them work together? two many cooks might spoil the broth, huh? anyway, if you want to achieve the best loading time, using WC3MO on a Widgetized map is the way to go. some options must be changed though:

Widgetizer - leave as it is just uncheck 'doodads' and 'destructibles'
WC3MO - uncheck 'Optimize String Usage' to avoid problems. also make sure you check 'Clean SLKs' (again of you don't have custom SLKs).

the end result is a slightly larger file but a slightly faster loading time.

WC3MO+Widgetizing
ok, bad idea. you'll just end up with an error message. Widgetizer just can't compile triggers optimized by WC3MO.

Verdict
so here's a summary:
Widgetizing: all checked - gives best size and loading time while making your map look dull.
Widgetizing: some unchecked - not so much of a nice result. if you have to chose just one optimizer to use, go with WC3MO.
WC3MO - best size without the catch. not the fastest loading time but it's only beaten by a few seconds. best for bnet maps.
Widgetizing+WC3MO - best loading time. slightly bigger file size than WC3MO (about 20kb difference). best for LAN maps.
WC3MO+Widgetizing - don't do it.

DotA's Loading Time
Even with the best settings and the Widgetizer and WC3MO combo it still doesn't beat DotA's loading time. considering it to be a map that is almost twice the size as mine, it still beats me by 20-25 seconds. what's DotA's secret? who knows. i suspect someone in TDA has developed their own secret tool. or DotA is programmed in a way that minimizes loading time. either way, when optimizing a map, don't compare it to DotA's. just look for a decent loading time.

Errors
reading Vexorian's README file can be very disturbing. there will be hints of possible error occurences and triggers being corrupted by the optimization process. that's why we didn't check 'Anti BJ' and 'Conditions' to play it safe. WC3MO and Widgetizer are still works in progress. they are still making improvements on the programs to better serve mapmakers.

when it comes down to it, it's the map that is most error-free that counts. no matter how big or small or how long it takes to load, a good working map always wins the day. trying to find errors in an optimized map can be pretty daunting. a good working trigger can be made bad through optimization. so if you have a heavyly triggered map, you might wanna check every trigger after optimization. this, i guess, is not worth the effort. but as a study case consider these two maps. they're both the same but with different methods of optimization. one used just WC3MO (with the (Vex) suffix) and the other the Widget+WC3MO combo (with the (WV) suffix). i haven't had time to test both optimized versions and tell which has less errors but it would be a great help if you can beta test it for me and see for yourself which optimizing method is the best.
 

SFilip

Gone but not forgotten
Reaction score
634
> best for LAN maps.
Wrong. Widgetizer alone - best for LAN.

> or DotA is programmed in a way that minimizes loading time.
This is pretty much it I guess. The loading time directly depends on your map's custom object data. DotA doesn't have much at all if you think about it...I've seen many maps that can beat its number.
 

hellmonja27

Member
Reaction score
16
> best for LAN maps.
Wrong. Widgetizer alone - best for LAN.

ah, i see. but the thing is though, i never got a small enough filesize with widgetizer without sacrificing destructible and doodads. i could be wrong though...
 

SFilip

Gone but not forgotten
Reaction score
634
> i never got a small enough filesize
Why does it matter in LAN? ;)
 
L

Lordbevan

Guest
If u want to know the secret in Dota is that heros are post-loaded, therefore their custom abilities dont need to be loaded. Also, a lot of their spells are just simple Wc3 spells, therefore not much triggers needed.
 

hellmonja27

Member
Reaction score
16
post loaded. is that why in my map, when i cast a triggered spell for the 1st time it lags and in theirs it doesn't?

anyway i forgot to verify SFlips tip but i just finished my map so hopefully i can now find time during work to test it...
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top