Armour: A Mathematical Analysis

It seems like the topic of armour, range resistance/ melee resistance is greatly misunderstood by many players of various skill levels. In this post I will demystify the mathematics behind the armour system in Age of Empire III.

Let us start with the basics- How does armour work? Every unit has one type of resistance. Ranged resistance, melee resistance, or (rarely) siege resistance. The game engine takes all incoming damage, and if it is the type of armour that is resisted, decreases the damage by that amount. If a unit has 30rr, any incoming damage is reduced by 30%. This is true of all the resist types. This does have some interesting consequences. When a unit has has 30 range resistance, it does not mean it has 30% more ranged hp.

Damage being resisted actually ends up behaving as a reciprocal value- in that you have to divide the original hp by the net damage done after armour is accounted for. This leads to some extremely counter intuitive behavior. Lets start with the basic function we can use:

The number here that we input as “x” is the total resistance as a whole number (30% is inputted as 30). The output is the amount that we multiply the base hp by in order to determine the total armoured hp.

This is the results of the function:

The graph starts at 1.000 for 0 armour (base hp*1.000) and ends at undefined at 100% resistance. A few basic waypoints here:
10% = 1.111
20% = 1.250
30% = 1.429
40% = 1.667
50% = 2.000
60% = 2.500
70% = 3.333
80% = 5.000
90% = 10.00

Basic example: a crossbowman has 100 hp, with 20rr. this results in 100hp*1.25 = 125 ranged hp.

Now lets talk a couple of units that we can modify the armour on, to sort of analyze exactly how significant these buffs can be.

Probably the most common armour modification that is done is on the chinese cavalry, meteor hammers and iron flails. I’ll just stick with flails here as an example, since the math holds true for meteors as well.

The base stats of an iron flail are 292 hp and 30rr. This is shadowteched by 20% in the fortress age for a result of 350.4 hp. This gives a total ranged resistance of 350.4*1.429 = 500.57 ranged hp.
(please note I am using untruncated decimals for this calculation to be as exact as possible)

As you can see already, Iron Flails are damage sponges with 500 ranged hp- but let us now ship “Double Faced Armour” which adds 15% base hp and adds 35% to range resistance. This armour change is 35% of the 30% existing armour giving us 30*1.35 = 40.5% rr (displayed as 41 in the UI)

Lets math this all out:
292hp * (1 + 0.2 + 0.15) = 394.2
(base hp * veteran + card)

then factor in armour with the equation:

394.2 / (1-0.405) = 662.521 ranged hp

So this shipment actually increased the ranged hp of Iron Flails by a whopping 162 hp! Thats the equivalent of more than 55% increase from base hitpoints. You think Naginata hp was/is busted? This card has the end result of 30% more impact in age 3.

It does also continue to scale into the industrial age. Industrial Flails with and without double faced armour are as follows:
without double faced- 438 hp and 625.7 ranged hp
with double faced- 481.8 hp and 809.75 ranged hp

Yeah, a nearly 180 hp difference. Gross huh?

Of course, this has only a 15% impact on its melee HP and ability to tank artillery fire, but ranged hitpoints tends to be the most impactful for a heavy cavalry.

Now lets talk the other major armour tech, a new one to the definitive edition. “Hualcana” is an inca tech that grants a 10% extra resistance to land military units, specifically just infantry and shock infantry. There’s all sorts of effects we can calculate for inca’s own units (such as jungle bowmen or whatever) but I want to specifically highlight a couple of specific examples where this can be disgustingly impactful.

Lets start with the unit the “Chakram” from the udasi settlement. Its fairly mediocre but with it no longer being tagged as heavy infantry it can sorta fill a niche of being just general anti-infantry with decent damage output.

Chakrams have a base hp of 165, with 50% range resist. This gives them a total ranged hp of 165*2 = 330. Now lets pretend we’re playing inca, have some bad macro and are nat rushing for the memes with some chakrams, where we tech this big button to increase their armour to 60rr. This brings their ranged hp from 330 all the way up to 412.5, or a whopping 50% increase from base hp, 25% increase total in ranged hp. Gross.

Now exclusively just for fun, lets imagine that you’re playing Inca on mongolia and snag yourself the 2 Iron troop treasure after researching Hualcana. Now, Iron troops already have absolutely disgusting ranged hp (60rr or 2.5x from base hp). Normally they are:

225 * 2.5 = 562.5 ranged hp

with Hualcana this goes to

225 * 3.3333 = 750 ranged hp

If I missed anything just let me know, or if you have some armour related questions, feel free to ask!

20 Likes

Very nice, This is going to be important when the new african units with dual armour come around, not to mention the new native techs that will give additional armour type to existing units, I think there is a tech that gives range resist to melee infantry and another one that gives melee resist to hand cav

