MMO News and theorycrafting for advanced MMO gamers. News and articles that relate to your gameplay. World of Warcraft, SWTOR, Guild Wars 2, Rift, TERA, Eve Online, Star Wars the Old Republic, Diablo3, The Secret World and all Western AAA MMOs

Hello There, Guest! Register

 Tanking Stat Distribution Analysis
02-10-2012, 11:48 AM (This post was last modified: 02-10-2012 03:20 PM by Agrath.)
Post: #1
 Agrath Junior Member Posts: 8 Joined: Jan 2012 Reputation: 0
Tanking Stat Distribution Analysis
Tl;dr Hey look! I made graphs that tell you the optimal tanking stat distribution per class. Looks like things are reasonably well balanced in terms of tanking class comparison. Check out the mean mitigation calculator too. Here are some pictures. Here is the excel spreadsheet (hosted by dropbox).

Tanking Stat Distribution Analysis

Hello!
After reading around on the tanking forums, I heard a lot of suggestions about the optimal ways to gear a tank. However, I saw a few problems in that 1) the advice varied a great amount and 2) the optimal way to gear one tank class is different from the optimal way to gear another tank class. So I got curious and decided to enter into the realm of theoryocrafting. It turns out that my analysis also happened to calculate all of the required values to determine tanking mitigation scaling, so I made the appropriate graphs.

I decided to solve this problem via brute force due to the relative ease of brute force programming vs the complexities of programmatically solving for three variables (defense rating, shield rating, absorb rating – please note that Damage reduction does not have an effect on optimum stat ratios). Not the smartest solution, but hey – computation is cheap.

As a starting point for this problem, I used Gankstah’s “Tanking: A Primer – FAQs.” Gankstah’s guide is very good in relating the theory behind tanking. It also shows a great way to compare tank performance – though mean mitigation. This analysis is an extension on Gankstah's mean mitigation work. I, along with Gankstah (for the most part) neglected showing empire/republic name translations. There are plenty of other guides for that.

I used MATLAB as a tool to calculate the values and determine the best one. The code is posted at the end of the guide.

Using the values returned by MATLAB, I made an excel spreadsheet to better relay the data.
The spreadsheet is also hosted via dropbox here.
And attached here (look below) (requires username to download). Unfortunately, I had to break it up into two documents because there's a 1mb limit.

I also took screenshots and made an album at imgur for those that didn’t want to download the excel file (and use the calculator).

If you have a better way to host this, please tell me!

The first section (Individual Mean Mitigation Calculator) is intended to be used to calculate the mean mitigation of any tank up to T3 gear. Please note that the mitigation calculations vary widely per class, so make sure data is entered into the block of the corresponding class.

The next section (class comparison) is a tanking class comparison based on the current state of the game. The data behind these graphs are in the next three sections. As a way to measure scaling, I used the value of total stats (i.e. defense rating + shield rating + absorb rating). This way, it is independent of fixed gear sets, and is much more flexible. You should take away from this that the tanking classes are pretty well balanced (with SA and BH having a slight advantage over SW) - not that X class is better than the others. Gear choices can easily outweigh the default class mean mitigation advantages. To compare tanks, use the calculator in the spreadsheet, not these comparison graphs.

Note that in this analysis I only considered level 50. Sure, I could have made a 3D contour plot of level vs. total stats vs. mean mitigation, but nah. That being said, this analysis is probably a good approximation of optimal stat distribution pre-50.

The next three sections look at each class specifically and calculate the optimal stat distribution for each total value of stats. Note that only the class specific debuffs (at least, ones that increase mitigation) are accounted for, per class (i.e. Sith Assassin doesn’t get combust bonus, only BH does). On this topic, BH has combust (4% damage reduction) and oil slick (6.66% overall avoid), SA has discharge (5% avoid) and wither (5% damage reduction), and SW has smash (5% damage reduction) for debuffs. This makes the Sith assassin or BH the best off-tank (in terms of mitigation) because they can provide the most damage reduction through debuffs.

In the case of the SA, the 2pc bonus gives 5% shield, which changes the optimal stat distribution per value of total stats. Make sure to use the appropriate graph. (SA with 4 piece bonus: also use the 2 piece bonus graph).

Apparently SW got screwed and need a LOT of defense for optimum mean mitigation. This is really hard to gear for because there is not much top tier gear choice in this game (yet I hope). I decided to calculate a realistic model (capping defense at 500) so that the information was more relevant. SWs, please let me know if you need a graph capped at a lower value.

