HomeWildfire Games

Reduce decay time for units to avoid lag when too many units are dead.
AuditedrP21732

Description

Reduce decay time for units to avoid lag when too many units are dead.
Make their decaying faster too so they do not stay too long under the ground for no reason.
Leave it some time still so players can still have an idea on how many dead units are there.

Details

Auditors
elexis
Committed
StanApr 16 2018, 12:22 AM
Parents
rP21731: New greek quiver by Alexandermb
Branches
Unknown
Tags
Unknown
Build Status
Buildable 5879
Build 9828: Post-Commit BuildJenkins

Event Timeline

elexis added a subscriber: elexis.Apr 16 2018, 3:56 PM

Without the patch, the corpses took 2m30s to disappear.
With the patch 45 seconds.

Having the corpses sink 15 times quicker seems a bit drastic to me however.
They sink within 10 seconds, which seems too quick.

I'd rather have slow sinking with no delay time then a long delay time with quick sinking, right?
Maybe 0 to 5 seconds delay, then sinking so that the unit is gone within 60 seconds?

Nescio added a subscriber: Nescio.Apr 16 2018, 4:13 PM

Without the patch they should disappear in 140 s, with the patch in 37 s. A delay time of 10 s with a sink rate of 0.02 should mean they're gone in 60 s; 40 s and 0.05 should give the same result; other values are possible too, of course.

elexis added a subscriber: temple.Apr 17 2018, 1:58 AM

@temple got an opinion?

How much lag was there, how much did this improve things?

Using wireframe, some units were still underground up to ten minutes, whereas with the patch it's only a minute.

  • The sinking depth is determined from the actor's bounding box and the terrain.

So if this is about performance then maybe it's better to have a long delay and a quick sink? Maybe 2 minute delay and 0.15 sink rate?

Could also fiddle with acceleration.

some units were still underground up to ten minutes

Actors below the ground seem to be a waste, especially if minutes, especially especially if it's longer than the spawn time on the gaia maps (5-7min).
One thing about a quick sinkrate I don't like is that it's noticeably to the player as long as the actor is above ground.
So acceleration sounds good indeed.
In the long run, it sounds like it were preferable to have the code decide when to take out the actor once it's under ground, rather than playing with numbers.
It'd have to consider the visual actor size and the lowest terrain place.
Or is it the blood that requires the actor to remain below ground?

Stan added a comment.Apr 17 2018, 2:37 PM

Blood being a decal is the reason why it doesn't sink.
If the units disappear as soon as they are below the ground the blood will disappear at the same time too. I'm not a fan of having blood everywhere to me it only makes sense when the actor is there.

elexis raised a concern with this commit.Apr 23 2018, 1:43 PM

To me the units sink too quickly into the ground and it should be reversed a little for the release, it should ideally not be noticeable by the player when looking at it. Nescio wanna do a patch? IMO it seems the easiest way to set 0 delay and minimize the sinktime to achieve that, no?
We might want to check if rubble sinks that quickly too.
I noticed the flaming pig and hellenic_temple have that too, but they can just inherit the default, no?

This commit now has outstanding concerns.Apr 23 2018, 1:43 PM
Nescio added a comment.EditedApr 24 2018, 11:50 AM

To me the units sink too quickly into the ground and it should be reversed a little for the release, it should ideally not be noticeable by the player when looking at it. Nescio wanna do a patch?

Personally I don't care what arbitrary numbers are chosen, nor do I have any idea how it affects performance (the rationale behind this change), but yes, I could propose a patch, if you like.

IMO it seems the easiest way to set 0 delay and minimize the sinktime to achieve that, no?
We might want to check if rubble sinks that quickly too.

Rubble has a delay of 15 s and a sink rate of 0.2, which works out at effectively 16 s; thus it disappears even quicker than the new dead unit rate.
By the way, mechanical has a delay of 0, a rate of 0, and an acceleration of 2.0; ships have a delay of 0, a rate of 0.5, and an acceleration of 7.0, so they disappear very quickly compared to units and rubble.

I noticed the flaming pig and hellenic_temple have that too, but they can just inherit the default, no?

As for the pig, I could see why a burning one would disappear quicker than a non-burning one, although I'm not sure it's important. As for the temple, I don't see why it should disappear slower than any other structure. Also, rubble_field.xml has a decay time of 60 s; I guess that's intentional?

Personally I don't care what arbitrary numbers are chosen

I don't care about numbers too, what I do care about is the human eye seeing things that it could not see in the real world (blatant sinking vs. not noticing sinking).
I wanted to upload a gif showing the sinking, so you guys see what I mean, but Im busy atm.

nor do I have any idea how it affects performance

Corpses are deleted after sinking, less polygons = more performance.
But I think noone did an actual test. I'd say deleting 300 high poly units (chariots) and watching the FPS before and after corpses would do.

Here you go: D1467

But I think noone did an actual test. I'd say deleting 300 high poly units (chariots) and watching the FPS before and after corpses would do.

Perhaps someone else should do this then.

elexis accepted this commit.Apr 25 2018, 2:54 PM
All concerns with this commit have now been addressed.Apr 25 2018, 2:54 PM
All concerns with this commit have now been addressed.Apr 25 2018, 2:54 PM