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

Offline Wingflier

  • Core Member Mark II
  • *****
  • Posts: 2,753
  • To add me on Steam, click the little Steam icon ^
Re: Ye Ol' Armor Debate
« Reply #15 on: July 12, 2012, 09:21:47 am »
Quote
One problem I find with hull-type + armour-type multipliers is that recalling optimal targets for a weapon-type becomes a matter of memory and intuition. I don't mean things like flak, or AP-bullets, that have firmly established definitions. I mean sci-fi types like plasma and energy wave and the dreaded "photon-cannon". A lot of our bonus-ship types will be using some non-obvious ammunition, and the best we can do is to show them a giant look-up table full of entries.
Well ideally, a ship would always attack the target that its weapon does the most damage to (taking armor and bonuses into account), unless specified otherwise.  I don't know how difficult this would be to code, but with the already built-in "battle simulation" system, it wouldn't be very hard to figure out.

Quote
Isn't the first order of the day to break down and analyze what exact game mechanic or what function armor really has before we start tossing ideas around? Why does armor exist in the first place, and what is it meant to do?
In my mind, armor is meant to diversify the battle system by adding more roles and anti-roles into the game.  Certain ships (Tank, Armor Ship) simply exist to be heavily armored, while others (Anti-Armor, Armor Rotter) exist to destroy heavily armored ships.  Without the armor mechanic, we'd have a lot more ships just doing "more damage", making them pretty much good against everything which would be really boring and stupid.  As Keith said, making armor into a second "hull type" is probably the easiest way to keep the diversity that armor was supposed to bring while keeping it balanced.

In addition to the hull types the game currently has (Light, Medium, Heavy, etc.), there could be a second hulltype such as Lightly Armored, Medium Armored, Heavily Armored, etc.  "Armored" ships would then be given a lot of health, and specific anti-armor ships (such as Bombers) would have bonuses against these new types.  For example, the default could be Lightly Armored x8, Medium Armored x4, Heavily Armored x2.  This would give bombers an important role, but not make them as overpowered as they are now.  Instead, just like Fighters and Frigates, they would have their own niche role that changes based on what you're facing (so in other words you may not have to upgrade Bombers to MKIV every game to win).  Double hull type modifiers would be multiplied with each other so if the target had the Artillery hull type and the Medium Armored hull type, the Bomber would do (6x4) 24x times its damage to it.  As I said before, Armored units would have a lot of health.
"Inner peace is the void of expectation. It is the absence of our shared desperation to feel a certain way."

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Ye Ol' Armor Debate
« Reply #16 on: July 12, 2012, 09:39:00 am »
Quote
One problem I find with hull-type + armour-type multipliers is that recalling optimal targets for a weapon-type becomes a matter of memory and intuition. I don't mean things like flak, or AP-bullets, that have firmly established definitions. I mean sci-fi types like plasma and energy wave and the dreaded "photon-cannon". A lot of our bonus-ship types will be using some non-obvious ammunition, and the best we can do is to show them a giant look-up table full of entries.
Well ideally, a ship would always attack the target that its weapon does the most damage to (taking armor and bonuses into account), unless specified otherwise.  I don't know how difficult this would be to code, but with the already built-in "battle simulation" system, it wouldn't be very hard to figure out.
The autotargeting already factors in "how much damage would I do to this target?" using the same computation as the actual shot would (though there are factors that can change between target and firing, and between firing and hitting).  It doesn't automatically pick the one it can do the absolute highest damage to, but that's one of the main factors.

Chris's autotargeting logic is quite complex and impressively close (relatively speaking) to optimal, actually.  Rarely is it important for a player to micro targeting, though there are some units that need it more because their main purpose isn't straight-up-damage (or engine-damage or paralysis, we have pretty good autotargeting for those too), and sometimes you want a particular target dead regardless of the overall tactical situation, etc.