Note that it may be difficult to get the optimum stat distribution in game because the gear selection/mod-ability is very limited. However, you will still gain mean mitigation increases by getting closer to these values/ ratios.

Please verify my findings and alert me if I made any mistakes. I will try to stay up to date with this project and correct any errors.

Please feel free to re-post this guide to other forums and websites- I just ask that you include my name :]

Agrath
Prophecy of the Five

And now some MATLAB code:
Brute Force Process (hah, this takes 15 minutes to run):

Code:
```function [dataholder] = bestMitigation( DR)%,twopc, fourpiece)     totalcomputions = 100;     dataholder = zeros(5,totalcomputions);     dataholder(1,: )=1:totalcomputions;     for n=1:totalcomputions         bestmit = 0;         bestavoid = 0;         bestshield = 0;         bestabsorb = 0;         n         tic         if (n>=825)             m=825;         else             m=n;         end         for av=0:m             if(m>=800)                 k=800;             else                 k=m;             end             for s=0:k                                           mit=mitigationSA(av,s,n-s-av,DR);                      if ((mit> bestmit)&&((n-s-av)<=425))                     bestmit = mit;                     bestavoid = av;                     bestshield = s;                     bestabsorb = n-s-av;                 end                                     end         end         toc         dataholder(2,n)= bestmit;         dataholder(3,n)= bestavoid;         dataholder(4,n)= bestshield;         dataholder(5,n)= bestabsorb;     end     end```

Bounty Hunter Mitigation Calculation:

Code:
```function [ mitigation ] = mitigationBH( avoid, shield, absorb, DR)     %4pc bonus     DR = DR+.02;     % assume 4% reduced damage from combust (assume up all times, tanking single     % boss)     DR=DR+.04;     %assume level 50     %BH have 5% base     avoid = (30*(1-(1-(0.01/0.3))^((avoid/50)/0.55))+5)/100;     %BH have 15% shield from stance, 10% shield from Empowered Tech     %5% from shield generator.     %2% from shield vents     shield = (50*(1-(1-(0.01/0.5))^((shield/50)/0.32))+15+10+5+2)/100;          %BH have 6% absorb from talents/skills (Ablative Upgrades)     %20% from shield generator     absorb = (50*(1-(1-(0.01/0.5))^((absorb/50)/0.18))+20+6)/100;               mitigation=(1-((1-avoid)*(1-DR)*(shield*(1-absorb)+(1-shield))));          end```

Sith Assassin Mitigation Calculation:

Code:
```function [ mitigation ] = mitigationSA( avoid, shield, absorb, DR)     %assume level 50     % assume 5% reduced damage from wither (assume up all times, tanking single     % boss)     DR = DR+.05;     %4piece bonus     %DR = DR+.02;          %SA have 10% base + 6% from talents/skills (Premonition + Lightning     %Reflexes)     % avoid +5% with discharge (assume up all times, tanking single boss)     avoid = (30*(1-(1-(0.01/0.3))^((avoid/50)/0.55))+10+6+5)/100;          %SA have 15% shield from Dark Charge, 15% shield from Dark Ward     %5% from shield generator.     %two piece tanking set gives +5% shield chance.     %4piece bonus         %shield = (50*(1-(1-(0.01/0.5))^((shield/50)/0.32))+15+15+5+5)/100;     %0piece         shield = (50*(1-(1-(0.01/0.5))^((shield/50)/0.32))+15+15+5)/100;     %end     %SA have 4% absorb from talents/skills (Hollow)     %20% from shield generator     absorb = (50*(1-(1-(0.01/0.5))^((absorb/50)/0.18))+20+4)/100;               mitigation=(1-((1-avoid)*(1-DR)*(shield*(1-absorb)+(1-shield))));               end```

Sith Warrior Mitigation Calculation:

Code:
```function [ mitigation ] = mitigationSW( avoid, shield, absorb, DR)               %assume level 50     %SW have 5% base + 12% from talents/skills (Guard Stance + Blade Barricade)     % avoid +5% with smash (assume up all times, tanking single boss)     avoid = (30*(1-(1-(0.01/0.3))^((avoid/50)/0.55))+5+12+5)/100;     avoid=avoid+.5;     %SA have 15% shield from Stance, 4% shield from Shield Specialization     %5% from shield generator.     %two piece tanking set gives +5% shield chance.     shield = (50*(1-(1-(0.01/0.5))^((shield/50)/0.32))+15+4+5)/100;               %20% from shield generator     absorb = (50*(1-(1-(0.01/0.5))^((absorb/50)/0.18))+20)/100;               mitigation=(1-((1-avoid)*(1-DR)*(shield*(1-absorb)+(1-shield))));               end```

