Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Pages: [1] 2

Author Topic: An analysis of armor, and skills and hull mods that affect it  (Read 6952 times)

float

  • Captain
  • ****
  • Posts: 269
    • View Profile
An analysis of armor, and skills and hull mods that affect it
« on: December 23, 2021, 09:59:10 PM »

After the shield shunt nerf, I got to thinking -- how bad or not bad is it now?

Since the armor damage reduction calculation is rather complex, it's unclear how well a +15% increase to armor actually translates to combat performance. So I devised a couple of metrics to quantify how strong armor is in practical terms, as well as to gauge how strong skills and hull mods that affect armor actually are.

A note: I am making some simplifications for this analysis. First, I'm only going to consider a single block of armor, and I'll assume that that single block contributes all of its armor value, rather than taking an average over many surrounding blocks. Next, I'm going to assume that weapons deal continuous damage with two parameters: a hit strength H, and a base DPS B. Projectiles weapons can be approximated as beam weapons with B equal to their stated DPS and H equal to the projectile damage. The continuous assumption is what makes an analytical solution possible; otherwise, we'd be looking at some ugly recurrence relations.

For those who are unfamiliar with the armor mechanics, I'll give a brief recap. Suppose that A is the total armor of your ship. This is the number that appears in the refit screen, and is modified by hull mods like shield shunt, heavy armor, armored weapon mounts. However, it doesn't account for skills like polarized armor (which gives invisible armor for damage reduction purposes only) and impact mitigation (which reduces damage taken by armor, and used to give a flat invisible armor bonus). The total effective armor, which is the number actually used for damage reduction purposes, can be written as e(A) = uA + v, where u accounts for bonuses of the form "grants x% armor for damage reduction calculation purposes only," and v accounts for bonuses of the form "grants y (flat) armor for damage reduction calculation purposes only."

Suppose your ship currently has X armor. When your ship's armor gets hit by a beam with stated DPS B and hit strength H (usually H = B/2 for beams), the DPS sustained by the armor is (1 - R) * B, where R is the damage reduction fraction. Normally, R = e(X) / (e(X) + H) . However, there are two exceptions: if e(X) / (e(X) + H) > 0.85, then R is set to 0.85 (or 0.9 if you have polarized armor), so that your ship will always take a minimum fraction of damage regardless of how much armor it has. The second exception is if e(X) < e(0.05*A), in which case the armor value used is instead e(0.05*A), so that you will always have a minimum base armor value for damage reduction calculation, even if your armor is fully stripped.

A natural way to judge practical effectiveness of armor is to consider how long it takes for a particular weapon to fully strip it. I'll call this the strip time T. It turns out that, in the absence of the two exceptions above, T is quadratic in A -- that is, T is proportional to A^2. So, the more armor you have, the more effective the additional armor is. This makes flat armor bonuses -- heavy armor in particular -- more useful than they might initially seem.

What I'm really interested in is how much longer it takes to fully strip armor once we add certain skills and hull mods. For this, I'll consider the strip time ratio -- the amount of time it takes to fully strip armor with said skill or hull mod, divided by the amount of time it takes to fully strip armor without it. Skills and hull mods with higher strip time ratios are, in a very practical way, better. However, it comes as no surprise that the strip time ratio varies depending on the ship's base armor value. Here are graphs of strip time ratios of various skills, hull mods, and combinations thereof, for the following weapons: tactical laser (B = 75, H = 37.5), heavy mortar(B = 220, H = 220), and plasma cannon (B = 750, H = 500).

Tactical Laser

[close]

Heavy Mortar

[close]

Plasma Cannon

[close]

Some observations from these graphs:

- For most armor modifiers, strip time ratio increases with increased base armor until it hits a peak, after which it starts to decrease. The peak is the point at which the 85% damage reduction cap starts to kick in, since at this point the strip time goes from quadratic to linear. The obvious exceptions to this are polarized armor, which gains effectiveness past the damage reduction cap due to it increasing said cap to 90%; and heavy armor, due to being a flat increase.

- The general individual order of effectiveness of skills, along with shield shunt, is IM > SS (pre-nerf) > SS (post-nerf) > PA (assuming constant 25% bonus). PA dominates when the weapon's hit strength is low or base armor is high, due to gaining effectiveness once the damage cap is reached. With a 50% constant bonus (pre-nerf), PA actually competes with SS (post-nerf) against a plasma cannon, being weaker up until ~850 base armor and stronger after that. Note that since IM reduces damage and hit strength to armor by 25% (reference: https://fractalsoftworks.com/forum/index.php?topic=22699.15), it is effectively increasing armor by 33%, which is better than even pre-nerf shield shunt.

