• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

Map Loading Time

Status
Not open for further replies.
Level 16
Joined
Jul 31, 2012
Messages
2,217
ok guys... i need to know all the things that are possible to do to lower as much as possible the loading time of my map, the thing is that it takes about 2 mins to load (or more i don't knoww) when it should go for a max of 30 seconds (what i want) now the only place in the load that takes time is at the 1/4 of it it takes 1 sec to arrive to this point 2 mins at this point and 2 secs from this point till the end :ogre_rage:
 
Level 6
Joined
Nov 24, 2012
Messages
218
Widgetizer is known for reducing map loading time significantly.
A 2 minute map widgetized should load in under 1.5 minutes maybe even better.
The main reason to your long loading time is definitely 100-300 level abilities.
Your map should decrease loading time a lot since the main culprit lies in your object editor which widgetizer turns into .slk files.
If you want to optimize your map then you would apply widgetizer first then optimize it.
There are some tools out there that do both optimize and widgetize better all-in-one but I forget.
 
Level 6
Joined
Nov 24, 2012
Messages
218
Anything preplaced (preloaded) in your map, in the World Editor (Units ,Structures, Doodads, Destructibles, Upgrades) increases load time, but not by much by themself.

Map Initialization triggers increase load time as well. Depends how much stuff you got there, usually it doesn't increase the loading by that much. Triggers/systems in the map header too.

Object Editor data too, if you have too many custom stuff, it will increase load time.

Playable map size also determines load time.

I would say the main cause to your 1.5 minutes is the 100-300 levels of abilities.
If you have heroes in your map preplaced in the world editor, it will preload all of those abilities during loading screen.

You could use triggers to spawn the heroes later in the game (not during map init).
This would decrease loading time but for each hero spawned, the game will freeze for a few seconds (only when a hero enters game for the very first time), thanks to your 300 levels of abilities that it has to load up.

I have a map with heroes that have 20 levels for each ability and I don't preload anything so map loads in 20 seconds. However once the heroes enter the map for the very first time, the game freezes for all players for 1 second because it had to load all of those ability levels. Nothing too big, Dota freezes for a second when players pick heroes too. I'm not sure how long the freeze would be with 300 ability levels though.
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
-.- i wrote the msg and it bugged, didn't send so i will shorten..
No heroes preplaced only structures and doodads and destructibles
The object editor one is the most huge i think, the abilities take more than all the other sections united to load in world editor
 
Level 6
Joined
Nov 24, 2012
Messages
218
I just tested on a blank map what happens if I created a few abilities with 300 levels in object editor. They are not used or anything. Started test map, loading time was longer than I expected. Roughly 10 seconds. Without any abilities then it takes 1 second.

You might want to scale down the abilities max level.
Surely a Dota/AoS type map doesn't need 100-300 level abilities I think?
 
Level 30
Joined
Nov 29, 2012
Messages
6,637
Optimize your map with Vexorian, Lower the size of the possible imported resources in your map, make your triggers as simple as it can be like it can be shorten and mostly dont use that much imports that has big and humongous size.
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
For the imports, i'm not gonna reduce them very much in this version but in the next 2 versions since i will remove all the elemental. Beings, (they use half the map size because 5/6 of them are imported models
And i'll see what i can do for the levels
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
hmm i have 30+ abilities with lvl 100 as max and i preload them at 0.00 and i never notice any lag. Also with save and load time it is still under 30 seconds. (WE save and load)

Does it really add that much time lol ?
Yes, it really does. I've tested this many times in the past and it increases the loading time by an enormous amount (it can easily double your loading time if you're not careful).
So don't do that. Abilities should have 50 or fewer levels (no reason for anything higher than that).
I try to keep repeating myself when it comes to things like this.
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
Yes, it really does. I've tested this many times in the past and it increases the loading time by an enormous amount (it can easily double your loading time if you're not careful).
So don't do that. Abilities should have 50 or fewer levels (no reason for anything higher than that).
I try to keep repeating myself when it comes to things like this.

:eekani: , that may be the reason why my load time really increased those recent days because i added about 4 abilities with 100-300 levels
I'll manage them as possible
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
How bout split the apart and trigger them when they reach certain level 40/50 per ability, so when they reach the respective level, the ability replaced and set to a new one, dunno if this also takes tons of load time tho...
That also takes a ton of load time.
It's not that a level 50+ ability suddenly adds a lot of loading time, it's that each level requires something ( --> many levels require a lot).
One way to look at it, is to imagine that each ability level is a separate ability (so 1 ability with 100 levels can be interpreted as 100 abilities).
I pick 50 because it seems to be some borderline-number: you don't ever need more levels for an ability than that.

If it is for something like increasing attributes/armor/damage: use a system that stacks certain abilities with binary values.
The higher your stats get, the more efficient the system will be.
(Example: a 300-level agility bonus that gives +3 each level. The system would only require 10 abilities, that's 290 less).

With "a system that stacks certain abilities with binary values", I mean a few abilities that look like this:
+01 Damage
+02 Damage
+04 Damage
+08 Damage
+16 Damage

The values are binary digits.
The abilities stack (if you need +28 damage, you can add +16 Dmg, +8 Dmg and +4 Dmg and it will stick to +28).

For low values, it's not very efficient (+0 to +15 needs 4 abilities, better than 15 abilities, but not by that much).
For high values, it's extremely efficient (+0 to +1 million needs 19 abilities, which is literally more than a million less abilities).

Systems like this already exist:
Bonus Mod (by Earth-Fury).
GUI-version (by myself).
 
Level 26
Joined
Aug 18, 2009
Messages
4,097
It doesn't specificly but for hidden abilities like bonus damage, it is usefull

You do not need 300 levels for a bonus from 1 to 300. As ap0calpyse said, you can stack bonuses and effectively use powers of 2.

300=256+32+8+4

Not specifically the level count of an ability increases the loading time but each modification you do in object editor, each magenta-colored field, which of course you can have more of if the ability possesses more levels. The Widgetizer cannot convert data beyond level 4 since the slk/standard object data format of wc3 does not provide/recognize fields for them. That is a reason why it might be better to split up different levels into different ability objects.
 
Status
Not open for further replies.
Top