Attached File(s)
02-10-2012, 11:58 AM
Post: #2
 LagunaD Contributor Posts: 344 Joined: Nov 2011 Reputation: 6
RE: Tanking Stat Distribution Analysis
Possibly of interest:

There is no "crit immunity" in TOR. The effect of attacker criticals can be simulated with no difficulty.
02-10-2012, 07:58 PM (This post was last modified: 02-11-2012 01:25 AM by Alratan.)
Post: #3
 Alratan Administrator Posts: 507 Joined: Aug 2011 Reputation: 5
RE: Tanking Stat Distribution Analysis
That SJ < SA intrigues me, especially the extent of it, although the PT > SA/SJ doesn't (even if minor).

Some questions, requests and ideas:
• What DR% did you assume for your class comparisons - the one listed in the .xls? If so, how did you come to those percentage values? I ask as my SA has DR 42.56% in Dark Charge, and I have only 2 Rakata armour pieces, whilst the spreadsheet gives a DR of 39.86% for the SA.
• How are you calculating Dark Charge heals? This is specifically important given that there are anecdotes suggesting that it procs more often than the ICD would suggest. Similarly, how much overheal did you assume for the proc, if any?
• Have you taken into account the recent patch which has increased the frequency of Force Lightning, and thus the frequency of 12% self-heals?
• For cooldown usage (on all classes), did assume that they were fully effective for 100% of their uptime? I often find that emergency abilities are very useful when first used, and then the emergency passes and their value lessens as overheals flood in.
• Can you create a similar comparison between classes, giving a PT/SJ the benefits of Wither/Discharge?
• Can you create a similar comparison between classes using their actual stat distribution rather than their optimal (preferably within the same graph as the normal comparison)? Would be good to see how it looks in practice, and how much this differs from the ideal for each class.
Post: #4
 LagunaD Contributor Posts: 344 Joined: Nov 2011 Reputation: 6
RE: Tanking Stat Distribution Analysis
D'oh. Too many names starting with "A"...nevermind...

02-11-2012, 02:11 AM (This post was last modified: 02-11-2012 02:23 AM by Alratan.)
Post: #5
 Alratan Administrator Posts: 507 Joined: Aug 2011 Reputation: 5
RE: Tanking Stat Distribution Analysis

In this case, I was discussing the optimimum mean class comparison graphs posted by Agrath, which claim to include cooldown and (self-)healing.

In order to form an accurate comparison of optimal gear between classes, one must also compare optimal stats. In the Tanking Stat Distribution Analysis (Individual Mean Mitigation Calcualtor), there is a DR% listed for each class, and I was wondering how these values were derived, and if they were used in the final comparison.

Furthermore, the way DC/FL heals are modelled affects how valid the comparisons are, as they can easily be overstated due to the poetntial to overheal.
02-11-2012, 02:18 AM (This post was last modified: 02-11-2012 02:31 AM by Neokarasu.)
Post: #6
 Neokarasu Respected Member Posts: 128 Joined: Dec 2011 Reputation: 1
RE: Tanking Stat Distribution Analysis
(02-10-2012 07:58 PM)Alratan Wrote:
• What DR% did you assume for your class comparisons - the one listed in the .xls? If so, how did you come to those percentage values? I ask as my SA has DR 42.56% in Dark Charge, and I have only 2 Rakata armour pieces, whilst the spreadsheet gives a DR of 39.86% for the SA.
• How are you calculating Dark Charge heals? This is specifically important given that there are anecdotes suggesting that it procs more often than the ICD would suggest. Similarly, how much overheal did you assume for the proc, if any?
• Have you taken into account the recent patch which has increased the frequency of Force Lightning, and thus the frequency of 12% self-heals?
• For cooldown usage (on all classes), did assume that they were fully effective for 100% of their uptime? I often find that emergency abilities are very useful when first used, and then the emergency passes and their value lessens as overheals flood in.
• Can you create a similar comparison between classes, giving a PT/SJ the benefits of Wither/Discharge?
• Can you create a similar comparison between classes using their actual stat distribution rather than their optimal (preferably within the same graph as the normal comparison)? Would be good to see how it looks in practice, and how much this differs from the ideal for each class.