- Individually, the skills aren't particularly strong, improving strip time by a modest factor. The strongest, impact mitigation, caps out at about a 1.5 strip time ratio. However, they are comparatively much stronger when combined. With a decent base armor, the strip time ratio can be improved by a factor of 2-2.5 when stacking all three of SS, IM, and PA together (assuming 25% bonus for PA). When combined with HA and AWM, you can triple to quadruple your ship's armor's strip time, even with upwards of 1000 base armor. The reason why the skills and hull mods work so well when combined is due to how they stack. Hull mods affect the visible armor value and stack additively with each other, but everything else stacks multiplicatively. Polarized armor affects effective armor and impact mitigation affects hit strength and damage taken, each of which are modified separately from the ship's base armor.

I've attached a pdf showing how I derived the strip time formula, as well as a Mathematica notebook that I used to create the graphs, for anyone who is interested in playing around with the values themselves.

[attachment deleted by admin]
« Last Edit: December 23, 2021, 11:29:23 PM by this_is_a_username »
Logged

Null Ganymede

  • Captain
  • ****
  • Posts: 274
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #1 on: December 24, 2021, 04:53:15 PM »

I like this.

Focusing on armor stripping (rather than worrying about total EHP with Reinforced Bulkheads and whatnot) makes sense. Losing armor coverage changes AI behavior, armor loss is similar to combat readiness degradation in how it affects ships performance.

The really dramatic curves and crossings on the low armor side of the graphs aren't too important. Heavy Mortar goes thunk, all armor is gone. Middle and right are interesting.

Overall it looks like the same situation as optimizing damage: stacking multiplicative bonuses until the ship far outperforms what's expected for its DP is really good. Specializing a ship like that takes an investment of OP skills and built-ins, so it's probably still balanced.
Logged

SafariJohn

  • Admiral
  • *****
  • Posts: 3023
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #2 on: December 24, 2021, 05:44:24 PM »

Armor stripping is important for the attacker. Effective hull hitpoints is important for the defender.

Adding hull is more important than adding armor because the minimum armor mechanic multiplies hull points and even boosted armor can still be easily stripped.
Logged

float

  • Captain
  • ****
  • Posts: 269
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #3 on: December 24, 2021, 06:26:00 PM »

... boosted armor can still be easily stripped.

Perhaps considering high damage torpedos, but otherwise, in terms of time to strip armor vs time to fully destroy the ship once armor is stripped, this is easy to quantify.

An approximation for armor strip time (exact if disregarding the exceptions and invisible modifiers) is T = (2HA + A^2)/(2HB). Let Z be the ship's hull. The time to destroy the ship once armor is stripped is Z/(B*(H/(H+0.05A))) = Z(H+0.05A)/(HB). Therefore, it will take longer to strip armor than to finish the ship off iff 2HA + A^2 > 2Z(H + 0.05A). Some examples:

H = 220, Z = 5000 (heavy mortar vs ship with 5000 hull):
if A > 1064 then it takes longer to strip armor than to finish the ship off

H = 220, Z = 10000 (heavy mortar vs ship with 10000 hull):
if A > 1630 then it takes longer to strip armor than to finish the ship off

H = 220, Z = 20000:
if A > 2524 then it takes longer to strip armor than to finish the ship off

H = 500, Z = 5000 (plasma cannon vs ship with 5000 hull):
if A > 1461 then it takes longer to strip armor than to finish the ship off

H = 500, Z = 10000:
if A > 2236 then it takes longer to strip armor than to finish the ship off

H = 500, Z = 20000:
if A > 3422 then it takes longer to strip armor than to finish the ship off

This doesn't take into account invisible armor bonuses or damage reduction. I could extend from "time to strip armor" to "time to destroy ship," which would just be time to strip armor + Z(H+0.05A)/(HB), but my goal here was to compare different armor boosts to each other, not to compare armor boosts to hull boosts or hull boosts to hull boosts (there's nothing to compare there -- more hull = better). Whereas with armor, questions such as: "what's better, x% actual armor or y% effective armor?" or "what's better, x% armor or increasing damage reduction cap to y%?" arise.
Logged