292hp * (1.2 + 0.15) = 394.2
this you mean right?

So very good analysis in general, i love to see this kind of posts cause i have always done this things in Aoe3 to understand better the battlefield macro, but as you said in the beggining, not much players do this, i think they like to be guided by their instincts and most of all, by their experience, wich is not bad, but a lot of times can be confusing and misleading because you´re studying the products and not the system; but anyway…

Sometimes i didn´t understand why you mention something, and i like to handle percentages more, in my opinion they are more clear, for example, for the iron flail and the meteor hammer it´s a (1.35/1.2=1.125) +12.5% melee hp in early fortress wich is decreasing effectiveness as upgrades come along, and a (0.7/0.595*1.12.5=1.32352841176) +32.35284% ranged hp in early fortress as well, and decreasing too because of the overall hp increase, although the ranged resistance buff it´s a constant (0.7/0.595=1.17647058824) +17.647% ranged hp buff through all stages at the game, no matter what upgrades you give it, this is because it affects something that is almost never affected, so the buff is a direct buff, this is the same problem with the church techs, they give plus hp, wich is highly buffed through upgrades (often to more than 200%) so that buff becomes half effective, and the speed decrease is almost direct because is almost never affected by anything else, just the military drummers so it´s no stonks haha the same with melee rate of fire and attack, buffing attack +20% ends up in treaty like a +10% or less attack buff, but a -20% melee attack rate of fire like the inca card, it´s in all stages of the game a +25% attack buff like a x1.25 attack aura, but just like better, and so on… (maybe they can buff a samurai card with melee attack rate :D)

Also, the ranged and melee resistances´s increases in their respectives hp are:
+11.111% from 0% resist to 10% resist (9)
+12.5% from 10% to 20% (8)
+14.2857% from 20% to 30% (7)
+16.666% from 30% to 40% (6)
+20% from 40% to 50% (5)
+25% from 50% to 60% (4)
+33.333% from 60% to 70% (3)
+50% from 70% to 80% (2)
+100% from 80% to 90% (1)
+infinite% from 90% to 100% (0)
As you said in some of these and i´m sure you already knew, so you can just know for example that hatamoto samurai with 40% resist have 16.666% more melee hp with its resistance alone, and also for example, this is why i´ve been saying that cassadors are a little OP, they are just better in every way than skirmishers even in cost, but that´s for another topic haha

So maybe we can discuss some other interesting things to improve this game´s cards and mechanics like villager speed for example, wich i never seen being discussed and already done a post on it but has no comments xd (my first and only post so far) but anyways, there´s a lot of things that are being misunderstood and that i always wanted to inform the community about my thoughts on those things :slight_smile:

PD: are you the aztec (and china?) main in some samurairev videos? sorry if i´m mistaken xd

2 Likes

Good post, I also like to calculate like this :slight_smile:

It only shows that Resistance is way more important that is seems to be. If a unit has 50% range resistance it doesn’t mean it will survive 50% more shots. You will need to shoot TWICE as many times to kill him. And this is huge difference.

Similar reciprocal calculation can be applied to Community Plaza. If you choose to use Fertility Ceremony (quicker units production) and tasked about 11-12 villagers to dance you will have about 100% faster unit training.
But it does not mean your villager will spawn instantly from Town Center. It will only halve training time. Instead of 25s, you will have 12,5s training time for villager.

So definitely, it seems very counter-intuitive at fist look. But it is just math - it never lies :wink:

1 Like

Yeah, the main difference about the two kind of buffs or debuffs is defined by their limit, and there are two limits, 0 and infinite, so from 100% it can go to 0% or to infinite, to go to 0% are -% and to go to infinite is +% and the one that goes to 0% is always more convenient, because you only need -100% to get an infinite effect, and to get an infinite effect from going to infinite you need literally +infinite% wich is harder to get and not really viable, so getting +10000% hp is still way less than getting +70 resist when having 30 resist so having 100 resist (not calculating it like the chinese card), so that way is +infinite% hp. Take for example the training time/training speed effects, the training time effect goes stronger the more you have, when the training speed goes weaker the more you have.
So let´s just add 10 “cards” with equal values for every effect:
First card: -10% training time card gives you +11.111% training speed (90% tt).
Second card: -10%-10%=-20% training time cards gives you +25% training speed (80% tt).
Third card: -10%-10%-10%=-30% training time cards gives you +42.857142% training speed (70% tt).
Etc…etc
Eighth card: -80% training time cards gives you +400% training speed (20% tt).
Ninth card: -90% training time cards gives you +900% training speed (10% tt).
Tenth card: -100% training time cards gives you +infinite% training speed (0% tt).
But for training speed:
First card: +10% training speed card gives you -9.09% training time (90.90% tt).
Second card: +20% training speed cards gives you -16.66% training time (83.33% tt).
…
Ninth card: +90% training speed cards gives you -47.368421052% training time (52.631578947% tt).
Tenth card: +100% training speed cards gives you -50% training time (50% tt).
…
100th card: +1000% training speed cards gives you -90.90% training time (9.09% tt).
…
1000th card: +10000% training speed cards gives you -99.00% training time (0.99% tt).
And so on, so it never, not even with 10000000 cards you can get the instant train speed the train time effect gets.
So it is important to know wich bonuses are from what type of effect; if it is the +% going to infinite then they are decreasing their value the more you get them, so if you can get just one, you can get the more value out of them if you don´t really need several, and if it´s the -% going to 0 then if you take one, you should take all the ones that you can because they are increasing their value the more you get them.

