Elitist Jerks (http://elitistjerks.com/forums.php)
-   Public Discussion (http://elitistjerks.com/f15/)
-   -   Resistance Mechanics in WotLK (http://elitistjerks.com/f15/t44675-resistance_mechanics_wotlk/)

 Shamgarr 01/30/09 10:42 PM

Resistance Mechanics in WotLK

I personally haven't seen a lot of thorough research into the new resistance mechanics, so thought it would be helpful to post this in a more public forum. The motivation came from discussion in the Druid Sartharion MT thread.

Summary:

1. Partial resists occur in multiples of 10% (not 25% like pre-WotLK).

2. At a given value of resistance, only 3-4 resist percentages are possible.

3. The long-term average damage resisted at a given value of resistance appears to follow the formula

Average Resist = Resistance/(Constant+ Resistance)

For level 80 mobs, the Constant is 400.
For level 83 bosses, the Constant appears to be 510 (pending final confirmation).

4. The possibility of a given partial resist % is eliminated when the average resistance (from the above formula) is 20% higher. This results in the following thresholds for an 83 boss, assuming the constant of 510 is correct:

 Resistance Minimum Possible Resist 128 10% 219 20% 340 30% 510 40% 765 50%

6. All damage reduction / amplification effects (Defensive stance, Power of Shadron) affect only the unresisted portion of damage. All effects are still multiplicative, this simply means that when reviewing logs, the resisted portion in parentheses will be a flat percent of the base damage of the spell, with no other modifications (the exception being the reduction of periodic damage from resilience - this effect is applied before the partial resist check).

7. The probability of each partial resist seems to obey a triangular distribution. Mathematically:

C = Constant (400 for level 80, assumed 510 for 83)
R = Resistance
AR = Average Resist = R/(C+R)

x = Possible Resist. This must take values of 0.10*n, where n is an integer.

The probability of any x is thus

P(x) = 0.5 - 2.5*|x - AR|

or

P(x) = 0.5 - 2.5*|x - R/(C+R)|

Negative probabilities are simply treated as zero. This distribution matches the observed data well.

Graphs and Tables
This graph shows the relationship between resistance and the average amount resisted. These curves follow the formula provided above. As discussed, this average amount resisted determines the probability of any potential partial resist.

The following table lists the resistance amounts (from the above chart) which correspond to each average resist. These amounts are different vs. level 80 and 83 mobs.
 Average Resist Level 80 Level 83 10% 45 57 15% 71 90 20% 100 128 25% 134 170 30% 172 219 35% 216 275 40% 267 340 45% 328 418 50% 400 510 55% 489 624 60% 600 765

This table illustrates the probability of each partial resist at a few common amounts of resistance. These probabilities come from the formula P(x) = 0.5 - 2.5*|x - AR|. The resistance amounts were selected from various combinations of buffs, consumables, and available resistance gear. All values are for a level 83 boss.

The final graph displays the probability of each partial resist, as a function of resistance (for a level 83 boss). This information is the same as that in the previous table, at arbitrary values of resistance between 75 and 765. To read this chart, look on the horizontal axis for the amount of resistance you plan to wear, and trace a vertical line upwards. The curves with non-zero values at this resistance represent the possible partial resists. The magnitude at the intersection represents the probability of this resist.

For instance, at a resistance value of 400, the chart indicates nonzero probabilities for the yellow, purple, red, and light blue curves. These correspond to 60%, 30%, 50%, and 40% partial resists. Visually, the probabilities of each are about 10%, 15%, 35%, and 40%. This can be confirmed with the formula above.

 FalseMyrmidon 01/31/09 12:27 AM

That would explain some of the weird resist numbers I've seen in WotLK.

 Falk 01/31/09 6:26 AM

With item budget going up x2 and the cap (according to the original pre-WotLK formula) only going from 365 to 415 for capped mitigation (75%), this was an expected change... the test/results are really welcome for planning for eventual resist fights.

The most significant change is that unlike the old formula where each additional point of resistance was better up to the cap, the new formula suffers diminishing return. That is, as a simple example, to cut damage by half against a level 80 source, you'd need 400 resist. To cut it by half again, you'd need another 800 resist (where (1200 / 400 + 1200) = 3/4)

This means that the first piece of resist gear is the most valuable in terms of stats tradeoff, compared to resorting to greens to cover that last bit to cap on pre-nerf Shahraz when available SR crafting was limited by trash drops.

That in turn would show how beneficial, say, the 60res bracer LW emboss and other similar-stat-tradeoff FR is for Sartharion.

 TJourney 01/31/09 7:42 AM

Many questions are begged by this thought-provoking data. My primary thoughts concern the previous cap of 75% overall mitigation via resistance, achieved by 5xEnemyLevel Resistance.

I will certainly mull over data parses from Sapphiron on my next kill; with my previous assumption that resistance calculations were unchanged, I had been stating that 415 Frost Resistance would grant 75% mitigation overall and was the cap. This new data begs the further question, is 75% mitigation still the cap for magical damage?

Is it not potential that the cap could have been changed from 75% to an even lower number, with the expectation that players would rely less on resistance? After all, it seems clear that this resistance calculation change was motivated by Blizzard's desire to avoid the "Resistance Fight Gear Ups" of yesteryear, there was public outcry during beta on that specific prospect continuing in WotLK. By adjusting the resistance calculation to make the initial points of resistance the most powerful, they have quite deftly eased the process of gearing an entire raid up for a resistance fight. It seems probable that another motivator is to likewise render near-immunity on the part of the tank to be impossible, instead encouraging a more natural level of mitigation.

Additional data at extremely high levels of resistance, in excess of 500, would be necessary to determine if the cap has changed from 75%

 songster 01/31/09 12:18 PM

Are you sure it's not a symmetrical distribution? While your data is asymmetric, that's not the same thing.

 Shamgarr 01/31/09 12:31 PM

Edit: I've moved my first data into this post, to keep the first post a little cleaner.

What follows is some of the original data used in determining these relationships, some of which is a bit dated. Further data to support the above conclusions can be found in several posts in the thread.

Level 80 Data:

The above chart shows the results of tests at different values of resistance. For each case, the sample size is between 480 and 1300. For those interested, the actual data, in terms of probability of each result, is below.

 FR 0% 10% 20% 30% 40% 50% 60% 70% 54 0.1916 0.4723 0.2953 0.0408 0 0 0 0 100 0 0.2751 0.4988 0.2261 0 0 0 0 300 0 0 0 0.1735 0.4534 0.2985 0.0746 0 350 0 0 0 0.0977 0.3015 0.4449 0.1559 0 399 0 0 0 0.0063 0.2338 0.5324 0.2275 0 429 0 0 0 0 0.2379 0.4368 0.2862 0.0390

This graph shows the average damage resisted for each value of resistance, as well as the proposed relationship of Resistance/(400+Resistance).

The observed mean resist (calculated from the above table), and the predicted mean resist (calculated from this formula) are provided below for each case.

 FR Observed Predicted 54 0.1185 0.1189 100 0.1950 0.2 300 0.4274 0.4286 350 0.4659 0.4667 399 0.4981 0.4994 429 0.5126 0.5175

This data was collected from the Magma in Obsidian Sanctum, which has the advantage of 30 samples per minute. Unfortunately level 80 resist mechanics apply, not 83. It is a plausible assumption that for a boss level mob, the constant in the above formula becomes 415.

Regarding the proposed formulas, the one "problem" case that exists is 100 FR. The predicted mean is 20%, while the observed mean, over a very high number of samples, is 19.5%. If this were the actual mean, 0% resists should still have a 1.2% probability according to the proposed behavior, but this is definitely not the case. Yet, the observed probability of each partial resist matches a distribution centered on 19.5% extremely well, with 0% rolls simply converted to 10% rolls, and added to the probability. This behavior is not observed at lower or higher resists tested, and raises some questions.

Level 83 Data

1424 samples were collected from a 10-man Sapphiron where all players had 75 frost resist. The observed probabilities of each partial resist were

Observed Probabilities:

0%: 0.1699
10%: 0.4305
20%: 0.3272
30%: 0.07233

Average Resist: 0.1302

The predicted average resistance, using a constant of 500, is 0.1304.
The probability of each partial resist agrees well with predictions from the triangular distribution described above:

Predicted Probabilites

0%: 0.1739
10%: 0.4239
20%: 0.3261
30%: 0.07609

Average Resist: 0.1304

42 Samples were taken from Kel'Thuzad's Frostbolt at 430 frost resist. While this is not enough data to draw precise probabilities from, it is important to note that 30% partial resists were observed, effectively ruling out the previous assumption of a constant of 415 for boss level mobs. A constant of 500 fits the data well, again with the caveat of a small sample size.

Original 1/31/09 post:

Added a 5th case, at 399 FR. It seems to confirm the expected cutoff behavior - at 399 FR there remains a very small (~0.5%) chance of a 30% resist. From the nature of the formula, and the 429 FR results, it's fairly safe to presume that 400 FR is the value that eliminates this chance.

Regarding caps, there may simply not be any hard cap on the amount that can be resisted, because the diminishing returns of the new formula does that on its own to an extent. That said, it only takes 601+ resistance to find out if 80% partial resists are possible, or if the formula changes. This is easily achievable with frost atm, though I doubt anyone has actually bothered to acquire gear beyond the polar sets and enchant it with even more frost resist.

As far as remaining things to be found out here, I plan to run more 100 FR cases, because the asymmetrical behavior definitely contrasts that at higher FR. The other data are within confidence bounds of being fit by symmetrical distributions, though the standard deviations aren't clear yet. I'll probably run more tests at low values of resistance to see if the behavior is simply different there, and this would be relevant to cases of only having MotW.

Other than that, the level 80 data is looking pretty predictable and following the proposed formulas, so the main thing is to get actual boss-level data of sufficient sample size. If it can be confirmed that the long-term average resistance is 415/400 times the level 80 expectation, then all the claims based on level 80 values can be fairly safely justified. Alternatively, tests can be run at a "cutoff" value like 104 resistance to verify no 0% resists. Both of these would require quite a large sample pool however, so I'm still trying to think of a boss to mess around with.

 Shamgarr 01/31/09 12:53 PM

Quote:
 Originally Posted by songster (Post 1082136) Are you sure it's not a symmetrical distribution? While your data is asymmetric, that's not the same thing.
Well what kind of escaped me earlier, is that the distributions have to be symmetrical to support the proposed behavior. This means any asymmetry in the data would actually indicate an inaccurate mean value. "Symmetry" is still within the confidence bounds of the 100 FR data, so I'll be running more and seeing if the mean changes at all. If it doesn't, the formula for average resist vs. FR might be slightly different, or have some correction at lower values of resistance, so I'll run tests at other low values.

 Falk 01/31/09 2:36 PM

Quote:
 Originally Posted by TJourney (Post 1082007) Additional data at extremely high levels of resistance, in excess of 500, would be necessary to determine if the cap has changed from 75%
The old 75% cap according to the proposed formula would be 1200 for lv80, not feasible with gear in the game. :P I guess you COULD try lowbie elementals (caveat being they'd have to follow the (x / level*5 + x) graph without any other factors i.e. pertaining to level difference, etc - same deal with boss level mobs) and see where the benefit of additional resistance cuts off (if at all). For all practical purposes though, you won't be able to hit even 60-65% mitigation on meaningful content.

About testing boss-level mobs, I'm wondering if Baron Geddon would be a useful punching bag.

 Mijae 02/01/09 12:59 AM

Quote:
 Originally Posted by Shamgarr (Post 1081786) I personally haven't seen a lot of thorough research into the new resistance mechanics, so thought it would be helpful to post this in a more public forum. The motivation came from discussion in the Druid Sartharion MT thread. Summary: 1. Partial resists occur in multiples of 10% (not 25% like pre-WotLK). 2. At a given value of resistance, only 3-4 resist percentages are possible. Thus, by achieving sufficient amounts of resistance, you eliminate the possibility of partial resists lower than 10%, 20%, etc. 3. The long-term average damage resisted at a given value of resistance appears to follow the formula Resistance/(Level*5 + Resistance) 4. While the average either obeys the above formula, or one extremely close to it, the exact distribution of possible partial resists as a function of Resistance is not yet known. 5. It is suspected that the possibility of a given partial resist % is eliminated when the average resistance (from the above formula) is 20% higher.
You have the formula changing in multiple places. I believe it should be:

Level*5/(Level*5 + Resistance)

 Falk 02/01/09 2:21 AM

x / (5l + x) fits the graph/data perfectly.

5l / (5l + x) implies uh... average damage resisted at 0 resist is 100%?

Edit: 5l / (5l + x) is the average damage taken, not average damage resisted. Both formulae are correct.

 Shamgarr 02/01/09 9:30 AM

Ya the original formula was for damage taken, while all other data/discussion was in terms of damage resisted, so I just went with damage resisted here to hopefully keep things clearer.

 Shamgarr 02/02/09 10:00 PM

Updated with more current stuff

 Prinsesa 02/02/09 10:58 PM

Do we have some established numbers on partial resists based on the level-gap? Given the dearth of actual resist fights in current content, this is probably the most relevant application of the data.

I've heard a 30% figure being tossed around as the average reduction of spell damage against a level 83 boss from these partial resists. Do they still occur in PvP against an even-leveled player, though?

 nightcrowler 02/03/09 8:52 AM

It seems to me that instead of using a 2 roll system, we ca achive the same results using a triangular probability distribution:

P(x) = Theta[P'(x)]

Where:
x is the % of damage taken and can take only 0.1*n value where n is integer
ADT = 5l / (5l + RES) is the average damage taken
Theta is the theta function following the rule Theta(x)=1 if x>=0, Theta(x)=0 if x<0

For example:
from the above table, with 300 FR we axpect a 0.1735 chance to take a 70% breath so:

P(0.7) = 2.5*(0.2+0.5714-0.7) = 0.1785 that is in line with the 0.1735 value for a 30% resist shown on the table.

For low or high end value, the most probable things is that probability distribution is "reflected" along the y-axis with y=0 and y=1 as reflection axes.

 Erdluf 02/03/09 10:07 AM

Quote:
 Originally Posted by Prinsesa (Post 1084873) Do we have some established numbers on partial resists based on the level-gap? Given the dearth of actual resist fights in current content, this is probably the most relevant application of the data. I've heard a 30% figure being tossed around as the average reduction of spell damage against a level 83 boss from these partial resists. Do they still occur in PvP against an even-leveled player, though?
I don't see partial resists against level 80 targets.

For a level 83 target, let's assume:

- 15 resist (=5 * level difference)
- The two-roll system described in the top post is used.
- Rolls that would imply -10% resistance are converted to 0% resistance.

15 resist = 15/415 average resist = 3.6145% average resist (before converting -10% resists into 0% resists).

The two-roll system for a 3.6145% resist would have

9.0% of attacks would be 20% resisted.
34.0% of attacks would be 10% resisted.

The remaining attacks would have either 0% resist, or -10% resist (converted to 0% resist).

Overall, 43% of attacks would show a non-zero resist. The average resist over all attacks would be 5.2%. I'm not sure this is out-of-line.

Looking just at Insect Swarm from a recent Archavon raid (152 ticks)

37 ticks (24%) had 10% resist.
25 ticks (16%) had 20% resist.

Average resist was 5.7%. Obviously this is a small sample, but the numbers seem to not be terribly unreasonable.

If this model is accurate, the first point of resistance (or resistance - penetration for PvP) has a much larger than expected impact. 1 point of resistance should convert into 1/401 = 0.25% damage resisted. However the two-roll system (moving -10% resists to 0% resists) would leave you with about 2.69% damage resisted. The "advantage" declines until you reach 10% resistance (at just under 45 resist).

All times are GMT -4. The time now is 2:56 AM.