Jump to content

[POLL] Corpse Removal Option


Corpse Removal Option  

41 members have voted

  1. 1. What options should be available ?

    • No option, fixed amount of corpses, can not be changed
      3
    • On / Off
      18
    • Intermediate Numbers, see picture
      19
    • No feature
      1


Recommended Posts

I'm creating this poll to discuss the inclusion of https://code.wildfiregames.com/D2936.

Preliminary results show that it can be a significant improvement even on powerful machines. It also points out that corpses might be lingering too long for some reason(That should be fixed separately in the templates)

Some team members feel like it's a good idea while others feel like we shouldn't have intermediate values of the option because it makes the game inconsistent. If a player doesn't have a powerful machine, then he should agree to disable entirely some expensive stuff. Some I'm creating this poll to gather the community feedback.

Options

image.png

  • Like 2
Link to comment
Share on other sites

First of all, thanks for working on this. I guess there will be a noticeable difference in playability for people with weaker hardware.

One thing I noticed in the video is you exclude projectiles from this "disappear early" treatment. Projectiles should have a similar impact due to the large number and are less noticeable than corpses. So have less visual impact if they disappear.

 As for the main question, I'd go with on/off. While this random (intermediate) disappearance is indeed quite odd looking that isn't the only reason. Just playing the death animation without a decaying corpse has the advantage of removing most of the gorge and I suspect there are people who would choose this option for this reason instead of performance. At least you can advertise it as such.

There could also be sort of a best of both, ie. the corpses only enter the FIFO after the death animation was played fully.

PS: the link asks me to login to phab.

Link to comment
Share on other sites

1 hour ago, Pepre said:

Like in video, just longer time before corpses disappear.

It's not a time it's amount,  e.g there will be at most five (in the example but it can up to 600)

37 minutes ago, hyperion said:

First of all, thanks for working on this. I guess there will be a noticeable difference in playability for people with weaker hardware.

Thanks for the feedback.

37 minutes ago, hyperion said:

 

One thing I noticed in the video is you exclude projectiles from this "disappear early" treatment. Projectiles should have a similar impact due to the large number and are less noticeable than corpses. So have less visual impact if they disappear.

Actually I did not include them, they are managed differently from corpses.

I suppose it shouldn't be hardcoded:

// CCmpProjectile:41
// Time (in seconds) before projectiles that stuck in the ground are destroyed
const static float PROJECTILE_DECAY_TIME = 30.f;

 

37 minutes ago, hyperion said:

 

There could also be sort of a best of both, ie. the corpses only enter the FIFO after the death animation was played fully.

PS: the link asks me to login to phab.

I suppose yeah. Not sure how to do it though.

Freagarach fixed it I think

Link to comment
Share on other sites

No wonder there isn't a mod for this as it's handled solely by the core (c++).

42 minutes ago, Stan` said:

const static float PROJECTILE_DECAY_TIME = 30.f;

Hardcoding it to 30 seconds is fine I guess, I think the switch should be either use PROJECTILE_DECAY_TIME or remove right after impact animation was played.

In the on/off case for corpses the same config value could be used here, thou I'd prefer a separate one in either case.

 

Link to comment
Share on other sites

30 minutes ago, hyperion said:

Hardcoding it to 30 seconds is fine I guess, I think the switch should be either use PROJECTILE_DECAY_TIME or remove right after impact animation was played.

In the on/off case for corpses the same config value could be used here, thou I'd prefer a separate one in either case.

Do you think there is a big impact on performance for arrows?

3 minutes ago, wowgetoffyourcellphone said:

A max number slider could be cool. I wish they would sink or something instead of just blinking out of existence though.

Well that's what they do with or without the patch when they aren't removed by force :) albeit very much slowly.

I took 5 to make it obvious but in theory it should be something like 50.

A slider is not possible because it needs round values and we don't support steps.

Link to comment
Share on other sites

This is a great feature. Having corpses is interesting from a gameplay perspective, it can give useful indirect information especially in early game. If I can only choose between "On/Off", I would probably choose "On" all the time, therefore being possibly biased toward higher values than if I can choose an intermediate values myself.

It would make more sense for me to have "Low/Normal" or "Off/Low/Normal" if I can't choose intermediate values myself.

 

On a related note, performance issues are not just a question of hardware, but also of game settings (1vs1 vs 4vs4, early game vs late game...). From a user perspective, it could be nice to make it relatively easy to switch between "low settings" and "high settings" not just for the number of corpses but for all options simultaneously. This could be helpful:

 - for new players that might not know for example that the number of corpses can affect the performance of their game ;

 - for ValihrAnt who seems to change graphic settings every time he is casting ;

 - for me (and maybe others), who don't like adjusting their settings to the variations in fps if the game is not paused and therefore ends up having their game in low settings by default

Link to comment
Share on other sites

1 minute ago, Dragonoar said:

Is this the reason why combat demo lags so much, even after the corpses have completely "sunk"?

Because they're actually still there? Forgive me I do not understand how it works on a technical level.

There are at least three things involved here.

Pathfinding is the biggest

Then there is rendering (lots of fancy meshes)

Then there is the fact that until the blood disappears the units are still there below the ground.

  • Thanks 2
Link to comment
Share on other sites

2 hours ago, Stan` said:
3 hours ago, hyperion said:

