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:
-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.)
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:
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.
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.
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:
-the rest checked
Widgetizer doesn't do much compared to WC3MO. but it will leave the doodads untouched.
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
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.
ok, bad idea. you'll just end up with an error message. Widgetizer just can't compile triggers optimized by WC3MO.
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.
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.
[attachmentid=32617] - WC3MO
[attachmentid=32618] - Widgetizer + WC3MO
so all in all it comes down to the fact that this is just an ingenius way of promoting my map. ^____^ but all the same, all accounts here are true and i hope people will find it uselful. happy mapmaking!...
Just something to note.
SOME Slks dislike Vex's cleaning method(moving whitespace, etc). I encountered this issue with an old map that had some custom ubersplats(hence the imported SLK). So if you have an error in a runthrough and have custom slks, I HIGHLY recommend you try it without the slk cleaning option checked.
Credits go to Hellmonja and Chuckle Brother.
Edited by Chuckle Brother, 04 November 2006 - 09:38 AM.