by 22alpha22 » Sun Jan 23, 2022 8:48 pm
This is probably a big ask and I don't expect it will actually make it in but just in case...
Anyway, it would be very useful if there was a HealthFactor value that could be set in the GameInfo section of MapInfo that would scale the Health of all actors by whatever value it gets set to. This could then be further modified by any other health scaling options such as those in skill info but the HealthFactor in GameInfo would set the base value. You might not think this is a big ask but wait there is a second part to this. ZDoom and by extension GZDoom makes a lot of hard-coded assumptions as to the scale actor's health values are going to fall within, for example, player pain and death sounds, blood decal generation, etc. HealthFactor would have to scale all these assumptions as well or the system would quickly break things if the scale was excessively large or small.
My own project would benefit from this immensely, I have manually scaled all health and all damage of all actors by a factor of 100. I did this in order to simulate health and damage values being a double with two decimal places rather than an integer. This gives me a lot more accuracy with damage and damage resistance calculations as I have a lot of stacking systems and being limited to integer health and damage values was leading to noticeable losses in accuracy. What I did not foresee was all the many systems that (G)ZDoom uses that assume the player and monster's health and damage are going stay somewhat close to their vanilla scale. For instance, when the player takes damage, they always use their Pain100 sound despite 100 health only being equivalent to 1% health, they always play the CrazyDeath sound unless gibbed, damage always spawns the maximum number of decals, etc. As I go along, I'm discovering more and more assumptions the engine makes about health and damage values that are broken by my scaling. So far my only recourse has been to try and disable all these features and remake them from scratch through ZScript if it is possible. It is very time consuming and frustrating, especially when I discover yet another thing that has broke and needs to be remade. I'm pretty sure redoing all these features through ZScript is not as efficient performance wise compared to them being handled natively, especially when combined with my coding skills.
I'm sure this is a huge request, as more than likely implementing a feature like this will require changes to many different systems but if it were done, it would make life much easier for me and anyone else who wants their project's health and damage to operate at a significantly different scale.
This is probably a big ask and I don't expect it will actually make it in but just in case...
Anyway, it would be very useful if there was a HealthFactor value that could be set in the GameInfo section of MapInfo that would scale the Health of all actors by whatever value it gets set to. This could then be further modified by any other health scaling options such as those in skill info but the HealthFactor in GameInfo would set the base value. You might not think this is a big ask but wait there is a second part to this. ZDoom and by extension GZDoom makes a lot of hard-coded assumptions as to the scale actor's health values are going to fall within, for example, player pain and death sounds, blood decal generation, etc. HealthFactor would have to scale all these assumptions as well or the system would quickly break things if the scale was excessively large or small.
My own project would benefit from this immensely, I have manually scaled all health and all damage of all actors by a factor of 100. I did this in order to simulate health and damage values being a double with two decimal places rather than an integer. This gives me a lot more accuracy with damage and damage resistance calculations as I have a lot of stacking systems and being limited to integer health and damage values was leading to noticeable losses in accuracy. What I did not foresee was all the many systems that (G)ZDoom uses that assume the player and monster's health and damage are going stay somewhat close to their vanilla scale. For instance, when the player takes damage, they always use their Pain100 sound despite 100 health only being equivalent to 1% health, they always play the CrazyDeath sound unless gibbed, damage always spawns the maximum number of decals, etc. As I go along, I'm discovering more and more assumptions the engine makes about health and damage values that are broken by my scaling. So far my only recourse has been to try and disable all these features and remake them from scratch through ZScript if it is possible. It is very time consuming and frustrating, especially when I discover yet another thing that has broke and needs to be remade. I'm pretty sure redoing all these features through ZScript is not as efficient performance wise compared to them being handled natively, especially when combined with my coding skills.
I'm sure this is a huge request, as more than likely implementing a feature like this will require changes to many different systems but if it were done, it would make life much easier for me and anyone else who wants their project's health and damage to operate at a significantly different scale.