Dark Ward is taken as 100% uptime:

Code:
```%SA have 15% shield from Dark Charge, 15% shield from Dark Ward     %5% from shield generator.     %two piece tanking set gives +5% shield chance.     %4piece bonus         %shield = (50*(1-(1-(0.01/0.5))^((shield/50)/0.32))+15+15+5+5)/100;     %0piece         shield = (50*(1-(1-(0.01/0.5))^((shield/50)/0.32))+15+15+5)/100;```

No long cooldown (Deflection, Saber Ward, etc.) is taken into account.

None of the self-heal is taken into account if you look at the SA code. It is essentially the EDR (1 - "Squishiness") calculation that we've done previously and the result can be seen in Laguna's thread.

I mean, it's a good work but it's essentially nothing new.

LagunaD Wrote:To include the effect of Wither on any class, multiply Squishiness by 0.95.

Code:
```% assume 5% reduced damage from wither (assume up all times, tanking single     % boss)     DR = DR+.05;```

I think multiplicative makes more sense.

My compilation of stuff
02-11-2012, 03:44 AM (This post was last modified: 02-11-2012 03:47 AM by Coriolis.)
Post: #7
 Coriolis Member Posts: 54 Joined: Jan 2012 Reputation: 0
RE: Tanking Stat Distribution Analysis
Being a jugg and having played with Laguna's spreadsheet alot, the results are not suprising. Our crappy set bonuses and the lack of options for def gear are definetly a problem relative to assasins (haven't looked at PT set bonuses).

However, I do think that our superior activated cooldowns somewhat make up for our lower base mitigation. The problem with those is that their worth is not easily judged by such an analysis. Although you could just throw them in multiplying their effect by the ratio of the time they are up by their c/d - that would underestimate their effect, but at least it would put it in there in some form.

Wither would have to be multiplicative since it's applied to the boss's damage instead of your own DR. Should only add with other damage reducing abilities (which is only other wither's as far as I know). That should lower assasin DR a bit.

As for self-heals - if you're going to do that you should also include the absorb shield from force scream for SW. Should be easier to do since it doesn't overheal and it's only limited by C/D and (and rage, but that is usually not too much of an issue). I wouldn't bother though, the mitigation from such abilities is not going to be an apples to apples comparison to mitigation from def/absorb, since the effective % reduction depends on how hard the boss hits, and hence depends upon the encounter.

Dorfl/Coriolis of No One Cares, Shadow Hand
02-11-2012, 04:48 AM
Post: #8
 Agrath Junior Member Posts: 8 Joined: Jan 2012 Reputation: 0
RE: Tanking Stat Distribution Analysis
(02-10-2012 07:58 PM)Alratan Wrote:  That SJ < SA intrigues me, especially the extent of it, although the PT > SA/SJ doesn't (even if minor).

Some questions, requests and ideas:
• What DR% did you assume for your class comparisons - the one listed in the .xls? If so, how did you come to those percentage values? I ask as my SA has DR 42.56% in Dark Charge, and I have only 2 Rakata armour pieces, whilst the spreadsheet gives a DR of 39.86% for the SA.
• How are you calculating Dark Charge heals? This is specifically important given that there are anecdotes suggesting that it procs more often than the ICD would suggest. Similarly, how much overheal did you assume for the proc, if any?
• Have you taken into account the recent patch which has increased the frequency of Force Lightning, and thus the frequency of 12% self-heals?
• For cooldown usage (on all classes), did assume that they were fully effective for 100% of their uptime? I often find that emergency abilities are very useful when first used, and then the emergency passes and their value lessens as overheals flood in.
• Can you create a similar comparison between classes, giving a PT/SJ the benefits of Wither/Discharge?
• Can you create a similar comparison between classes using their actual stat distribution rather than their optimal (preferably within the same graph as the normal comparison)? Would be good to see how it looks in practice, and how much this differs from the ideal for each class.
• I started with Gankstah's values he used here. I then scaled these based on the ratio between them to get more accurate mean mitigation with the current level of gear. I used SA = .4, SW = .4414257, BH = .5091515. The excel spreadsheet now accurately represents this as the default values.
• I assumed 1000 (total, non-effective) healing per 12 seconds. All percentage based heals were assumed to have 20000 health base. I assume a 12% lightning heal every 18 seconds. I the graphs represent realistic healing, meaning that I only counted half of it (50% overheal for all heals). If you think this is too low, tell me.
• I didn't. So I updated it. So now it does. (before: 12% lightning heal every 36 seconds, now, every 18 seconds)
• I considered them effective for the full duration. I'm looking at mean mitigation, not heal-ability. I also did not factor in any routine damage heavy times. Had I done so, the classes with the best ratio of w/cooldowns to w-out/cooldowns would do even better than represented. Note that these ratios would scale with the total number of defense stat (defense rating + shield rating + absorb rating). However, in general, the ratios suggest that SW would have the most benefit from this (~6%), then SA (~4.2%), then BH (~3.9%). <-- take these relatively (e.g. SW gets 50% more benefit from it than BH). Note that these ratios decrease as total stat increases.
• I did, check out the calculator ('offtank in group?' field). Sorry, I didn't make graphs for this because there would be a lot. I'll might get around to it, eventually.
• Only the SW has a realistic and ideal stat distribution. I did make a plot of that. If you're talking about realistic vs. ideal for things like healing, shields, etc., the charts do use the realistic model currently. (tell me if i'm not understanding you correctly).

