• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

The truth behind Armor and Resistances revealed!

Status
Not open for further replies.

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,199
Taking damage is an important part of Diablo III gameplay. Although most attacks can be avoided through the use of tactics and play skill you will still find yourself taking hits from foes. When you do take these hits it is important to be able to survive as dying is bad.

Dying with Softcore characters can set you back over 5,000 gold each time with repair bills and waste your traversing back to the place of death. Beginners often find themselves running out of gold due to constant and repetitive dying in Softcore mode. Dying with Hardcore characters is even worse as death is permanenet meaning all experience and gear on the character, both worn and in inventory, is lost forever. Hardcore deaths are so bad you can find youself losing millions of gold worth of gear in under a second. Considering each million of Hardcore gold has a potential value of between £2.00 and £3.00 (at time of post) in real currency that makes it something you need to make sure never happens.

Character death occurs when the current hitpoints of the character are reduced to 0 and no saviour skill is available to trigger. In lower difficulties this unlikely to occur if you have been wearing gear with reasonable vitality affixes on it and are paying the slightest bit attention to playing. However by the time you reach Hell it seems no mater how much vitality you pile up on your gear it melts away in seconds. At inferno you find your insane maximum life being worthless as a rouge white mob will kill you in one or two hits with many stronger blows killing you instantly.

The monsters of Inferno do not deal stupidly high damage. Inorder to do Hell and Inferno mode with ease you need to focus on Protection. With Protection the powerful fists of Belial that would one shot you suddenly deal nothing significant to you. With enough protection even Inferno Belial will not be able to kill you.

Protection reduces the damage you receive from enemy attacks. It is the result of many damage reducing factors being multiplied together. Protection improves the efficency of health and thus heals as each hitpoint represents more damage you can take.

Protection comes from many sources. The reliable sources are Armor, Resistances and Damage Reduction. These provide garunteed reduction to damage so are the most dependable for Hardcore. There are also unreliable sources such as Evasion and Block. These require certain conditions be met and are luck based so are the least dependable for Hardcore.

Armor comes from armor pieces of gear, strength and various skills. Resistances comes from gear with resistance modifiers, intelligence and various skills. Damage reduction comes from class type, damage reduction modifiers on gear and various skills. Evasion comes from Dexterity and various skills and is a chance to take no damage from a hit (if hit can be evaded). Block comes from shield and is boosted by armor gear with block modifer and comes in the form of a chance to reduce damage received by a fixed amount with a minimum of 0 damage received.

Ultimatly all the protection numbers are meaningless as what really maters is how much damage dealt does a quantity of life represent. This can be computed as "equivelant hitpoints", the quantity of hitpoints needed to to take a certain amount of damage if all protection was removed so damage dealt becomes damage received. To compute this a "equivelant hitpoints multiplyer" is required.

equivelant hitpoints = equivelant hitpoints multiplyer * hitpoints

Logically this formula can also be applied with hitpoints being a quantiy regenerated via various means to get an amount of damage healed. If the equivelant hitpoints of the healing you are doing per second exceede the damage per second output from enemies attacking you it becomes impossible for you to die. As improving healing is difficult it is advised to get the equivelant hitpoints multiplyer as large as possible to make the healing as efficient as possible.

Equivelant hitpoints multiplyer is the inverse of damage dealt multiplyer, the multiplyer of damage dealt to get the damage received.

damage dealt * damage dealt multiplyer = damage received

Damage dealt multiplyer is the product of all damage dealt multiplyers for various sources of protection. As unreliable sources are conditional and chance based they are more difficult to calculate damage dealt multiplyers for. Instead the main focus will be on the reliable sources.

The formula for the damage dealt multiplyer for both armor and resistances is...

damage dealt multiplyer = 1 / ( 1 + points / ( 50 * level ) )

Points is the number of points of armor or resistance owned. Armor has a point of value 1 while resistances have a point of value 0.1. Level is the level of the enemy dealing the damage. Inferno mode enemies have levels above 60 which is the highest the statistics infomation screen will compute for.

Damage reduction translates quite easilly into a damage dealt multiplyer using the logic of percentages and thus is not covered here.

This means the final reliable damage dealt multiplyer becomes...

reliable damage dealt multiplyer = damage dealt multiplyer armor * damage dealt multiplyer resistances * damage dealt multiplyer reduction

As we want equivelant hitpoints multiplyer the inverse is used.

equivelant hitpoints multiplyer = 1 / ( damage dealt multiplyer armor * damage dealt multiplyer resistance * damage dealt multiplyer reduction )
equivelant hitpoints multiplyer = 1 / ( ( 1 / ( 1 + armor / ( 50 * level ) ) ) * ( 1 / ( 1 + resistance / ( 5 * level ) ) ) * ( 1 - damage reduction ) )
equivelant hitpoints multiplyer = ( 1 + resistance / ( 5 * level ) ) * ( 1 + resistances / ( 5 * level ) ) / ( 1 - damage reduction )

equivelant hitpoints multiplyer = ( ( armor * resistance ) / ( 250 * level^2 ) + armor / ( 50 * level ) + resistance / ( 5 * level ) + 1 ) / ( 1 - damage reduction )