Ishman

  • Captain
  • ****
  • Posts: 269
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #4 on: December 24, 2021, 06:41:03 PM »

I believe what safarijohn was trying to communicate is that while stacking armor can drastically increase the lifetime of that armor, it's nothing in comparison to the survivability increase achieved when stacking hull.

Alfonozo's junker ship line in HMI providing an excellent example of this, having been nerfed multiple times due to the way that even light armor has silly multiplicative effects with large hull values.
Logged

SafariJohn

  • Admiral
  • *****
  • Posts: 3023
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #5 on: December 24, 2021, 07:57:08 PM »

I was really only replying to Null Ganymede's assertion that armor strip time is more important than effective hull strength. For their OP costs, Reinforced Bulkheads can be stronger on high armor ships than Heavy Armor.


Trying to compare armor/hull skills/hullmods/etc. in absolute terms is impossible in-game. I don't have Mathematica to play around with your graphs, but it looks like your analysis is a big step towards creating a convenient comparator.
Logged

float

  • Captain
  • ****
  • Posts: 269
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #6 on: December 24, 2021, 09:01:33 PM »

I was really only replying to Null Ganymede's assertion that armor strip time is more important than effective hull strength. For their OP costs, Reinforced Bulkheads can be stronger on high armor ships than Heavy Armor.


Trying to compare armor/hull skills/hullmods/etc. in absolute terms is impossible in-game. I don't have Mathematica to play around with your graphs, but it looks like your analysis is a big step towards creating a convenient comparator.

Ahh. Regardless, this did pique my interest in incorporating hull stripping to the equation and graphs. Instead of using Mathematica this time (as I suspected probably not many people have it), I made a small python interactive graph that also takes hull values into account (setting hull to 0 will give just the armor strip time). Having non-zero hull also fixes the asymptotic behavior of the armor strip time factor at low armor values, since there's now a buffer that prevents having extremely low strip (or in this case, destruction) times.

The black line is the total ship destruction time (time to strip armor, and then reduce hull to 0) without any modifiers. The blue line is the total ship destruction time with modifiers. The x-axis is still armor (rather than hull):
Image

[close]

With this it should be able to quantitatively determine (or, at least, approximately determine) when, say, reinforced bulkheads is better than heavy armor. But in general, and unsurprisingly, the hull bonuses decrease in effectiveness at higher armor levels, while the armor bonuses increase in effectiveness. So there is definitely going to be a crossing at some point.

This tool requires python, numpy, and matplotlib. I did try to turn it into a standalone executable, but with dependencies it turned out to be 350MB, so that's probably not happening.


[attachment deleted by admin]
Logged

Thaago

  • Global Moderator
  • Admiral
  • *****
  • Posts: 7220
  • Harpoon Affectionado
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #7 on: December 24, 2021, 10:22:31 PM »

Great analysis!

In regards to the armor strip time, I'll note that in game the armor has a full grid of cells which complicated thing. Even when hitting the exact same spot, the full grid has more total armor than just the rated amount (21/15) and the armor goes down slower than expected from a single hit spot (as the outer ring of 12 contributes half to the calculation, but also take half), though the hull starts taking damage after the normal 100% of armor damage has been dealt (the inner 9 squares will be stripped while the outer 12 will be at half). For a big ship, it takes many times over the rated armor to strip it all the way: sometimes thats not necessary (like assassinating a ship from the back only needs to take out the armor area) and sometimes a swarm surrounding a ship eat all of it away which takes a lot of fire.
Logged

Mordodrukow

  • Captain
  • ****
  • Posts: 275
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #8 on: December 24, 2021, 11:03:43 PM »

Yes, math analysis is extremely complicated when we talk about armor.

My observations from real situations show that:
- for ship with HA, AWM, Polarized armor and Impact mitigation, having 1500 base armor high damage hits like plasma or hellbore cannon still break armor pretty fast. Like... one dual hellbore Dominator is enough to do that
- but now i can literally ignore frigates and some destroyers flying around. Previously i was not able to do that.
- there is some possible difference because of Shield shunt, but i cant feel it. It does not change anything mentioned above. The only ship with SS in my fleet now is Onslaught (not XIV, so, it could be even better)
- updated doritos dont care and destroy ships in seconds. Even the Onslaught.