Quote:Dark Ward is taken as 100% uptime:
correct. If geared correctly it doesn't fall off too too often... Tell me if you want me to change that.
Quote:No long cooldown (Deflection, Saber Ward, etc.) is taken into account.
You're right, not for the optimum stats charts, whoops.
Note that +DR cooldowns DO NOT change optimum stat distribution. Cooldowns that give +% to defense would, however.
It is taken into account for the calculator.
Quote:None of the self-heal is taken into account if you look at the SA code.
Correct. It's done after the fact in excel.

Quote:
To include the effect of Wither on any class, multiply Squishiness by 0.95.

Code:
```Code: % assume 5% reduced damage from wither (assume up all times, tanking single     % boss)     DR = DR+.05;```

I think multiplicative makes more sense.

I was following the way Gankstah did additions to defense%.
If this is not the case, tell me. It's an easy change (DR does not affect optimal stat distribution).
(02-11-2012 03:44 AM)Coriolis Wrote:  Wither would have to be multiplicative since it's applied to the boss's damage instead of your own DR. Should only add with other damage reducing abilities (which is only other wither's as far as I know). That should lower assasin DR a bit.
and BH DR (i did it the same way).

(02-11-2012 03:44 AM)Coriolis Wrote:  As for self-heals - if you're going to do that you should also include the absorb shield from force scream for SW. Should be easier to do since it doesn't overheal and it's only limited by C/D and (and rage, but that is usually not too much of an issue). I wouldn't bother though, the mitigation from such abilities is not going to be an apples to apples comparison to mitigation from def/absorb, since the effective % reduction depends on how hard the boss hits, and hence depends upon the encounter.
I did. that's why it says "w/ sonic barrier"
02-11-2012, 08:10 AM (This post was last modified: 02-11-2012 08:11 AM by Pijinz.)
Post: #9
 Pijinz Respected Member Posts: 16 Joined: Dec 2011 Reputation: 3
RE: Tanking Stat Distribution Analysis
(02-11-2012 04:48 AM)Agrath Wrote:  I was following the way Gankstah did additions to defense%.
If this is not the case, tell me. It's an easy change (DR does not affect optimal stat distribution).

I'd always presumed multiplicative, but this should be easy enough to test. Do it in a duel so you know the targets armour/DR exactly, then use a DoT with the same damage per tick, or (my favourite) Force Lightning (same damage per tick, and mitigated by armour).

Edit: Oh btw, fantastic work. Thanks for posting ^^
02-12-2012, 09:57 AM
Post: #10
 Layotees Junior Member Posts: 4 Joined: Feb 2012 Reputation: 0
RE: Tanking Stat Distribution Analysis
While it makes next to no difference mitigation wise, the numbers on Sonic Barrier are a little off. My recorded testing has shown that it's values are roughly 700 without the set bonus and 850 with, as posted here: http://sithwarrior.com/forums/Thread-Imm...8#pid13808

Otherwise, great post.
 « Next Oldest | Next Newest »

Forum Jump:

User(s) browsing this thread: 1 Guest(s)