Armor and resistance are both their ingame values and not point values.

What is interesting to see is that both armor and resistances are linear when increased. This means that raising your armor by 1 when you have 100 armor or 10000 armor will increase equivelant hitpoints by the same amount. To put it in other words every 3 points of armor against a level 60 will add atleast 0.001 more damage per point of life. This breaks the myth people keep saying that "armor and resistances have diminshing returns, getting more than X of each is not worth while".

What is even more interesting is the resistance armor product term. Rasing one of them not only increases the equivelant hitpoints multiplyer as a linear with a constant but it also increases it as a lineara with the other and a constant. This means that not only do they not have dimishing returns but together they increase as a polynomial. Rasing one can be viewed as increasing the efficincy of the other. The formula is optimum when you keep armor and resistances matched but that is no excuse to not raise one higher than the other.

So what does this all mean? Here are some examples for various possible characters. A Monk or Barbarian is used for melee class damage reduction of 30% against a 60 enemy.

A noob.
1500 armor
50 resistances
equivelant hitpoints multiplyer = 2.5

Someone tired of dying in hell so got some resistances.
1500 armor
150 resistances
equivelant hitpoints multiplyer = 3.2

Someone doing Inferno Act 1.
3000 armor
300 resistances
equivelant hitpoints multiplyer = 5.7

Someone doing Inferno Act 2.
6000 armor
600 resistances
equivelant hitpoints multiplyer = 12.9

Someone who will nearly never die.
9000 armor
900 resistances
equivelant hitpoints multiplyer = 22.9!!!

And people have been know to have even more.

Notice how the equivelant hitpoints multiplyer between 3000 armor and 300 resistances and 6000 armor and 600 resistances increased by only 7.2 more damage per life. However the same increase of 3000 armor and 300 resistances to 9000 armor and 900 resistances yields an increase of 10 more damage per life.

Thus do not listen to the stupid people online who say too much armor or resistances pointless. The more you have of each, the more you get from them. Every additional point is worth more than the previous point when it comes to armor and resistances if you increase them both.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,199
I still think Monk's passive related to resistance is too strong but i can't test it yet so i will leave it out just as an opinion.
Yes, it was an oversight by Blizzard (they admitted) that they cannot revoke as 75% of Monks would suddenly have broken builds.

Fortunatly the armor times resistance multiplyier for such Monks is kept low since they have all resistances much larger than their armor. If anything the Barbarian has a better modifier as he can get both high armor and high resistances.
 
Level 34
Joined
Sep 6, 2006
Messages
8,873
Every additional point is worth more than the previous point when it comes to armor and resistances if you increase them both.
No they're not. I can't follow your math or your English, so I'm not sure how you came to that conclusion, but the more resistance or armor you have, the less each additional point will up your damage reduction.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,199
but the more resistance or armor you have, the less each additional point will up your damage reduction.
Nowhere did I say it ups damage reduction quadraticly. Damage reduction is a meaningless quantity as it opperates in a non linear way. The difference between 99% and 75% damage reduction allows you to take many times more damage than the difference between 0% and 75% damage reduction. Thus although the amount of damage reduction per point diminishes as numbers increase, the effectiveness of damage reduction increases as the damage reduction increases. This means that the actual effectivness at absorbing damage is completly linear no matter how many points of it you have. The reason it becomes quadratic is the way all resistances and armor interact which results in a product of armor and all resistances being used linearly.

I said it ups equivelent hitpoints quadraticly which is what matters. The larger the armor and all resistances values are, the more equivelent damage a hitpoint per point of either.

Let us ignore the armor and all resistances product by saying we have 0 all resistances (which is impossible in reality).
If you have 0 armor then 1 HP corrosponds to 1 damage absorbed.
If you have 3000 armor and are damaged by a level 60 enemy then 1 HP corrosponds to 2 damage absorbed (50% damage reduction).
If you have 6000 armor and are damaged by a level 60 enemy then 1 HP corrosponds to 3 damage absorbed (66% damage reduction).
If you have 9000 armor and are damaged by a level 60 enemy then 1 HP corrosponds to 4 damage absorbed (75% damage reduction).

Notice how the damage reduction increase rate is lowering as armor increases but the damage absorbed per HP is staying the same. Thus every point of armor makes you HP more effective at the same rate whether you have 0 armor or 12000 armor.

The all resistance with armor multiplyer means that you will gain more absorption per HP if you raise all resistances and armor together. The huge divisior means that at small quantities the gain is neglible however if you start to get to larger numbers (more than 3000 armor and 300 resistances) then it greatly improves the efficiency of damage absorption.

Obviously as a percentage of your current absorption the points do diminish but that is a stupid way to measure performance. Such a comparision is saying that £1 is worth infinity if you have £0 and worth nearly nothing if you have £1,000,000. In reality £1.00 is worth the same at both values.

For reference, a 99% damage reduction corrosponds to 1 HP being able to absorb 100 damage. If this was ever reached it would be meaningless to play Diablo III as nothing will ever be able to kill you even though damage reductions of 90% (1 HP = 10 damage) are possible.
 
Status
Not open for further replies.
Top