All that said, I don't think the concern was over second-to-second targeting decisions but rather "ok, I've got a wave of type X coming, what can I build that gets good bonuses against it?"  I think that's surmountable, and ideally a ship-size/material vs weapon-size/type bonus system would actually be more intuitive than the current ship-type vs hull-type (where some hull types describe the material it's made out of, and some hull types describe the size of the ship, etc) system.  At least after a while, obviously for players transitioning from one to another there's going to be temporary confusion simply due to change.
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 Mánagarmr

  • Core Member Mark V
  • *****
  • Posts: 4,272
  • if (isInRange(target)) { kill(target); }
Re: Ye Ol' Armor Debate
« Reply #17 on: July 12, 2012, 09:46:42 am »
I agree that the current system is daunting for a new player (just taking a look at the simulator sheets makes most non-grognards run away, screaming in terror) but it's miles better than the older system with even more types.

That being said, I can't really think of a system that is better (aside from better naming) that doesn't also massively take away from diversity.
Click here to get started with Mantis for Suggestions and Bug Reports.

Thank you for contributing to making the game better!

Offline relmz32

  • Full Member Mark II
  • ***
  • Posts: 187
Re: Ye Ol' Armor Debate
« Reply #18 on: July 12, 2012, 10:06:03 am »
My two cents:
I like the idea of having a defensive stat that is not raw health, but the current system is not very noticeable, except in certain cases (Read: raids ) i think have % damage reduction is very valuable, and we should look to design a similar system, but one with more impact in the general case.

I think taking a look at the armor system from League of legends might be useful to us.  Its basic follows the form of
effective damage = initial damage*100/(100+Armor - ArmorPenetration)

This translates into a percentage reduction of damage dealt based on the armor of the target. It can be adjusted, along with Armor penetration to produce an interesting variation of damage.

EDIT:

Er, Maybe I'll just go with Kieth's Option number 1.  >> derp.
« Last Edit: July 12, 2012, 12:44:08 pm by relmz32 »
A programmer had a problem. She thought to herself, "I know, I'll solve it with threads!". has Now problems. two she.

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Ye Ol' Armor Debate
« Reply #19 on: July 12, 2012, 10:41:12 am »
I think taking a look at the armor system from League of legends might be useful to us.  Its basic follows the form of
effective damage = initial damage*100/(100+Armor - ArmorPenetration)

1) A relatively lightweight change is just to make it so that incoming damage is multiplied by 1000 / (1000 + armor) or something like that, and then balance around that.  Probably make it so everything military has some degree of armor, make boosts have minimum + amounts, and various other specific improvements.

:)

But yea, the first place I recall actually seeing the formula was LoL.  Seems to work well for them.
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 #20 on: July 12, 2012, 11:10:11 am »
The biggest problem with armor currently is attack damage is so widely varied (Autocannon Minipods do 560, Bombards do 180,000) that a straight reduction in damage cannot work without either making weak attacks do no damage, or strong attacks not even care about armor.  Which is how we got the "maximum 80% damage reduction" rule.  At this point we basically could have a flag for "Armored" that make ships take 80% reduced damage from any attack that doesn't have the "Armor Piercing" flag.

For the new system a percentage reduction could work, but then you lose all distinction between weak attacks and strong attacks against armor.  Is that useful to preserve?  I think it at least bares consideration.  Looking at Keith's suggestion of 1000/(1000+armor) percentage multiplier, what if one additional step was added.  I'll write out the alternate formula first, and then explain it:

1000 / (1000 + armor * (40 - Log2(damage)) / 35)

The new term causes the effective armor value to decrease as the attacker's damage increases.  So an Artillery Golem's attack will have a lower percentage reduction than an Autocannon Minipod.  However, because the reduction is still a percentage, the actual amount of damage stopped by armor is still much higher for the Artillery Golem's attack, unlike how armor currently functions.  In effect, this "armor effectiveness" multiplier is nearly static for each ship type.  It could be completely static if attack boosts were ignored for computing it.  Let's see an example:


Let's say a ship has 1000 Armor.  Under Keith's formula they take 50% damage: (1000 / (1000 + 1000)) = 0.5.  It doesn't matter if the attack is an Artillery Golem or an Autocannon.  Big hits and small hits are irrelevant, the DPS change is the same.

But with the modified formula, let's see what happens between an Autocannon Minipod (560 damage) and an Artillery Golem (100m damage):
Autocannon: 1000 / (1000 + 1000 * (40 - Log2(560)) / 35) = 1000 / (1000 + 1000 * (40 - 9.130) / 35) = 1000 / (1000 + 1000 * 0.882) = 1000 / (1000 + 882) = 0.531
So each hit will deal 560 * 0.531 = 297 damage, a 46.9% reduction in DPS.

Artillery Golem:  1000 / (1000 + 1000 * (40 - Log2(100m)) / 35) = 1000 / (1000 + 1000 * (40 - 26.58) / 35) = 1000 / (1000 + 1000 * 0.383) = 1000 / (1000 + 383) = 0.723
So each hit will deal 100,000,000 * 0.723 = 72,300,000 damage, a 27.7% reduction in DPS.


So this preserves the interaction of low damage attacks being more affected by armor without making armor pointless against high damage attacks. 

The two constants (40 and 35) from the formula I proposed can be changed (and should be, I picked number for demonstration purposes).  They should 5 to 7 apart (6 or 7 if you care about damage less than 64 per attack), and the higher the value the less pronounced this scaling is.  For the values of 60 and 55, armor is 92.5% effective against Autocannon attacks, and 60.8% effective against Artillery Golems.  Going up to 200 and 195 makes the effect pretty subtle (97.9% and 88.9% effective) while still creating a useful balance point.  100 and 95 are probably a good middle ground.

Why is it good that big attacks are better against armor?  Because big attacks are naturally worse at DPS due to overkill.  Imagine an Artillery Golem firing at a swarm of Autocannons.  It's actually DPS is much lower than on paper.  Meanwhile Autocannon's actual DPS is almost exactly what it looks like on paper.  By giving big attacks an advantage against armor, we create a situation were both small attacks and big attacks have situations in which they work better.  Without this interaction, high attack damage will always be a negative given equivalent DPS.

Is it too complex for players? The details aren't important in play.  Players certainly won't be computing 1000 / (1000 + armor) in play anyway.  It can just be summed up with: Bigger damage naturally ignore a percentage of the target's armor.  Which conceptually makes sense.

Why not just give bigger damaging attacks armor piercing? This is actually percentage reduction of armor, unlike armor piercing.  So the two effects have different affects on armor.  In LoL terms, bigger attacks have a natural (very weak) Last Whisper built in.  Giving Armor Piercing to a ship is like giving it a Brutalizer.

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Ye Ol' Armor Debate
« Reply #21 on: July 12, 2012, 11:18:16 am »
For the new system a percentage reduction could work, but then you lose all distinction between weak attacks and strong attacks against armor.  Is that useful to preserve?  I think it at least bares consideration.  Looking at Keith's suggestion of 1000/(1000+armor) percentage multiplier, what if one additional step was added.  I'll write out the alternate formula first, and then explain it:

1000 / (1000 + armor * (40 - Log2(damage)) / 35)

The new term causes the effective armor value to decrease as the attacker's damage increases.
I would probably do it by having each ship precompute from their damage a %-reduction in target armor (the (40 - Log2(damage)) / 35 term), but yea, something like that could work.

FYI, since it's been mentioned by someone else: the current situation where low-rate-of-fire stuff is more effective against armor than high-rate-of-fire stuff is entirely intentional.  The flip side is that low-rate-of-fire stuff loses more to overkill.  It doesn't have to stay in the game, but it's certainly not a bug or balance "problem", in my view.  It's just one of the anti- roles that manifests due to the armor system.
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 TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,570
Re: Ye Ol' Armor Debate
« Reply #22 on: July 12, 2012, 11:27:26 am »
About the whole splitting hull types into two separate stats that things can get multipliers against (and possibly replacing armor with one of those new stats), that sounds very similar to what I also posted in that other discussion:

Quote
2) The 'hull type' of all ships would be looked at to make them more consistent. IE: All bombers polycrystal, all melee ships close combat, etc.
Depending on what you mean by "Bomber" not all of them would be polycrystal, and certainly not all melee types would be one type.  But all of the hull types would be something like "{size} {material}" rather than some of them being "{size}" and some being "{material}", and hull types of a particular material would have pretty similar bonuses against them, etc.

If we are going to do that, why not just separate the two?
One stat will be hull type, which would be the typical polycrystal, nuetron, artilerry, etc. type that we got going now (its debatible whether things like light, heavy and ultra heavy should be moved to the size stat, renamed to small, large,and very large or something)
The other stat will be size. This way, you work with two seperate lists, instead of having to work with a "power set" (all possible combinations) of two distinct concepts.

For each ship xor shot type (depending on what we choose) there would be two sets of bonuses, one for material, one for size.

So we would have something like (I can't remember actual bonuses off the top of my head, so I am making some up)

Laser gattling
2x vs nuetron, 2x vs artillery, .5x vs command station armor
1.2x vs medium, .5x vs large, .7x vs very large
(omitted values are implied 1x, so that would mean 1x vs very small and small)

Plasma siege starship (note, no hull type bonuses)
.25x vs very small, .4x vs small, .8x vs medium, 1.2x vs very large

Yea, this wold make a new set of stats to balance, but it would better capture what we are currently sort of trying to use armor to represent, and thus be more intuitive. Those cases where we are trying to use armor to represent a special kind of "extra toughness" (like armor ships or raid starships) rather than just generic size/tier would get the old armor mechanic, renamed to deflectors.

EDIT: To ease the balancing effort, most ship type and shot types logically don't vary in effectiveness depending on target size. So the vast majority of ships would just have 1x for size accross the board. Only for ships or shots specifically designed to counter a few "tiers" of stuff would need these specific size multipliers.

EDIT2: Now that I think about it, this type and size multiplier system is very similar to the one used by Starcraft, except they also have an armor value stat on top of that.  :o

EDIT:

Additional sizes can be added of course, like tiny, humungous,  planetoid, etc.

Also, it would be a clean way to communicate targeting restrictions based on size, like

Bomber Starship (note, no hull type bonuses, though it would be nice for it to get some)
0x vs very small, 0x vs small, 0x vs medium  (note, all others are omitted, which implies 1x)

Orbital Mass Driver
0x vs very small, 0x vs small, 0x medium, 0x vs large (or rather, the last 0x will be vs the size level right before the minimum a OMD eligible target can have)
« Last Edit: July 12, 2012, 11:35:39 am by TechSY730 »

Offline Wingflier

  • Core Member Mark II
  • *****
  • Posts: 2,753
  • To add me on Steam, click the little Steam icon ^
Re: Ye Ol' Armor Debate
« Reply #23 on: July 12, 2012, 11:28:04 am »
Personally I'm for any system that more distinctly defines the role of swarmer ships vs. heavy hitters.  I would even be in favor of reducing the cap of the average heavy hitter (such as bombers) in order to increase their individual damage, and give them that "heavy" feel.  In all honesty, it bugs me a bit that bombers are just as fast and have the exact same cap limit as fighters; it makes the game feel too homogenized.  I imagine bombers to be much slower, more expensive, and more powerful, and I think the armor system that Hearteater suggested perfectly facilitates that.

The concept of overkill vs. chip away damage is a great way to balance in my opinion, and I think it would solve the current problem of many of the "swarmer" types being too weak.  It would also redefine the role of "anti-armor" ships, who would become more of a giant cannon, which is probably the way it should have been to begin with.
« Last Edit: July 12, 2012, 11:30:11 am by Wingflier »
"Inner peace is the void of expectation. It is the absence of our shared desperation to feel a certain way."

Offline Diazo

  • Master Member Mark II
  • *****
  • Posts: 1,717
  • I love/hate Diff 10
Re: Ye Ol' Armor Debate
« Reply #24 on: July 12, 2012, 11:30:27 am »
edit: Ugh, 5 replies while typing this up, reading thread now.


Okay, long post incoming but I need to lay it out to make any sense.

Actually, first two things I think apply to the entire discussion, not just my suggestion.

1) Armor is a damage mitigation mechanic so any discussion/changes regarding it have to include the Attack Multiplier system, at least peripherally.

