Advertisement

Your thoughts on damage reduction?

Started by July 17, 2004 04:40 PM
45 comments, last by CGameProgrammer 20 years, 5 months ago
Damage reduction or really big Hit Point numbers? The combat system I'm in favor of implementing for the space game I'm working on makes use of damage reduction and hit points. Everything has both a Durability (DR) and Health or Structure (HP, basically). I chose this method because I wanted to have a sense of armor being able to stop certain types of attacks (like a rock versus a lead wall) and because I've got both characters, vehicles and starships, and didn't want two or three separate damage models or hit points spiraling up into the millions. So for example you could have a ship with Durability 100 / Structure 100. Every point of damage above 100 would transfer to structure, while points equal or below would be ignored. I have a friend who thinks this might be a bad idea because equal opponents will most likely not be able to damage each other or very quickly kill each other. Two opponents with Dur 100 / Struct 100 ships and 100 HP lasers will do no damage, while two with 150 lasers will kill each other in two shots. With standard HP, normally you can make a quick damage vs. HP calculation, and save for being able to heal, you know you'll be able to take down an opponent or be taken down yourself in X number of combat phases. Though realistic, he believes that to get to an enemy and not be able to do any damage either forces players to always implement oblique strategies (such as carrying boarding parties, EMP weapons or hull devouring nanites) or run away and get better weapons. For the player who just wants to get in and pound things (and this might be a very large percentage), this could be very frustrating. One solution to this problem is to drop DR and go with very large hit points, which could be displayed in abbreviated form, such as 10k or 5.3m. Then you could have lasers of 1 or 1000 or whatever whittling away at the hull, and you'd never have to deal with the frustration of being helpless and impotent, especially if you didn't know what the enemy was going to be like. Another is to keep DR but go with variable damage on all weapons, which doesn't exactly solve the problem, but may make it less likely for equal combats to drag on forever. The variable damage would be based on the quality of your ship's systems and the training of your crew, and represent the opportunity of getting damage increasing critical hits more often. Thoughts?
--------------------Just waiting for the mothership...
What if you could damage armor? If you've ever played Starcraft, the Protoss have energy shields, which have to be depleted before the unit takes damage.
Advertisement
Well, there are additional methods to complicate your damage reduction to make it less powerful, but still useful. For example, you can do percentage based damage reduction. Like armor may protect against 20%, 50% or 90% of damage. To limit the effectiveness of weaker armor, you can then cap total amount deducted. So a ship may protect against half damage, but only up to 100 points total.
This is an interesting question. I agree with your friend that the HP = HP - (damage - armor) approach is not a good one.

So what can be done instead? A good idea would be to damage both the armor and the HP attributes (hull and structure in your case). The formula such a thing could vary. You can of course also have different weapons that have different penetration values, and where armor as such has its own HP attribute as well as a "anti"-penetration attribute (let's call this "defense" in lack of a better word). Perhaps this defense value would be decreased by the status of the armour's HP. Thus we get something similar to:

defense = baseDefense * (armourHP / maxArmourHP)
totalPiercing = weaponPenetration / defense
if(totalPiercing > 1.0) totalPiercing = 1.0
structuralHP = structuralHP - (totalPiercing * weaponDamage)
armorHP = armourHP - ((1.0 - totalPiercing) * weaponDamage)

I'm tired now and I have not fully thought about the effect of such a system. For example it would become very hard to get rid of the last pieces of armour with a high piercing weapon; on the other hand it wouldn't matter to much since the internal structure is what you want to damage.
Quote:
Though realistic, he believes that to get to an enemy and not be able to do any damage either forces players to always implement oblique strategies (such as carrying boarding parties, EMP weapons or hull devouring nanites) or run away and get better weapons.

And this is a problem because? ;)


Quote:
For the player who just wants to get in and pound things (and this might be a very large percentage), this could be very frustrating.

As a player who's inevitably annoyed by games that force me to get in and pound things, delaying the resolution that is already obvious, I think it would be a breath of fresh air.

To soften it a little, though, I'd go with variable damage -- I think that's more realistic, anyhow. You might also consider specialized weapons that reduce durability -- or is that what the nanites do?
"Sweet, peaceful eyelash spiders! Live in love by the ocean of my eyes!" - Jennifer Diane Reitz
Quote:
Original post by Wavinator
Damage reduction or really big Hit Point numbers?

I have a friend who thinks this might be a bad idea because equal opponents will most likely not be able to damage each other or very quickly kill each other. Two opponents with Dur 100 / Struct 100 ships and 100 HP lasers will do no damage, while two with 150 lasers will kill each other in two shots.

Thoughts?


Just one thougth... To avoid no-win situations like this, just make sure every unit is capable of hurting itself.
Advertisement
Quote:
Original post by yaroslavd
What if you could damage armor? If you've ever played Starcraft, the Protoss have energy shields, which have to be depleted before the unit takes damage.


