2025-08-12 04:11 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0003901Spring engineGeneralpublic2013-08-22 12:43
Reporterraaar 
Assigned ToKloot 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionno change required 
Product Version94.1.1+git 
Target VersionFixed in Version 
Summary0003901: shielded units generate too many particles
Description- having units with shields raises the number of simultaneous particles significantly, even if they aren't visible

Steps To Reproduce- just spawn any shielded unit (that uses Spring engine shields)

Additional Information- the increase in particles doesn't seem to change with shield radius, only with the number of shields in game

- on the attached screenshot, about 10 shielded units have been spawned for the current player on a test game (they are idling and nothing else is happening)

- the baseline number of particles is about 300-400

- if i spawn 10 more shielded units, the number of particles outside the "( )" is also raised by about 300
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0011100

raaar (reporter)

the problem persists even if the units are spawned for an enemy team far away in the map, or if the shield is set to invisible (VisibleShield=0;).

~0011183

jK (developer)

and?
where is the problem?

~0011199

raaar (reporter)

having a high amount of active particles prevents CEG from being displayed (weapon flares, explosions, etc.)

it may be irrelevant for games where only half a dozen big shields are expected to be simultaneously active, but it is relevant for games where armies with dozens of shielded units are expected.

- the amount of particles shouldn't increase so much for small shields
- it shouldn't increase at all for invisible shields

~0011207

jK (developer)

| having a high amount of active particles prevents CEG from being displayed (weapon flares, explosions, etc.)
weapon projectiles are still shown, only secondary effects aren't

| the amount of particles shouldn't increase so much for small shields
how do you know without knowing the engine internals?

| it shouldn't increase at all for invisible shields
Again how do you know without knowing the engine internals?

So some facts:
1. shield projectiles are the by far _most_ expensive projectiles and so they _must_ count more than others to prevent lag
2. shields are divided into multiple projectiles for _performance_ reasons (so it is the opposite from what you think)

So please stop always directly claiming something being a bug w/o further knowledge!

~0011226

raaar (reporter)

in my mod, i'm using the engine shields as unit-only shields that absorb damage (like the protoss in starcraft). Default collision handling is disabled (the interception attributes mismatch on purpose between shields and weapons).

I have a lua gadget to handle shields:
- swaps the shield owner's projectile colision volume with the one from its shield radius or vice versa depending on shield status
- redirects dmg to the unit to its shield (including aoe)

but still use stuff from the engine shields:
- visuals
- definitions : radius, regen, cost, etc.


It seems reasonable to expect that shields with collision disabled and visual effect disabled should not have such a particle cost. Maybe a special shieldInterceptType=0 value could be used to prevent it from being so expensive?

is the particle expensiveness due to the visual effect or collision handling? (unit<->projectile collision handling seems to have no such cost)

~0011227

Google_Frog (reporter)

Ah so do you really just want the ability to create completely invisible shields for the purpose of saving on particles?

~0011228

jK (developer)

| but still use stuff from the engine shields:
| - visuals

is contrary to what you said below:

| It seems reasonable to expect that shields with collision disabled and visual effect disabled should not have such a particle cost.

~0011230

Google_Frog (reporter)

Hang on, if you've disabled collision and visual effect then why are you using a shield?

~0011234

raaar (reporter)

I do use the visual effect on shields. What i was trying to say is that i also tested disabling the visual effect to see if the particle expensiveness would go away : it didn't...

I disabled the collision with shield because otherwise it would be harder to make the shield gadget correctly assign the AOE dmg done to the unit to its shield (ShieldPreDamaged doesn't seem to let me prevent the shield from taking dmg, so if i let the shot collide, it'd take up to 2x dmg depending on AOE and shield radius).

I'd use the engine shields without any lua hacks if i could...but as they fail to absorb AOE dmg i had to resort to a lua gadget.

~0011356

Kloot (developer)

"ShieldPreDamaged doesn't seem to let me prevent the shield from taking dmg"

Return true from it...?

In addition to what jk said it would be also more inefficient to remove and re-add the shield particles when a shield becomes invisible and then visible again and this is the reason the particle count does not drop.

If you really want "particle-free" shields you must set VisibleShield=0 AND visibleShieldHitFrames=0.
+Notes

-Issue History
Date Modified Username Field Change
2013-07-28 12:22 raaar New Issue
2013-07-28 12:22 raaar File Added: shield_particles_bug2.jpg
2013-07-28 15:40 raaar Note Added: 0011100
2013-08-05 05:44 jK Note Added: 0011183
2013-08-06 05:02 raaar Note Added: 0011199
2013-08-06 08:29 jK Note Added: 0011207
2013-08-07 03:52 raaar Note Added: 0011226
2013-08-07 12:09 Google_Frog Note Added: 0011227
2013-08-07 12:21 jK Note Added: 0011228
2013-08-07 13:58 Google_Frog Note Added: 0011230
2013-08-08 00:33 raaar Note Added: 0011234
2013-08-22 12:43 Kloot Note Added: 0011356
2013-08-22 12:43 Kloot Status new => closed
2013-08-22 12:43 Kloot Assigned To => Kloot
2013-08-22 12:43 Kloot Resolution open => no change required
+Issue History