2) Include how Mark levels will affect things, right now a single Mark level of difference can result in 40% difference in damage being done due to armor increasing as Mark goes up. My current suggestion for this is that a targets armor is always equal to the attackers Mark, IE: A Fighter Mk II being attacked by a Raptor Mk I only has the armor of a Fighter Mk I.

Now, for my suggestion. Keep the current attack multiplier system, just add a second set for hull size. So ever ship in the game would have a Hull Type and a Hull Size. For damage calculations these would stack multiplicatively.

The current modifiers would all have to be deleted and every ship would be given a standard spread of attack multipliers as a starting point.

A 'Baseline' ship would get 1x against ships the same size and smaller 0.8x against 1 size larger, 0.6x against 2 sizes larger, etc.

A 'Bomber' ship would get penalties against smaller ships and bonuses against larger ships.

An "Escort' ship would get bonuses against smaller ships and bigger penalties against larger ships.

And then ships would get tweaked based on their specialty, usually with modifiers against hull type.

For example, a Fortress, Hull Size Large, Hull Type Defence with attack multiplier Tiny 3x, Standard 1x, and Polycrystal 0.1x.
A Fighter, Hull Size Tiny, Hull Type Standard, with attack multiplier Large 0.5x, Defence 1x
A Bomber, Hull Size Tiny, Hull Type Polycrystal, attack multiplier Large 3x, Defence 1.5x

The Fortress attacking the Fighter would do: (Tiny)x(Standard) (3)x(1) -> 3x Damage
The Fortress attacking the Bomber would do: (Tiny)x(Polycrystal) (3)x(0.1) -> 0.3x Damage
The Fighter attacking the Fortress would do: (Large)x(Defence) (0.5)x(1) -> 0.5x Damage
The Bomber attacking the Fortress would do: (Large)x(Defence) (3)x(1.5) -> 4.5x Damage

This re-work makes the damage system more intuitive and 'solves' the armor problem by leaving it intact. The "Armored" and "Armor-Piercing" ships currently would be moved to their own hull type, call it 'Armored' and either given really high HP and Armor-Piercing ships a damage multiplier against them, or give them normal health and everything not Armor-Piercing an attack penalty against them.

That leave the currently Armor intact for balancing purposes, which I like. The thing is, there is nothing wrong with Armor, the problem is the current Armor mechanic is trying to do two different things at the moment, be a balancing mechanic that stays in the background for most players, as well as be a special mechanic where you have distinct "Armored" ships and "Armor-Piercing" ships.

Adding the Hull Type and reworking the Attack Multipliers fixes this. Armor can go back to being a behind the scenes balancing mechanic and you can add the "Armored" hull type to keep that special mechanic intact.

The biggest advantage of this is it should keep the feel of the game intact as we are not actually changing any game mechanics, we are just adding another Hull Size attack multiplier to go with the current Hull Type one.

The down size is this is a full rework of the numbers as every attack multiplier for every ship would have to change.

It does add one more multiplication to the damage formula, but I don't see that being a problem with everything that is already going on in that formula and I would think is relatively easy to add as it would be pretty much the same code as the current Hull Types code.

TL;DR: Keep the mechanics the same, adding a Hull Type attack multiplier. The armor system stays intact. 'Armored' and 'Armor-Piercing' ships are moved out of the armor system and into the Hull Type system as an Armored Hull type. Then do a balance pass of all ships Attack Multipliers and Armor.

D.


