Author Topic: Ye Ol' Armor Debate  (Read 31779 times)

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Ye Ol' Armor Debate
« Reply #45 on: July 12, 2012, 04:04:05 pm »
I'm not totally convinced the current situation is a binary state.  In a lot of cases, yes, but there's a lot of middling armor values out there that are less than 80% but more than (for example) 30% of the damage-per-shot of a lot of other units (that don't have piercing or have very low values of it).
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Diazo

  • Master Member Mark II
  • *****
  • Posts: 1,717
  • I love/hate Diff 10
Re: Ye Ol' Armor Debate
« Reply #46 on: July 12, 2012, 04:15:46 pm »
I'm not totally convinced the current situation is a binary state.  In a lot of cases, yes, but there's a lot of middling armor values out there that are less than 80% but more than (for example) 30% of the damage-per-shot of a lot of other units (that don't have piercing or have very low values of it).

And this is what the armor system should be doing in my opinion.

I don't like ships that are either a) Armor so high they will always take 80% reduced damage, and b) Armor-Piercing so high they are never affected by armor.

The Fighter and Bomber are good examples of what I'd like to see. The bomber has a decent amount of armor and the fighter was given a bit of armor-piercing to counter as it is the counter to bombers. But we are only talking 30% or so damage reduction here and the bombers armor is still low enough that other units without armor piercing are still no where near the 80% damage reduction cap.

At this point I think I won't post again until I get home and take a look at the data files and actually look at the numbers. I'm not convinced anything needs changing here at the moment.

D.

Offline TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,570
Re: Ye Ol' Armor Debate
« Reply #47 on: July 12, 2012, 04:21:54 pm »
I don't have a direct problem with that setup Tech, but one concern with such a system is no one wants to multiply out two values in play (and three would be right out).  The armor value system gets around this by being a relatively minor factor, a simple percent, which people are good at groking.  If I could get x6 armor Hull and x3 from armor, that's x18 which is a huge swing in damage.  So I think enumerated Armor types would need to end up translating to simple percents (20% reduction, 40% reduction, etc) that are cancelled by the attacker's Armor Piercing.  Think how AP works in Warhammer 40K (basically, Armor Piercing is all or nothing).

That would work too. Actually, having armor being enumerated, but the boost/reduction depends on the ship recieving the shot rather than the ship shooting it would work well, while still keeping the system simple.

Okay. I have apparently lost everyone and seem to be on an entirely different bookself, not just on a different page then everyone else.

So, in my opinion here is what I see as being broken with armor and what I am trying to fix.

First, right now there is a single armor mechanic in the game, 'Numerical Armor' that many ships have reasonably low values of, usually to give them a bit more survival for balance purposes.

This is countered by the ability armor-piercing usually given to fighter/interceptor types.

The first problem is that the 'Armored/Armor-Piercing' mechanic that was added by giving ships crazy high armor and armor-piercing that turned armor into a binary Yes/No if a ship is armored. All of a sudden ships with lower armor and armor piercing might as well not have had it because there are these ships with 500,000 armor and 500,000 armor piercing flying around, 300 armor is effectively the same as 0 armor now.

My issue with this is I like the numerical armor system as it stands, it gives a fine degree of control over how survivable ships are without making changes to their health or to the attack multipliers of ships attacking them and allows the slower RoF, higher damage bombers to fulfill their role of bombers rather then be just another ship.

It's just the ships with crazy-high armor and armor-piercing break the system so I am trying to separate the two which is where I started getting into Hull Types and all that and then into making Armored an ability.

Look at the Armor Ship, 1,500 armor at Mk. I. That more like what I want to see as a numerical armor value, not the Armored Golems 500,000 armor, that should be a binary flag of some sort. (or ship abilities or etc.)

Thinking on it, I guess it could work, define a "Armored" ship as 500,000 armor and all "Armor-Piercing" ships get 500,000 armor piercing. Then because those values stay static as the binary flags the ships with lower armor and armor-piercing can then be balanced as numerical values.

So something like an Armored Golem has 500,000 armor because it is "Armored" and then maybe an additional 5000 armor because of it's size. Where-as the Armor Ship would just get 500,000 armor for being "Armored" but nothing more then that because it is a fleet ship.

And ships that are "Armor-Piercing" would get 500,000 armor piercing ability to counter them. So attacking the Golem above would still have 5000 effective armor and the Armor Ship would have 0 effective armor.

This allows the armor and armor-piercing relationship of other ships such as the fighter and bomber to still have meaning without moving them into the "Armored" and "Armor-Piercing" binary flags.

The alternative is to get rid of crazy high armor to get rid of the binary "Armored" state. Give something like the Armored Golem high but not crazy-high armor and make sure no ships in the game have crazy-high armor piercing so numerical armor is not simply ignored like it is at the moment. (Giving health boosts in return if needed for balancing purposes.)

Bottom line, numerical values should not be used to define binary states, if you are doing so it can be re-worked to work better.

(That raises the question of if it is good enough as is, but we are throwing ideas out here.)


The other issue I have with armor is Mark levels. The same type of ship should not get a 40% difference in damage for a difference of a single mark level.

I'm not sure what to do about this one. I like the numerical armor system and would rather not see the LoL formula that was being thrown around earlier implemented. The fact that the armor system is in straight numbers is its big advantage to me, which is also why I don't want to see something percentage based implemented.

Having said that, is this an issue that needs changing? A Mk II ship is supposed to be worth roughly 2 Mk I ships after all.


Hmmm.

The more I look at this and actually reference numbers from the Wiki, the more I am starting to ask myself 'does this actually need changing?'.

The way I envision armor working is it is background number you can pay attention to if you want to but it's major purpose is for balancing to give the developers finer control over how survivable a ship is, it is not something I think players should be looking at as a primary stat.

I'm actually starting to think the current system actually works pretty good, there are just a few outliers, such as the raid starship or armored golem that need tweaking.

Let's back off a minute here, in your opinion what is actually broken about the current armor system that needs fixing?

D.

Agreed. My suggestion above was about if the armor system were to be refactored. However, I think that a rebalancing under the current system is probably a better course of action.


Some of the things that are making armor feel "binary":
1. 20% mininimum damage due to armor. That is too high, and it means that increases in armor can very quickly stop starting to matter (thus giving that "binary" feel) 5% (what it was originally) turned out to be too low, so maybe something like 10% or so?
2. Too many ships with high armor rating and armor piercing values. Not that these sort of ships shouldn't exist, but rather, they should not be as common as they are now. Things like 500,000 armor or armor piercing should be reserved for superweapon class stuff, like golems, or maybe not even them, but only the true super-superweapon stuff (like the avenger or something) (exception, units that have an alternate damage computation, where damage reduction from armor would mess with it. Those should have a basically 999,999 armor piercing)
3. Disparity between armor and average damage. IIRC, the calculations of average armor and average damage (excluding self-destructing ships) from the last discussion showed that armor was around 1.2 orders of magnitude below weapon damage. This is why low armor values seem to do nothing, because average armor values are actually low armor values compared to the expected amount of damage one can take. Boosting up the average armor (maybe to, idk, on average .5 orders of magnitude below average weapon damage?) should help make armor seem more significant.


Your observation that armor shouldn't go up with Mk. is a good one. Thanks to how the formulas work, the effective armor of a group of ships is the average of all the armors, unlike HP where the effective HP would be the sum of all the HPs. This would imply that the armor of 2 ships of Mk. I would be the armor of one of those ships, which would imply that Mk. II (which is balanced like 2 Mk. I ships) would also have an armor of a single Mk. I ship.

I don't think that units with a ultra-high armor rating need to have a different flag reserved for that. After all, ships with infinite range are denoted with 999,999,999 (or something) range (which strikes me as odd, why not display Inf for range like with ship cap?), and even ships with an effectively but technically not infinite range (like cursed golems with their, what was it, 200,000,000 range) don't cheapen that "middlin'" ranges. Same with armor piercing. I think that is because the number of mobile ship types with that sort of range is severely restricted, while there are many mobile ships out there with that 100,000+ armor rating. Having a ludicrously large armor or armor piercing value (again, with the exception of ships with special damage computations) should be something very special, just like ludicrously high ranges are.

Offline Hearteater

  • Core Member
  • *****
  • Posts: 2,334
Re: Ye Ol' Armor Debate
« Reply #48 on: July 12, 2012, 04:43:15 pm »
I'm not totally convinced the current situation is a binary state.  In a lot of cases, yes, but there's a lot of middling armor values out there that are less than 80% but more than (for example) 30% of the damage-per-shot of a lot of other units (that don't have piercing or have very low values of it).
Take into account ships firing on different Marks and hull type multipliers applying before armor reduction and it does really break though.

Here is a Fighter attacking an Armored Ship:
Code: [Select]
1 2 3 4 5
1 68.75% 20.00% 20.00% 20.00% 20.00%
2 100.00% 68.75% 37.50% 20.00% 20.00%
3 100.00% 89.58% 68.75% 47.92% 27.08%
4 100.00% 100.00% 84.38% 68.75% 53.13%
5 100.00% 100.00% 93.75% 81.25% 68.75%
Notice that of the 25 possible damage percent, 11 (almost half) are capped at either min or max.  93.75% is just about 100%.  27.08% isn't all that impressively better than 20%.  Sure, Mark on Mark is ok.  And that's a case with no hull multiplier.  At present, any positive hull multiplier should read "and ignore that unit's armor".



Offline TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,570
Re: Ye Ol' Armor Debate
« Reply #49 on: July 12, 2012, 04:55:07 pm »
I'm not totally convinced the current situation is a binary state.  In a lot of cases, yes, but there's a lot of middling armor values out there that are less than 80% but more than (for example) 30% of the damage-per-shot of a lot of other units (that don't have piercing or have very low values of it).
Take into account ships firing on different Marks and hull type multipliers applying before armor reduction and it does really break though.

Here is a Fighter attacking an Armored Ship:
Code: [Select]
1 2 3 4 5
1 68.75% 20.00% 20.00% 20.00% 20.00%
2 100.00% 68.75% 37.50% 20.00% 20.00%
3 100.00% 89.58% 68.75% 47.92% 27.08%
4 100.00% 100.00% 84.38% 68.75% 53.13%
5 100.00% 100.00% 93.75% 81.25% 68.75%
Notice that of the 25 possible damage percent, 11 (almost half) are capped at either min or max.  93.75% is just about 100%.  27.08% isn't all that impressively better than 20%.  Sure, Mark on Mark is ok.  And that's a case with no hull multiplier.  At present, any positive hull multiplier should read "and ignore that unit's armor".

With effective_armor = armor - armor_piercing - rotted_armor
Hmm, with armor applied before the multiplier, you have mult * (base_damage - effective_armor) = mult * base_damage - mult * effective_armor.
While with armor applied after the multiplier (which is the current system IIRC), you have (mult * base_damage) - effective_armor.
*

Notice that under the current system, armor is trivialized as the multipliers go up, while with the orders reversed, armor (and armor piercing) becomes remains relevant even as multipliers go up. As shown above, this factor is large enough to make a difference, in fact, right now the effect is large enough to trivialize armor in the face of hull bonuses.
I'd be in support of "reversing" the order of "modifier application". A minor change that could lead to armor becoming much more important.

Heck, if you wanted, you could compromise, something like (mult * (base_damage - effective_armor))/2 + ((mult * base_damage) - effective_armor)/2, so that the armor does protect you some, but not fully from hull multipliers.

*For the sake of simplicity, floors and caps have been omitted
« Last Edit: July 12, 2012, 05:01:00 pm by TechSY730 »

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Ye Ol' Armor Debate
« Reply #50 on: July 12, 2012, 04:59:17 pm »
I'm not totally convinced the current situation is a binary state.  In a lot of cases, yes, but there's a lot of middling armor values out there that are less than 80% but more than (for example) 30% of the damage-per-shot of a lot of other units (that don't have piercing or have very low values of it).
Take into account ships firing on different Marks and hull type multipliers applying before armor reduction and it does really break though.

Here is a Fighter attacking an Armored Ship:
Code: [Select]
1 2 3 4 5
1 68.75% 20.00% 20.00% 20.00% 20.00%
2 100.00% 68.75% 37.50% 20.00% 20.00%
3 100.00% 89.58% 68.75% 47.92% 27.08%
4 100.00% 100.00% 84.38% 68.75% 53.13%
5 100.00% 100.00% 93.75% 81.25% 68.75%
Notice that of the 25 possible damage percent, 11 (almost half) are capped at either min or max.  93.75% is just about 100%.  27.08% isn't all that impressively better than 20%.  Sure, Mark on Mark is ok.  And that's a case with no hull multiplier.  At present, any positive hull multiplier should read "and ignore that unit's armor".
I think this would be easier to handle under a percentage-reduction system (multiplying by (1000 / (1000 + Ar - ArPen)) and (as has been suggested) having Ar and ArPen not scale up with mark.  Possibly going back to the old 5% damage floor but probably it wouldn't be reached in normal situations. 

This would mean having to look at basically every single ship's armor value and definitely reining in the 100,000 armor stuff, but that's basically going to have to happen in any solution... though in some solutions there wouldn't be an armor value left. I'm inclined to try to keep it for now, and try something more drastic if that doesn't work out.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Hearteater

  • Core Member
  • *****
  • Posts: 2,334
Re: Ye Ol' Armor Debate
« Reply #51 on: July 12, 2012, 05:01:27 pm »
I support a reverse of the operators.  So I guess I'd say I like Keith's option #1 (WC3/LoL "diminishing returns" armor) with reduced effectiveness multiplier for larger attacks, subtractive armor piercing, hull damage multipliers applied after armor reduces damage, and no scaling by mark of any of this.

Offline Varone

  • Jr. Member Mark III
  • **
  • Posts: 96
Re: Ye Ol' Armor Debate
« Reply #52 on: July 12, 2012, 05:27:05 pm »
Let me wade in here,

I'm thinking that armour is a value just like HP.
It has the hull-type armour and nothing has a bonus vs armor EXCEPT armour piercing units. *

Once the armour has gone then the other hull-type of the ship is used.

So if something has a polycrystal hull and 500,000 armour then units that have a bonus vs polycrystal must destroy the armour before their bonus comes into effect.

I think that would make sense because some units are designed to attack certain hull types so have low damage but high multipliers, would make sense that they have problems getting through highly armoured units, however we have units who just do massive damage that would plow through armour and hull alike and finally we would have units that can pierce armour which * we could choose from a number of mechanics such as bypassing armour completley and they damage hull directly or do more damage to the armour of the ship.

Offline Hearteater

  • Core Member
  • *****
  • Posts: 2,334
Re: Ye Ol' Armor Debate
« Reply #53 on: July 12, 2012, 08:13:09 pm »
I support a reverse of the operators.  So I guess I'd say I like Keith's option #1 (WC3/LoL "diminishing returns" armor) with reduced effectiveness multiplier for larger attacks, subtractive armor piercing, hull damage multipliers applied after armor reduces damage, and no scaling by mark of any of this.
Oops, order of operations doesn't matter because the armor would be a percantage multiplier to damage.

Offline Mánagarmr

  • Core Member Mark V
  • *****
  • Posts: 4,272
  • if (isInRange(target)) { kill(target); }
Re: Ye Ol' Armor Debate
« Reply #54 on: July 13, 2012, 07:39:14 am »
All the maths in this thread is making my head burst.
Click here to get started with Mantis for Suggestions and Bug Reports.

Thank you for contributing to making the game better!

Offline TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,570
Re: Ye Ol' Armor Debate
« Reply #55 on: July 13, 2012, 09:11:12 am »
All the maths in this thread is making my head burst.

If you want, I can start throwing some calculus into the mix for even more sophisticated mathematical analysis.  ;D

Offline Diazo

  • Master Member Mark II
  • *****
  • Posts: 1,717
  • I love/hate Diff 10
Re: Ye Ol' Armor Debate
« Reply #56 on: July 13, 2012, 10:17:43 am »
Okay.

I actually took a look at the data files and the only 'common' unit with more then 10k armor is the Raid Starship at 90k armor.

Ignoring the stuff that can't be damaged anyway (Neinzul Rocketry Silo has 200 million armor, wtf?) it is Hardened Force Fields at 500,000, Armored Golem at 100,000, Raid Starships at 90,000 (all marks) and Spirecraft Siege Towers at 12,000 to 60,000 armor depending on Mark level.

Everything else is under 10,000 armor with the average looking to be between 4,000 and 6,000 armor somewhere.

Having said that and with a night to think on it, I don't think armor can stay as the straight numerical system it currently is.

My reasoning for this is because the Mark levels are multiples of the Mark I ship and not smaller, incremental upgrades. This would be fine if the intention was for Mark II to make Mark I useless but in AI War you are still supposed to use the Mark Is all the way through the game as your ship cap is limited like it is.

However, because of the fact that upgrades are Multiples the numerical armor system also gets multiplied, and that is where things break down because it means armor (when not high enough to be the binary "armored" flag) is only useful against its own mark level.

When a lower level ship is firing at it, the armor is a larger magnitude and will probably cap the damage at 20% while with a higher level mark firing the damage is a larger magnitude and the armor will probably not do anything useful.

Which means to actually fix armor we have to go to a percentage system of some sort and it seems the LoL system of Dmg * 1000 / (1000 + Armor) looks like it works to people in the thread and I have to agree. (I know LoL uses 100, not 1000, but AI War uses bigger numbers.)

Which I would be okay with on one condition. One of the biggest things I liked about the numerical armor system is the fact that the doubling of armor made a single Mk II worth more then two Mk Is because it would survive longer due to its higher armor. To kind of mimic this what I would like to see is a baseline where every unit got 25*Mk Armor and 25*Mk Armor Piercing. That way at equal marks it would cancel out but differing mark levels would give a small advantage to the side with the higher mark level without the crazy 'lose 40% of your damage' differing mark levels can currently cause.

So something like a bomber which would get 200 base armor would have 225, 250, 275, 300, 325 armor at Mk I/II/III/IV/V.

I like the idea of a Mark upgrade being more then just doubling of numbers and this would give higher marks a little extra edge.


Now, I play a tank in LoL so I've actually looked quite closely at that calculation and there is one thing that Keith/Chris need to know if it ever gets implemented: ignore the % armor increase and look at time to live.

(It's quite possible you know this already but it could break the system if you don't so I'm going to make sure.)

Despite the fact that the percentage increase per unit of armor goes down as you add more armor value, armor does not suffer from diminishing returns.

Going from 5000 to 6000 armor is a 20% armor increase. Going from 1 to 1000 armor is a 1000% armor increase. However both increase the time to live of the unit by the same amount of time.

True, it is more useful to make a unit that would last 5 seconds last 10 seconds (1 to 1000 armor) then it is to make a unit that would last 25 seconds last 30 seconds (5000 to 6000 armor) but that 1000 armor increase makes the unit last 5 seconds longer in both cases.

Hmmm, throwing numbers around, it might be worthwhile to go to a Dmg*10000/(10000+Armor).

To ballpark the armor calculation, each increment of armor equal to the number used increases a units time to live by 100%.

So, if Dmg*1000/(1000+Armor) is used, 1000 armor doubles a units life, 2000 armor triples it, 3000 quadruples it and so on. With the size of the other numbers used in the game, 1000 armor for a doubling of a units life sounds awfully low.


So, to summarize my new position now that I've had a night to sleep on it: The numerical system has to go because of the way Mark upgrades are handled. Currently armor can only be balanced to be effective against ships of it's own Mark level, when fighting ships of a different Mark level, the current armor system is sharply skewed off into left field. (It's not broken exactly, but it's not doing what it should.)

The whole binary "Armored"/Armor-Piercing" thing is a red flag to what is really wrong with the current armor system.

D.

Offline TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,570
Re: Ye Ol' Armor Debate
« Reply #57 on: July 13, 2012, 10:32:31 am »
So, to summarize my new position now that I've had a night to sleep on it: The numerical system has to go because of the way Mark upgrades are handled. Currently armor can only be balanced to be effective against ships of it's own Mark level, when fighting ships of a different Mark level, the current armor system is sharply skewed off into left field. (It's not broken exactly, but it's not doing what it should.)

IMO, I think the numerical system can still work. However, how armor scales with Mk. going up needs some rethinking. As pointed out previously, the effective armor of two Mk. I ships is the same as the armor rating of one of those Mk. I ships. This would imply that if Mk. II ships were balanced like 2 Mk. I ships, then a Mk. II should not recieve any increased armor. (the extra durability comes from a linear

Now as mentioned, that may be a bit boring, so a slight increase could work. I like your bomber example; something like base_armor + (mk - 1)*mark_armor_increase for some mark_armor_increase << base_armor would work well. (possibly with mark_armor_increase = base_armor / 8 or something like that)

However, also as mentioned, average numbers will need tweaking, both in respect to what heavily armored "superweapon" stuff has vs. the more normal stuff, and what average armor for normal stuff is vs. average damage for normal stuff.


I think this is one of the reasons why there have been many suggestions about moving away from a system with a numeric stat defined for each ship, it drastically reduces the size of the "balance state space" and thus is easier to balance and maintain.
But the current system is perfectly balancable as well.

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Ye Ol' Armor Debate
« Reply #58 on: July 13, 2012, 10:53:03 am »
All the maths in this thread is making my head burst.

If you want, I can start throwing some calculus into the mix for even more sophisticated mathematical analysis.  ;D
"As you can see, when we integrate the Hunter-Killer's damage-done-over-time, it forms a curve in the shape of a boot, which it will then proceed to..."

@Diazo, yes, I'm aware that the N/(N+Ar) method results not in diminishing returns but in exactly neither-diminishing-nor-amplified returns.  One of the arguments in its favor :)

I still don't think the situation is quite as bad as "if there's a mark difference, damage will always be either 20% or 100%" because some ships have much larger damage-per-shot than the normal armor increments.  But I'm happy to try the percent-reduction model when I get a chance, because I agree that the current model is relatively messed up.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Hearteater

  • Core Member
  • *****
  • Posts: 2,334
Re: Ye Ol' Armor Debate
« Reply #59 on: July 13, 2012, 11:11:48 am »
@Diazo
I believe Keith solved all the concerns you listed right here:

I think this would be easier to handle under a percentage-reduction system (multiplying by (1000 / (1000 + Ar - ArPen)) and having Ar and ArPen not scale up with mark.