UPD. Extra 50% maneuverability from Impact Mitigation is the best thing.
« Last Edit: December 24, 2021, 11:07:43 PM by Mordodrukow »
Logged
Spoiler
[close]

Thaago

  • Global Moderator
  • Admiral
  • *****
  • Posts: 7220
  • Harpoon Affectionado
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #9 on: December 24, 2021, 11:29:32 PM »

My biggest problem fighting the Tesseracts with low tech was just learning what projectiles meant armor murder and needed to be blocked, and which didn't. Such a huge part of proper armor piloting is knowing exactly when to flicker the shield on and when to let it stay off.
Logged

float

  • Captain
  • ****
  • Posts: 269
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #10 on: December 24, 2021, 11:39:25 PM »

Great analysis!

In regards to the armor strip time, I'll note that in game the armor has a full grid of cells which complicated thing. Even when hitting the exact same spot, the full grid has more total armor than just the rated amount (21/15) and the armor goes down slower than expected from a single hit spot (as the outer ring of 12 contributes half to the calculation, but also take half), though the hull starts taking damage after the normal 100% of armor damage has been dealt (the inner 9 squares will be stripped while the outer 12 will be at half). For a big ship, it takes many times over the rated armor to strip it all the way: sometimes thats not necessary (like assassinating a ship from the back only needs to take out the armor area) and sometimes a swarm surrounding a ship eat all of it away which takes a lot of fire.

From the start I knew I had to make some simplifications, and this was definitely the first one to make (assuming that we’re only dealing with a single block of armor). The other thing about the grid is that ships with more surface area have a bigger grid and therefore more total armor mass, which is helpful if and only if taking damage from multiple angles. This, in particular, is very difficult to quantify.

One clarification: the full grid (on a single impact) should be using a total of 100% of armor, not 21/15, since the outer squares only contribute half. So the total armor used for calculation purposes would be 9*1/15*A + 12*1/30*A = A.

It would be interesting to consider a full armor grid. One idea could be to add parameters for surface area (in square grid units) and scatter (how spread out around the grid the shots are, using, say, a monte-carlo process). Although at some point I’d imagine a full simulation would be the only feasible option.
Logged

Thaago

  • Global Moderator
  • Admiral
  • *****
  • Posts: 7220
  • Harpoon Affectionado
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #11 on: December 24, 2021, 11:45:08 PM »

Right, sorry I wasn't clear: I meant that while the armor strength being considered for shot reduction is at 100% of normal, the total numerical value that needs to be removed for the armor to be totally stripped, assuming shooting at a single spot vs a large target, is 140%. Once the inner 9 cells are depleted the target starts taking hull damage there, but the outer 12 cells will still be at half strength armor (and contributing only half of that value for the damage calculation).
Logged

float

  • Captain
  • ****
  • Posts: 269
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #12 on: December 24, 2021, 11:58:08 PM »

Oh, I see what you’re saying now. After the armor strip time, assuming we’re shooting at the same spot, we still have to strip 12 half-health armor cells that are still providing damage reduction at a total armor value of 6/15 A. Hmm… it’s not as simple as setting the armor to 21/15 A, since the hull is taking damage and could be destroyed before the outer cells are fully stripped, and due to the outer cells taking half damage they last longer and provide more benefit than a single 6/15 A block of armor would. And the total armor used in the calculation is capped at A rather than 21/15 A. Thanks — I’ll see about incorporating this since it’s important once I start adding hull damage and hull strip time to the equation. Or I could consider incorporating the entire armor grid… I wonder if that would even be mathematically feasible.
« Last Edit: December 25, 2021, 12:00:48 AM by this_is_a_username »
Logged

Vanshilar

  • Admiral
  • *****
  • Posts: 602
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #13 on: December 25, 2021, 10:04:44 AM »

Hey it's great that you're looking into this! I'll have (a lot of...) comments later on, but briefly, regarding accounting for the inner and outer cells:

What happens is that 60% of the damage goes toward the 9 inner cells, and 40% of the damage goes toward the 12 outer cells. So inner cells lose their armor twice as quickly as the outer cells, but the proportion stays fixed (i.e. at any given point, each of the outer cells will always have lost exactly half of the armor of what the inner cells have lost). The effective armor being used at any given time is the sum of the inner cells plus half of the outer cells, meaning, only half of that 40% of the damage gets "seen".