Hardcoding it to 30 seconds is fine I guess, I think the switch should be either use PROJECTILE_DECAY_TIME or remove right after impact animation was played.

In the on/off case for corpses the same config value could be used here, thou I'd prefer a separate one in either case.

Do you think there is a big impact on performance for arrows?

I estimate the gain would be of about the same order as for corpses. Less complex meshes but much higher number.

Edit: Also less controversial, so less of a headache to get through a review ;)

 

1 hour ago, faction02 said:

Having corpses is interesting from a gameplay perspective, it can give useful indirect information especially in early game

While true, unreliable and rather insignificant. I guess you could ask @nani to add support for a toggle graphics setting hotkey to autociv. So you have the normal/expected decay times during early game and can easily switch to low quality settings once the game starts lagging.

Edited by hyperion
Link to comment
Share on other sites

  First of all huge thank you @Stan` for working on this.  Ideal situation would be that we would have switches for on/off on Blood, corpses, all kinds of projectiles with additional possibility to specify amount either by slider with steps or field for specifying amount.  I believe that performance wise blood/gore , corpses, could also be projectiles are performance heavy especially there is a lot of them. The other things witch are performance heavy in renderer is  when you are viewing bodies of water or packs of trees as compered to wasteland or some other low forest, water type thing.

  • Thanks 1
Link to comment
Share on other sites

10 hours ago, Stan` said:

while others feel like we shouldn't have intermediate values of the option because it makes the game inconsistent

I see the creation of a mod here (for example "wildfiregames") - a director's vision. Options that override all custom options.

As soon as the user disables this mod (activated by default for new users), all customizations in the game are opened for him.

The mod will only contain hardcoded configuration values - the game will be fully functional without it.

This will close a lot of discussions about what is the author's vision and what is the function of the engine.

For example, I have the option view.rotate.x.max = "90". From the point of view of the engine, this is the correct decision by default, from the point of view of game-design, it is wrong. So in the engine it will be possible to make 90, and in the mod "wildfiregames" - 60 (0ad is not a 2D game)

Link to comment
Share on other sites

5 hours ago, Stan` said:

There are at least three things involved here.

Pathfinding is the biggest

Then there is rendering (lots of fancy meshes)

Then there is the fact that until the blood disappears the units are still there below the ground.

Wont completely agree with that. The pathfinder can have a big performance impact to the game, but the renderer is bigger.

Late game often lags because people were spamming units (which leads to a growing of corpses). Also especially the AI is building that many houses which has also a huge impact to the renderer.

Another problem is, that a big area outside the field of view is rendered. Many of the corpses are inside this area.

Link to comment
Share on other sites

In the picture you can see the renderer performance profiling for this feature. The graphs are showing the frametime. Lower frametime means higher fps. Btw. sorry for the offset on the x-axis. The red graph representatives the current vanilla version. The green shows the limitation to max 100 corpes, while the blue is showing the limitation to 50 corpses.

As you see the start doesn't differ that much. At this time nearly 500 units starts fighting. In the following more and more units die and corpses are generated. As you see, the blue and green graphs are falling, because the amount of corpses are bigger now than 50/100, so they get removed. In parallel the amount of fighting units decreases, which leads to a lower workload. In the red graph, no corpse is removed, the workload doesn't decrease.

renderer.PNG

For my personal experience I can tell, that a limitation of 100 is a good compromise, as you wont notice the removal of the corpses that much.

  • Like 2
Link to comment
Share on other sites

11 minutes ago, thankforpieOfficial said:

the corpse should kinda fade away not just dissapear like that within one frame completely

aaand as someone said, corpse should dissapear like in video but after some time, like minute or so

You realise that's what they do right now, right ?just more than a minute

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...