• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Reducing Dot Particles & Particle Emitters on large scale

Level 5
Joined
Mar 24, 2023
Messages
49
So we work on a v large map , 16 players all 200 -250 food cap, unit food cost averagely about 1-2. Most units have abilities and the map is spellcaster heavy. Our issue is during large fights the FPS drops so low it can be unplayable, as a fix to this i wish to lower the particles on spell animations and missile animations by half (if not more). my issue is that there's 100s of custom spells in the map. Is there a way i can change this in bulk? or would i really need 2 open something like Retaras Model Studio, open each spell one by one , lower the particles, save it and reupload it into the map? ...please tell me this isnt the case xD
 
First off, I think that's the case.

That's very many units. I think you'll have the pathfinding stutter with that unit-count per player.
Also: I'd first explore if the triggers for the spells are performant rather than go through all of the particle optimization and find out that it barley effects FPS at all... Bad triggers sure can cause FPS-drops (also good triggers used in cases with tons of units).
 
Level 5
Joined
Mar 24, 2023
Messages
49
The pathing engine seems to cope with the stress fairly well (i play other maps such as Broken Alliances that suffer badly from stutter but still have decent FPS in large fights). in regards to triggers the map written entirely in CSharp, the spell systems are pretty efficient i believe as luckily we had a pretty amazing coder on board who minimised inefficiencies. But maps like Broken Alliances with similar unit counts and players do not seem to have many spell animations and missile animations going on at any one time like we do so i thought this was the most likely reason
 
Level 25
Joined
Sep 26, 2009
Messages
2,378
There could be other issues like unit/doodad models that are way too detailed and too many are placed together so all of them appear on screen. Then also things like spells using dummies inefficiently (for example instead of 1 dummy spamming multiple fireballs at once, you create 1 dummy per fireball).
I also know that in older versions of wc3 there was no way to modify special effects (like yaw, pitch, height, etc.) so a lot of people used dummy units for that as well (for example to attach special effect on unit with no model and moving the unit to imitate projectile) - that creates a lot of overhead.

As for special effects - those are also candidates for fps issues. One thing to consider may be this: If you are trying to create for example some huge explosion by placing various small explosion effects around the area, then you may want to just create a single custom effect which visually completely fits what you want and check if a single (but more expensive) effect will perform better than gazillion smaller, less expensive effects
 
open something like Retaras Model Studio, open each spell one by one , lower the particles, save it and reupload it into the map?
Reteras Model Studio is open source and so it's possible to compile a program against it as though it were a function library rather than a GUI.

I have done this on many occasions over the years, and then the pseudocode for what can be done is like

Code:
for each file in folder:
    if file ends with ".mdx":
        load file
        for each emitter in file:
            set emitter's EmissionRate property = prevoius value divided by 2
        save file in place

then you just push "go" and the computer takes a couple of seconds doing it or something

The hard part is probably getting someone other than myself set up with that kind of configuration, to compile against it as if it were a function library
 
Top