Thus what this means is that this acts like a single block of armor where (in terms of what the weapon sees on each shot), it basically only did 80% of the damage. 60% to the inner cells, and 40% to the outer cells, but only half of that gets "seen".

So, to account for this, you can treat it as a single block of armor, but set the DPS to 80% of its actual amount, and integrate from full to 20% of the original armor. At this point, you'll actually have destroyed an amount of armor equal to the base rating (so that DPS is actually accurate, you really have done that much damage), but because 40% of that went to the outer cells, and only half of that is counted, to you it'll look like the target has 20% of the armor left. It's really that the 9 inner cells are depleted and the 12 outer cells are at 50% of original armor.

From there on out, 60% of the DPS goes toward the hull, and 20% of the DPS goes toward the armor, until the armor is gone. You might think "but where's the missing 20%", but it's really that you are doing 40% of the DPS to the outer cells, but you only get to "see" 20% because the armor formula only counts half of the outer cells.

In this way you can do all the calculations "as if" it's a single block of armor, without actually keeping track of inner and outer cells explicitly. Or, you can choose to just calculate keeping track of inner and outer cells.

Taking an example, say you have a weapon that does 500 DPS but has 25 hit strength, energy damage (this looks like vulcan but here I'm making it energy instead of frag, for nicer numbers). Say you have 1500 armor, which means every armor cell has 100 armor to begin with. So there's 900 armor from the 9 inner cells, and 1200 armor from the 12 outer cells, but you only count half of the outer cells, so you end up with 900 + 1200/2 = 1500. Yup, the base armor, so the math checks out.

Now the weapon does a hit. It'll obviously do only the minimum 15% of damage, so it'll do 75 damage. In this case, 45 damage goes toward the 9 inner cells (so each loses 5 armor), while 30 damage goes toward the outer cells (so each loses 2.5 armor). So you end up with each of the 9 inner cells with 95 armor, and each of the 12 outer cells with 97.5 armor. The display will show you did 75 damage, because you actually did. But if you calculate the new armor value, it'll be 9 * 95 + 12 * 97.5 / 2 = 1440. You actually did do 75 damage, but it'll "look like" you only did 60 damage in terms of what the next shot sees for the armor rating.

You can continue on with this until you've done a total of 1500 damage (i.e. the display will say 1500 damage, total, if it's been accumulating with each hit). It'll say you've done 1500 total damage, and you did, but that's 900 damage to the inner cells and 600 damage to the outer cells. The inner cells are gone but each of the 12 outer cells still have 50 armor. Even though you've actually done 1500 damage, the armor rating at this point will still be 300; it'll look as if you've only done 1200 damage in terms of the armor rating.

At this point you start hitting hull. Still at the minimum of 15% so you do 75 damage. The 45 damage of the inner cells go straight to hull, whereas the outer cells take 30 damage. But it'll look like 15 damage in terms of the armor rating. So it'll look like the armor rating went from 300 to 285, i.e. 20% of the original 75 damage for this shot. This continues until enough of the outer armor gets removed that it's no longer going up against the 15% minimum.

I described how the armor mechanics work here: https://fractalsoftworks.com/forum/index.php?topic=22331.msg338016#msg338016

In that thread I also gave an Excel spreadsheet which shows the inner/outer cells, which I've also attached here. Note that the "Net Armor" column is what the weapon "sees" as the current armor it's up against, and note how that number's decrease is 80% of the "Net Dam". It also gives the "Display damage" which is the armor and hull damage that you'd see (cumulative). You can plug in different values as well as weapon damage types (kinetic/HE/frag/energy) if you'd like to see how it all works.

[attachment deleted by admin]
Logged

intrinsic_parity

  • Admiral
  • *****
  • Posts: 3071
    • View Profile
Re: An analysis of armor, and skills and hull mods that affect it
« Reply #14 on: December 25, 2021, 10:15:12 AM »

You can always just calculate the armor/hull strip time iteratively (each iteration is one shot), which is probably easier than trying to come up with a closed form expression. For burst weapons, you need to do a bit of work to keep track of the actual time vs the number of shots. That's how I've calculated this stuff in the past.

Also, just a small suggestion for your tool (which is very cool, I played around with it): it would be great if there were text boxes in addition to sliders so you could enter exact values. I'm not familiar with matplotlibs GUI tools, so if that's a lot of work, I understand not wanting to.
Logged
Pages: [1] 2