This is a quality post. Thank you.

2 Likes

bro seems you got too much of free time :stuck_out_tongue_closed_eyes:

great post though :clap:

ps: maybe you should be part of the balancing team

1 Like

There is probably an easier way of looking at this than calculating the effective HP, although OP’s method is definitely correct and equivalent.

For instance, if you have x% Range Resist, and someone with a y Ranged attack shoots at you, the attack value will be reduced by a value of (x Ă— y)/100.

For example, say a unit A with 40% Ranged Resist is shot at by unit B with 25 Ranged attack and a 3Ă— multiplier against unit A.

Without armor, for every shot, unit A would lose (25Ă—3) = 75 HP.

But with armor the attack value is reduced by (75Ă—40)/100 = 30.

So for each shot, A loses (75 - 30) = 45 HP.

Going back to the effective HP picture:

So if A initially had, say 225 HP, without armor it would take 225/75 = 3 shots to kill A. But with armor it takes 225/45 = 5 shots to kill A.

So it is almost like B sees A to have an effective HP of (75 HP per shot ×5 shots) = 375 HP, which is what OP’s post would also give you.

yeah, what we’re doing here is giving a reciprocal value, which is what you’re demonstrating rearranged. this gives an immediate value, rather than a two step equation

armoured hp = (current hp) / (1-armour)

you’ve rearranged the equation, but it works the same algebraically

All right ya’ll, here’s some more spicy armour math:

Let’s talk about this Musket Rider alleged nerf, from 30rr to 25rr. Now I wanna start off by saying, I really don’t like doing math with musket riders, the fact that they have 205 base hp means decimals get really fiddly really fast but lets do this anyway!

Aight, so lets start with the basics here, in fortress age a musket rider shadowtechs by 25% (not 20%, no wonder this civ is so bonkers in age 3, they already have half a card on their skirms and goons, sorta their kanya too if you tech em, but anyway)

(Base HP * 1.25) / (1-0.3) = 366.07 ranged hp

this is the normal, age 3, musket rider stats we all know and love. Tanky bois. This scales with an extra 36.6 hp when the chief is near for 402 ranged hp. On TAD this was actually a ridiculous 420 ranged hp.

for giggles, lets just remind ourselves that a french age 3 dragoon is 300 ranged hp (200*1.2/0.8). Literally these musket guys can have 100 ranged hp more, a 50% increase from dragoon base stats, with no cards or anything, just the chief nearby.

So how bad is the nerf?

205*1.25 / 0.75 = 341.67 ranged hp

not so bad, right? 25 ranged hp difference, about 1 skirm shot lower. How about lategame scaling though, where Haudenosaunee is at their worst?

Let’s ignore the warchief for a bit here, it scales from current so its easy to add on after. Musket Riders have a maximum potential scaling with no nat/team cards of 115% hitpoints. This gives us a max of 440.75 hp.

with 30 rr this is 629.6 ranged hp
with 25 rr this is 587.667 ranged hp

a difference of nearly 42 ranged hp.

Now let’s look at Coyote Runners. It should be obvious from my first post that 10rr on a cav type unit is pretty garbage but lets break it down. First off, coyote runners are stupid. They take less damage from goons and heavy inf than a true cavalry does, making them overperform sometimes in melee situations, but take absolutely the same damage from skirmishers as true cavalry does. And then, on top of that, they have only 10rr.

Numbers time!

lets compare the 1 pop cavalry units (and uhlans) to coyote runners:

Yeah you’re reading that correctly. Steppe Riders are about 25% better tanks than Coyotes. And coyote do less damage to skirms too tbh. Imperial coyote will have 2.2x that ranged hp, for an incredible 378 ranged hp, less than an Age 2 Hussar. I still can’t believe I read complaints about the idea of giving the 20rr to coyote runners with a card, its absolutely no wonder at all these things just evaporate in long games. Even with the improvement of 20rr (a welcome patch buff, don’t get me wrong but not enough), they’re still maxing at 426.25 ranged hp, only a few hp more than an age 2 cossack with scout cav and boyars.

TL;DR: Coyote Runners are such trash

4 Likes

Great analysis of Coyote Runner’s issue!
These numbers shows the naked truth - Coyotes are way too weak agains units they should counter. Please devs read this post and consider buffing them.

exactly! The trouble is, coyote are quite good age 2. Don’t wanna mess with that. My personal solution would be 0.1 armour with silent strike as well, or with the temple support card to max at 30rr like the other 1 pop cavalry for 487 ranged hp, a number where they can actually take a few hits, ya know?

2 Likes

I think exactly the same.
Coyotes are strong enough in the II age but too weak later on. Adding 0.1 RR to some card (Silent Strike is a good option because this card is a Coyote card and it seems underused) looks like a great idea.

Temple card buff looks good too, but this card would be too strong in my opinion (Coyote shipment + 20% attack + additional 0.2 RR in total). Silent Strike buff is a best choice in my opinion.

1 Like

Or just multiply it by 0.6 if it has 40% rr, so (whatever damage without armor)x(0.6)=(actual damage), and that´s it hehe

Well, basically, in all stages of the game, in all situations, and with all upgrades and cards, it´s just about a (0.7/0.75) 6.666% nerf to only their ranged hp (-6.666%) that means they used to have 7.142857% more ranged hp in all scenarios (in both of the pairs of numbers you gave is the same 7.142857%, 366.07/341.67=629.6/587.667=1.07142857)… That´s what i think anyway xd

Well, i haven´t study that unit a lot, specially in commerce age since i play more treaty, but i don´t think they are bad, i really like them honestly, i don´t think they are OP, but don´t think they are bad, i mean, i´m not disagreeing with you here, they might use a buff, although i think the reason why they fall a little behind from the normal cav in ranged hp is because they have more base attack and they recieve less damage from anti-cav bonuses like about 75%-80% the damage they would normaly take, so if you compare 2 coyotes with 1 hussar, the hussar has 3.2% more hp, 16% more ranged hp, but coyotes have 20% more damage and take at least 20% less damage from their counters, so that translates as a 25% hp or more when fighting their counters, even though they cost like 10% more, for example taking hits from dragoons, the hussar has 16% more ranged hp, but coyotes have 33.333% more hp because of 2.25 multiplier against them, so they end up having almost 15% more hp when fighting against dragoons, same with heavy cav, they recieve less damage so they end up having more hp than the hussar, although it does not apply to skirmisher hits etc.

yesh, this what i was referring to above about them overperforming against melee anticav, and to a lesser degree against ranged cavalry. The issue with the unit is how hard they get shredded by skirms, and especially hard hitting ones like yumi or cassadores

2 Likes

I think it’s a good idea to put it on Silent Strike as a way to make it more difficult to get. Making you send 3 cards (Silent Strike, Combat, Support) to get the relevant coyote stat upgrades would probably keep this from getting too over powered.

Coyotes are supposed to be in-between Hussar and Uhlans. They have 18 attack per pop (Hus 15 per pop, Uhlan 18.5).

Some other considerations:

  1. Unit pathing, coyotes get on target better
  2. Cover mode, able to increase range resist when needed

So I would be careful with designing a unit that’s basically an Uhlan that can convert to a hussar with a formation change.

Ohh i think i miss that part for some reason xd
But i don´t know if i´m missing something here but coyotes recieve almost the same damage from skirms than normal cavalry, i mean, only difference is the RR from 20% to 10% (in the skirm multipliers says 0.75 vs cav and CR if i´m not mistaken), wich is -11% ranged hp and their -3% less overall hp so it results in an almost -14% less ranged hp but it compensates a bit with their higher attack i think, still, i would be happy if they buff the coyote a little at least :slight_smile:

Yes, cover mode for Coyote Runners is quite unique because cavalry usually has no access to that mode. It gives Coyotes some additional options but on the other hand Coyotes in cover mode have speed below 3.5 so they are not able to catch any ranged infantry. You would need to have an insane skills to change Coyotes mode to cover every time skirmishers are firing at them and change back a few miliseconds later. I guess pro players may be able to do it but most of us probably not.

Regarding pathing - I agree. This is an advantage that cannot be easily measured.

what i meant by that is like, pikes do 3.5x vs coyote instead of 5.0x vs cav. but skirms do 0.75x to both cav and coyote runners, instead of being reduced a little further, such as 0.6 or something roughly like that

1 Like