edit the 2nd: Bah, Tech essentially posted exactly the same thing. However, I want to repeat that I think the Armor system is fine as is and works as a balancing stat. It just has to stop doing double-duty as the mechanic that makes ships "Armored" and "Armor-Piercing". An "Armored" ship would be moved to hull type "Armored" and have the usual level of numerical armor for a ship its size.
« Last Edit: July 12, 2012, 11:36:09 am by Diazo »

Offline TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,570
Re: Ye Ol' Armor Debate
« Reply #25 on: July 12, 2012, 11:36:51 am »
(omitted for size)
For example, a Fortress, Hull Size Large, Hull Type Defence with attack multiplier Tiny 3x, Standard 1x, and Polycrystal 0.1x.
A Fighter, Hull Size Tiny, Hull Type Standard, with attack multiplier Large 0.5x, Defence 1x
A Bomber, Hull Size Tiny, Hull Type Polycrystal, attack multiplier Large 3x, Defence 1.5x

The Fortress attacking the Fighter would do: (Tiny)x(Standard) (3)x(1) -> 3x Damage
The Fortress attacking the Bomber would do: (Tiny)x(Polycrystal) (3)x(0.1) -> 0.3x Damage
The Fighter attacking the Fortress would do: (Large)x(Defence) (0.5)x(1) -> 0.5x Damage
The Bomber attacking the Fortress would do: (Large)x(Defence) (3)x(1.5) -> 4.5x Damage

(omitted for size)

TL;DR: Keep the mechanics the same, adding a Hull Type attack multiplier. The armor system stays intact. 'Armored' and 'Armor-Piercing' ships are moved out of the armor system and into the Hull Type system as an Armored Hull type. Then do a balance pass of all ships Attack Multipliers and Armor.

D.

Isn't that basically what I proposed? (http://www.arcengames.com/forums/index.php/topic,11113.msg110599.html#msg110599 and http://www.arcengames.com/forums/index.php/topic,9809.msg92659.html#msg92659)

Great minds think alike I guess. ;)

Offline Wingflier

  • Core Member Mark II
  • *****
  • Posts: 2,753
  • To add me on Steam, click the little Steam icon ^
Re: Ye Ol' Armor Debate
« Reply #26 on: July 12, 2012, 11:37:16 am »
I like Diazo's suggestion too.  There's lots of good suggestions in the thread.
"Inner peace is the void of expectation. It is the absence of our shared desperation to feel a certain way."

Offline Diazo

  • Master Member Mark II
  • *****
  • Posts: 1,717
  • I love/hate Diff 10
Re: Ye Ol' Armor Debate
« Reply #27 on: July 12, 2012, 11:48:12 am »
Isn't that basically what I proposed? (http://www.arcengames.com/forums/index.php/topic,11113.msg110599.html#msg110599 and http://www.arcengames.com/forums/index.php/topic,9809.msg92659.html#msg92659)

Great minds think alike I guess. ;)

Hehe.

Your post went up as I was typing that up.

For me it really boils down to that I like the armor system as is for what it is supposed to do. The borked part is from trying to thing on your foot-horn the special "Armored" mechanic into the armor system leading to the lop-sidedness we have now.

The best way I could come up with moving the "Armored"mechanic to its own mechanic was to add hull types and it went from there.

D.

Offline amethyst

  • Newbie Mark III
  • *
  • Posts: 36
Re: Ye Ol' Armor Debate
« Reply #28 on: July 12, 2012, 11:59:37 am »
Just chiming in to say that I personally find it important to keep armoured things more resistant to many small attacks than a few big shots, and that adding different size classes might indeed be a way of helping with that; one that is transparent to the player to boot, and could be used to reflect those targetting restrictions that are currently a little unclear, as TechSY730 suggested.

I'll leave the actual balancing discussion up to people with far more experience than I have - Steam says I have some 630-odd hours logged, but all of that is in 7/7 or lower, without exos. ;)

Offline Hearteater

  • Core Member
  • *****
  • Posts: 2,334
Re: Ye Ol' Armor Debate
« Reply #29 on: July 12, 2012, 12:03:11 pm »
Golems - Hard, you know you want to!