My bad, I didn't explain this very well. You have armor on each side of your ship, which has both a damage resistance and a hit point value. Then you have a single value for your ship's hull in total.

This is designed to enforce tactical manuevering where opponents try to stay on the side that's damaged, and keep their damaged side away. So armor can be worn down on a single side. If you beat the damage resistance, you do damage to the armor. When the armor's gone, you do damage to the vulnerable hull / interior itself.

You could simply have armor points and hit points, but that's not really better than one single set of hit points, and to scale damage for a gun and a 100 megawatt laser, you'll quickly get into the hundres of thousands of Hit Points in weapon damage once it comes to ships.

--------------------Just waiting for the mothership...
Quote:
Original post by Wavinator
Quote:
Original post by yaroslavd
What if you could damage armor? If you've ever played Starcraft, the Protoss have energy shields, which have to be depleted before the unit takes damage.


My bad, I didn't explain this very well. You have armor on each side of your ship, which has both a damage resistance and a hit point value. Then you have a single value for your ship's hull in total.

This is designed to enforce tactical manuevering where opponents try to stay on the side that's damaged, and keep their damaged side away. So armor can be worn down on a single side. If you beat the damage resistance, you do damage to the armor. When the armor's gone, you do damage to the vulnerable hull / interior itself.

You could simply have armor points and hit points, but that's not really better than one single set of hit points, and to scale damage for a gun and a 100 megawatt laser, you'll quickly get into the hundres of thousands of Hit Points in weapon damage once it comes to ships.


Hmmm... I don't get what's wrong with my approach. Just customize it to accomodate multiple shields.
Quote:
Original post by SiCrane
Well, there are additional methods to complicate your damage reduction to make it less powerful, but still useful. For example, you can do percentage based damage reduction. Like armor may protect against 20%, 50% or 90% of damage. To limit the effectiveness of weaker armor, you can then cap total amount deducted. So a ship may protect against half damage, but only up to 100 points total.



Hmmm... hey, this might work. But I'm a little concerned about overhead.

Let's say you're shopping, and the list reads (for a madeup example):

Duramin 20% up to 100, 20,000
HardEge 50% up to 50 45,000
KFlect 90% up to 200 75,000

Now you know that your enemy is shooting with 100 HP lasers and 300 HP missiles.

Would it be too anal to expect you to figure out from the list which is the best value? I don't want you to have to break out Excel.

With damage resistance, you'd simply have:

Duramin - Durability 100 / HP 200 20,000
HardEge - Durability 50 / HP 300 45,000
KFlect - Durability 200 / HP 100 75,000

Knowing the damage of your enemies, you'd look at the list and immediately add and subtract. (I guess it's the old tabletop rule: Never make your players multiply or divide unless the numbers are simple).

Another problem with percentages: You end up having to have really overpowered weapons to do damage.

Let's say you have armor that negates 75% of damage.

With a 100 HP weapon, that's only 25%.
With a 1000 HP weapon, that's now only 250.
etc.

This is negated by the limit that you mentioned above, so it would still work well. The player calculation at a glance issue would be my major concern.


--------------------Just waiting for the mothership...
Quote:
Original post by Unwise owl
A good idea would be to damage both the armor and the HP attributes (hull and structure in your case). The formula such a thing could vary. You can of course also have different weapons that have different penetration values, and where armor as such has its own HP attribute as well as a "anti"-penetration attribute (let's call this "defense" in lack of a better word). Perhaps this defense value would be decreased by the status of the armour's HP. Thus we get something similar to:

defense = baseDefense * (armourHP / maxArmourHP)
totalPiercing = weaponPenetration / defense
if(totalPiercing > 1.0) totalPiercing = 1.0
structuralHP = structuralHP - (totalPiercing * weaponDamage)
armorHP = armourHP - ((1.0 - totalPiercing) * weaponDamage)


This is an interesting idea because you'd always be doing damage to something, even if it's just armor HP. Basically it looks like if a weapon doesn't do piercing damage then it will always damage armor. Now this doesn't solve my HP scaling issue (handguns to ship's laser turrets), but it might not be all that bad to have numbers like 100,000 HP anyway.

I see also that the defense goes down with the health of the armor, raising the effective penetration. The only qualm I have about this is that it assumes a relatively small area where damage is being warn away, when I might be abstracting 700 meters on the side of a ship. I don't necessarily want to get into breaking up ships into smaller segments (it's about 12 facings for the largest ships), so maybe the totalPiercing could be more of a variable range to reflect that some shots are hitting damaged areas and others completely fresh areas.

One other thing is that players won't be able to perform a quick calculation as to the strength of their weapons versus the enemy's defenses, and vice versa. But that might not be so bad. They'll get into thinking, "I need a high penetration" even if they don't exactly know how high.

Thanks, this definitely is an alternative.
--------------------Just waiting for the mothership...

This topic is closed to new replies.

Advertisement