Jump to content

Effective HP: A (very) Poor Metric in TOR


KeyboardNinja

Recommended Posts

Update: Corrected some of the probability munging.

 

Time for more theory-crafting with Tam! Today on the menu we have the question of "effective HP": what is it, and do we really care? For those of you who already know what it is, skip to the "do we care" section.

 

Definition

 

Effective HP is basically a measurement of how much "worst case buffer" a tank has. Some of a tank's defenses are RNG-based, such as defense and shield. Also, certain attacks will bypass some or all of a tank's defenses. Thus, there are scenarios in which a tank is literally just a meat shield, absorbing damage with a (slightly) deeper health pool than the rest of the raid. Effective HP is a measurement of just how good of a meat shield a particular tank is.

 

The obvious starting point when measuring something like this is the amount of hit points a tank has. Let's take 26k as a pretty average number. This is an immediate buffer that is easy to reason about, but it's not the whole story. Even when RNG defenses fail to proc, or when attacks are bypassing said defenses, tanks still have forms of mitigation which will reduce the incoming damage by a certain percentage. We need to consider those as well.

 

Taking my shadow tank main as an example, we have two forms of static mitigation to consider: armor and resistance. Armor is the "Damage Reduction" percentage in your character sheet, and it is a static reduction applied post-shield to incoming kinetic/energy damage. It does not apply to internal/elemental damage (e.g. Scream in TFB HM, or Stormcaller in EC HM). Resistance is really the internal/elemental analog of armor. This is usually much lower than the damage reduction, but that's ok, since very little endgame damage is internal/elemental!

 

My shadow has the following numbers (with stim):

 

  • HP: 26588
  • Armor: 40.48%
  • Resist: 23%

 

If we consider TFB HM, EC HM and Nightmare Pilgrim, we can determine the ratio of damage that is kinetic/energy vs internal/elemental. This will be important in determining exactly how heavily to weight armor vs resistance in our calculations:

 

  • Kinetic/Energy: 71.80 + 18.78 = 90.58%
  • Internal/Elemental: 9.41%

 

Thus, our net static damage reduction can be computed as follows:

 

0.9058 * armor + 0.0941 * resist

 

In the case of my shadow, this works out to:

 

0.36666784 + 0.021643 = 0.38831084

 

That is to say, 38.83%. As a shadow, this is by far the lowest static, non-RNG mitigation you will see. (which is part of why I'm using my shadow as an example)

 

Now, we need to somehow calculate the total, effective health pool for my shadow, assuming that 38.83% of incoming damage is negated, and thus not subtracted from our hit points. This can be done with the following bit of algebra:

 

(1 - 0.3883) * x = 26588

 

Another way of putting this would be to ask "what is the smallest hit required to completely deplete my HP?" The answer to this question is:

 

43466 HP

 

So that's a lot of effective HP. Note that this is actually not the whole story, since shadows have a self-heal. As long as we aren't completely stunned while the boss beats on us, we will be healing back damage at a rate of (roughly) 160 HPS. If we wanted to really get the full picture, we would take this into account. For simplicity's sake, we will skip the self-heal for now and simply consider the naive effective HP calculation.

 

Do we care?

 

Effective HP (eHP) is a way of looking at tank performance under an absolutely worst case scenario. Basically, the scenario in question is where all RNG-based defenses are failing to proc…consistently. How well will the tank do under those circumstances?

 

It's a really good idea to be thinking about this sort of situation, since tanks don't die under "normal" raid conditions. They die under worst-case conditions. So, optimizing for effective HP is really an attempt to stave off death just a little longer, at least in the worst-case scenario.

 

Here's the problem: optimizing for eHP means deemphasizing RNG-based defenses, like shield and absorb. Since there is no way to stack armor rating in TOR, the only real way to optimize for eHP is to stack Endurance, and a lot of it. This results in a lower shield chance, a lower absorb percentage, and a much lower defense chance. This in turn means that the average mitigation of the tank in question drops precipitously, meaning that they require a much higher HPS (from the healer) to keep them alive.

 

So that's the tradeoff. Here's the question: is the tradeoff worth it? The answer is: it depends. Really, it depends on two things: how common is the worst case scenario, and just how bad is it when it happens? Fortunately, given boss DPS numbers and swing-timers, we are actually able to answer that question with comparative ease.

 

Considering just EC HM, TFB HM and Nightmare Pilgrim, here are the average (pre-mitigation) DPS and swing timers:

 

  • Average DPS: 2408
  • Average swings/sec: 0.0703631
  • Max swings/sec: 0.86533

 

The reason for the excessive long-tail in the set of boss swing timers stems from the fact that most bosses have a lot of very small, very infrequent attacks. Middle-of-the-road attacks tend to be very frequent, with extremely large attacks (e.g. TFB's Scream) being extremely infrequent. Going with a somewhat sane estimate within the bounds of these metrics, we can say that the really interesting attacks are going to be somewhere in the realm of 0.5 swings/second. This indicates that the average hit is 4816, which seems within the realm of plausibility.

 

Ok, so here's the golden question: how many hits is it going to take at 4816 per hit to bring down our tank, assuming all RNG-based mitigation is failing? The answer to this question is very closely related to time-to-live (TTL), but actually more useful for the purposes of probability munging:

 

43466 / 4816 = 9.025 ~ 10

 

Since we can't have an "0.025th of a hit", we round up to 10. With a swing timer of 0.5/sec, that gives us a TTL of 20 seconds. Now, right away, we're running into interesting results, because 20 seconds is a very long time. A very, very, very long time. Doesn't seem too concerning at face value, but let's press on.

 

Here's the money question: what is the probability of the "worst case scenario"? This turns out to be a fairly easy question to answer. My shadow has a shield chance of 65.28% (with Kinetic Ward) and a defense chance of 28.77%. These are my RNG-based mitigation mechanisms. We also need to consider the fact that only 71.80% of damage in EC/TFB/NMP is subject to defense/shield. Given all of that, the probability of both shield and defense failing on a single attack is as follows:

 

0.7180(1 - 0.2877)(1 - 0.6528) + (1 - 0.7180) = 0.4595

 

So, 45.95%. Those are comparatively high odds, but remember, that's only the probability of a single attack passing through all of my RNG-based defense. What is the probability of the full-on, worst case scenario from above? In other words, what is the probability that 10 consecutive attacks somehow pass through my shield and defense? Well, this is also fairly easy to calculate. Shadows have no abilities that affect shield or defense chance based on whether or not an attack has been shielded/defended (aside from the Kinetic Ward rate limit, which is a non-issue due to swing timer). In fact, none of the tanks have such a mechanism. Thus, each shield/defend event is independent, and the probability of 10 such events failing consecutively is simply the probability of one event failing raised to the 10th power:

 

0.4595 ^ 10 = 0.0004196

 

This is to say, my shadow has a 0.042% chance of hitting a worst case scenario. A worst case scenario which is, btw, 20 seconds in duration.

 

(for those interested, here is a graph which indicates the curve along which the probability falls of consecutive failed procs over a span of time approaching 10 seconds)

 

The average boss fight in TOR is about 390 seconds (6.5 minutes). That's 185 overlapping 20 second periods in which a worst-case scenario may be taking place. The algebraic leg-work required here is somewhat...involved, but the answer works out to 0.091%. With five bosses per instance, we're up to 0.45% odds that you will see a worst case scenario in any given raid.

 

Let's extend this a bit further. Let's imagine that your group clears 10 bosses a week (TFB HM, EC HM and Nightmare Pilgrim). That's 0.913% odds per week of a worst-case scenario. This means that from a purely statistical standpoint, you would need to raid in TOR for 2 years, 1 month and 1 week to see a worst case scenario…once.

 

A worst case scenario that requires a full 20 seconds to bring down your tank.

 

Granted, you might not one-shot every boss. Maybe you require an average of 2.5 attempts per boss. that's still about 10 months of raiding before you see your first "worst case" scenario.

 

Conclusion

 

From a purely statistical standpoint, we have answered two questions here.

 

  • Q: How bad is the worst-case scenario? A: Not very. 20 seconds is enough time for a single healer to put out 40k worth of healing. That's almost the full effective HP of the tank in question. Oh, and that's just one healer. 8 man raids have two; 16 man raids have four. As long as they're not dead, mind trapped, AFK or similarly incapacitated, they probably won't even notice the "worst case" scenario.
  • Q: How common is the worst-case scenario? A: Much less than you would think. 0.45% odds per raid. If you keep raiding long enough, you'll see it eventually. Maybe. If you're paying attention. More than likely you'll just heal through it, down the boss and collect your loot.

 

Now, the counter-argument does exist that these sorts of statistical simplifications are less relevant in a progression setting. All of my numbers above are making the implicit assumption that you have these bosses on farm (e.g. not taking unnecessary damage, not requiring a dozen attempts per night to down the boss, etc). This is true. However, those assumptions really only have a significant effect on the probability of the worst-case scenario happening in any given raid. According to my combat logs, the healing I require in a progression setting does not differ significantly from the healing I require once the boss is on farm. Thus, I think we can assume that the damage numbers and swing timers aren't being significantly affected by our fight proficiency. This in turn means that the severity of the "worst case scenario" is not any more dire in a progression environment. Twenty seconds! That's almost the half the cooldown on Resilience!

 

Even assuming the tank archetype with the least effective HP (shadow/assassin), and even discounting important non-RNG survivability mechanics like the self-heal, I still have a hard time seeing how a "worst case scenario" poses a significant threat. It almost never happens, and even when it does, it really doesn't pose a problem. The reason for this stems from the fact that bosses in TOR simply don't hit very hard.

 

In conclusion, I would say that while effective HP may be an important metric in games like WoW or RIFT where tanks take a serious beating in every fight, I don't think it really merits concern in TOR. Bosses don't hit very hard, and RNG-based mitigation procs at a comparatively high probability.

 

As a tank, you should be itemizing for mitigation. I don't think there is a plainer way to put it. Big, juicy health pools are fun, and they certainly make for a great vanity stat for group finder randoms, but in the end you are doing your raid group (and especially your healers) a disservice if you prioritize effective HP over mean mitigation.

 

(note: data for this post was drawn from this spreadsheet, which was assembled from my own combat logs as a progression tank)

Edited by KeyboardNinja
Link to comment
Share on other sites

Overall, I agree. My only disagreement is on the progression point.

 

As tanks, you and I, may not take much extra damage during progression. We have sufficient mitigation to handle a few extra hits from a circle or what have you and most mechanic based things are one-shots. On the other hand, DPS can take a serious beating if they aren't performing their mechanics properly and can chew up a sizeable share of the healer's time during which, increased TTL is great.

 

However, I'm of the opinion that mitigation is generally the better option than endurance for the above scenario. I mean, what are the odds of the 10 hits coinciding with a DPS standing in the stupid and the raid still succeeding?

 

I'd also suggest tweaking the 'death threshold' to 9 unmitigated hits. Given that even if the 10th hit is shielded (but not when defended) it is still going to kill the tank. Arguably, shielding 1 hit and not defending any in a period of 10 hits is still going to kill you, be it the first, middle or last hit. But for the sake of simplicity I'd stay with 9 sequential unmitigated hits. This gives a probability of 0.00091321.

 

I think you've made an error using 19.5 distinct time periods as well, the chance of seeing the worst case scenario is much higher than you have stated. It is possible for a string of hits to occur at any point after the last mitigated swing providing that there are still a sufficient number of swings remaining in the encounter.

 

Given the average encounter (using your numbers) has 195 swings, the string must begin before or on the 186th swing. as such, the probability of it not occurring in the hypothetical average fight is more like:

0.99908679 ^ 186 = 0.84372028

This gives a 0.15627972 chance of a string of 9 unmitigated hits occurring in an average fight. As such, doing 10 bosses a week you have about an 80% chance to see it each week. However, as Tam sated, its not really noticeable most of the time.

 

I do feel the need to say I am not 100% confident in my formula above. The problem is MUCH MUCH more complicated than it appears.

 

On another note, I also feel this discussion benefits more from keeping E/I eHP and K/E eHP separate since eHP has much much greater value in E/I heavy fights. Not to the point that I would ignore mitigation, but the relative value is definitely skewed. Although I do see the benefits of using a hybridised figure for fights that use both damage types relatively evenly (up to about 70:30 split), but I'd personally calculate it on an encounter by encounter basis using the excellent spreadsheets you've provided.

Link to comment
Share on other sites

I'd also suggest tweaking the 'death threshold' to 9 unmitigated hits. Given that even if the 10th hit is shielded (but not when defended) it is still going to kill the tank. Arguably, shielding 1 hit and not defending any in a period of 10 hits is still going to kill you, be it the first, middle or last hit. But for the sake of simplicity I'd stay with 9 sequential unmitigated hits. This gives a probability of 0.00091321.

 

I thought about that, but then we get into dicy arguments about "odds that you shield, but not defend", etc. It's not really effective HP anymore; it's more like expected TTK. This is, arguably, a more interesting metric, but also one that is much harder to work with. It also would tend to lengthen the TTK (due to lower expected damage) rather than shorten it as you suggest.

 

I think you've made an error using 19.5 distinct time periods as well, the chance of seeing the worst case scenario is much higher than you have stated. It is possible for a string of hits to occur at any point after the last mitigated swing providing that there are still a sufficient number of swings remaining in the encounter.

 

Given the average encounter (using your numbers) has 195 swings, the string must begin before or on the 186th swing. as such, the probability of it not occurring in the hypothetical average fight is more like:

0.99908679 ^ 186 = 0.84372028

This gives a 0.15627972 chance of a string of 9 unmitigated hits occurring in an average fight. As such, doing 10 bosses a week you have about an 80% chance to see it each week. However, as Tam sated, its not really noticeable most of the time.

 

I'm not sure about that expression. Need to think about it. Seems like you're double-counting things.

 

On another note, I also feel this discussion benefits more from keeping E/I eHP and K/E eHP separate since eHP has much much greater value in E/I heavy fights. Not to the point that I would ignore mitigation, but the relative value is definitely skewed. Although I do see the benefits of using a hybridised figure for fights that use both damage types relatively evenly (up to about 70:30 split), but I'd personally calculate it on an encounter by encounter basis using the excellent spreadsheets you've provided.

 

Ideally, all theory-crafting would be done on a fight-by-fight basis (or even phase-by-phase). The problem is that I don't know anyone who remods their gear between fights. Even doing simple stuff like swapping relics is extremely rare. I'm the only person I know who re-gears mid-fight. Overall, people seem to like the "one-size-fits-all" gearing strategy. Makes sense from a big picture standpoint, but it does tend to miss some of the finer points of optimization.

Link to comment
Share on other sites

I thought about that, but then we get into dicy arguments about "odds that you shield, but not defend", etc. It's not really effective HP anymore; it's more like expected TTK. This is, arguably, a more interesting metric, but also one that is much harder to work with. It also would tend to lengthen the TTK (due to lower expected damage) rather than shorten it as you suggest.

 

Actually the TTK should remain the same provided you shield only 1 swing and defend none. That is unless you have 98% absorb. My point was more that the 10th hit will kill you even if you shield it, that said this does vary dependant on effective HP and absorb chance, it applies to your numbers but not to all. Anyway, I place more value on TTK (both average and worst case) than eHP, helps me use Enure more effectively (no point using it if I'm more than 10s away from dying).

 

I'm not sure about that expression. Need to think about it. Seems like you're double-counting things.

 

Take your time. I spent a while on it and as I said, I'm not convinced myself. Its much much more complicated and I think may require running a recursive algorithm to properly solve or perhaps just some rather advanced integral calculus. However I am certain that discreet groups of attacks do not provide an accurate answer.

 

To highlight this using (Swing, Group of 10) notation, if swing (X, Y) is mitigated, but the next mitigation doesn't come until swing (X, Y+1), you have hit 10 unmitigated swings but your formula counts each of those blocks as having had a mitigated swing and as such, not being a the worst case scenario block.

 

Ideally, all theory-crafting would be done on a fight-by-fight basis (or even phase-by-phase). The problem is that I don't know anyone who remods their gear between fights. Even doing simple stuff like swapping relics is extremely rare. I'm the only person I know who re-gears mid-fight. Overall, people seem to like the "one-size-fits-all" gearing strategy. Makes sense from a big picture standpoint, but it does tend to miss some of the finer points of optimization.

 

I think it is more a case that nothing in this game pushes tanks to the point that multiple gear set ups are required. If a boss came along that dropped 25k I/E swings every 15 seconds or so that might change. I usually swap relics in and out for different fights but I run a Guardian as my main, so swapping mid combat isn't an option for me. I do stance dance to Shien for extra DPS on burn/tank free phases sometimes though.

 

Regardless of all else, I agree with the important part of the post: eHP is less important than stacking mitigation. My math supports that, in that you actually come across that "worst case" scenario quite frequently, but because of how long it takes to kill you, the healers keep you up through it and no one notices.

 

That could lead to even more in depth analysis using incoming HPS vs incoming unmitigated DPS to determine the actual number of sequential unmitigated hits to kill a tank while being healed. Given that the unmitigated DPS is only 2408 which is easily matched by 2 healers and add in CD usage: you highlight even more that eHP just isn't that important.

Link to comment
Share on other sites

What about the fact the dps can and do take unnecessary damage, which takes up healing which would normally go to a tank? Or a healer and dps take damage? Has that factored into how useful stacking HP is over mitigation? Or are you talking about runs where everyone is so bored of the content and is so familier with it that they make no mistakes?
Link to comment
Share on other sites

What about the fact the dps can and do take unnecessary damage, which takes up healing which would normally go to a tank?

 

How would stacking hp be any better than stacking mitigation? All that hp stacking does is buy you a bit more time on F/T heavy phases. In every other case, hp stacking would be *worse* because you're relying on having your hp constantly refreshed by your healers rather than simply requiring less healing. With hp stacking setups, you're going to require more attention from your healers, which means that, if the DPS are eating it to the face like the baddies they are, the healers will be even more overloaded. As a mitigation stacked tank, you're functionally allowing heals on you to count for greater effect (since you have fewer hp and they absorb more unmitigated damage on a point-for-point basis).

 

eHP is only an effective metric for gauging the time that you can survive without getting a heal. Once that time frame is above 10 seconds or so for the relevant content, it really doesn't matter *how* long it is, because it's long enough that, unless your healers are simply *ignoring you*, they'll be able to bring you back up in time even if the DPS are being idiots. If you focus too heavily on increasing your eHP at the cost of mitigation, you're really only forcing your healers to dump more resources into you for no real benefit.

Link to comment
Share on other sites

I'm a healer, so I tend to gauge tanks on a "how long can I ignore this fellow and have him survive" metric. However, I think that rather than looking at effective HP, what you should be looking at is the largest effective hit that you're likely to take. That's a much more useful metric than looking at averages which don't take into account spikes of damage.

 

If the largest hit you take is effectively 15k, it doesn't matter if the boss swiped you for 23k. You took a 15k hit, and you're not going to survive another one. As a healer, I've got to pay attention to you immediately.

 

If the average hit you take is effectively 6k (and again it doesn't matter if the boss swiped you for 10k or whatever), then you can take perhaps 2-4 more hits before you're dead. As a healer, I've got to give you priority, but it's unlikely you're going to immediately die on me. I have a few GCDs to fix you up.

 

That being said, the first scenario is the more important one. You want enough mitigation to make that hit as small as possible, and then you want enough health to survive more than one hit. That's the balance you want to achieve.

 

Because sometimes you'll be in a situation where the snipers are lounging in green goo and the marauders are on fire, so your healer needs another GCD or two to catch up and save you.

Link to comment
Share on other sites

Because sometimes you'll be in a situation where the snipers are lounging in green goo and the marauders are on fire, so your healer needs another GCD or two to catch up and save you.

 

I want this on a t-shirt. :-) Best thing I've ever read on these forums.

 

To the rest of your post, I agree whole-heartedly. Taking a quick scan through my spreadsheet, the only ability that hits me for more than 10k is Scream in HM TFB (hits for 13.3k). Scream happens to the same tank once every 70 seconds, so a repeat is not a big deal. Also, the tank swap happens at that point, so the healer really has a full 35 seconds to patch me up. Overall, we can discount it.

 

The other abilities that hit hard are as follows:

 

  • 7.5k Backhand Smash (HM Toth & Zorn) – Has an extremely low swing-timer, really only hitting once every other minute. Non-issue.
  • 10k Rail Shot (HM Kephess) – Hits once every two seconds, but only if I'm seriously derping. Solution: let me die.
  • 10k Empowered Slash (HM Kephess) – Hits each tank once every 45 seconds. Tank swap immediately follows with a 22 second lull prior to next damage taken. Non-issue.
  • 10k Rocket Blast (HM Kephess) – Hits once every 7 seconds. No other damage is going out. Solution: stun the bombardier (alternate: just heal through it).
  • 13k Gore with debuff (Nightmare Pilgrim) – Has the potential to hit once every 5 seconds. Lots of damage going out. Solution: tank swap. Additional solution: interrupt.
  • 17.5k Gore with bloodmark (Nightmare Pilgrim) – Same deal as before. Newsflash: if you don't tank swap on bloodmark, you're doing it WRONG.
  • 9.5k Fragment (HM Operator IX) – Hits frequently and hits everyone (not just the tanks). Sucks HARD. Solution: cry.

 

Nothing else (on current content) is going to hit for an appreciably high amount. Of this entire list, the only one that isn't avoidable by Not Being Stupid™ is Fragment, which is the main ability used by the Rectifier on HM Operator IX. There's really no way to deal with this other than ensure that EVERYTHING else is dead when a Rectifier is out so that your healers can concentrate and burst really hard. Ideally, you will only get a single Rectifier during the fight, so it only sucks for a little while.

 

Overall, I would say that even a 20k health pool is more than sufficient to meet the "can take a big hit and then a couple more" criterion.

Link to comment
Share on other sites

I like all of this.

 

My one question in regards to this is on mod-slots. I've always preferred mitigation over health, but with the mod slots, going from "27B" to "27",it's a trade of 22 endurance for 10 of the tank stat and some of your primary.

 

I've got some of both on my powertech, (26s, as I have been main raiding on the sorc lately), but would like to confirm which way to leap on that.

Link to comment
Share on other sites

My one question in regards to this is on mod-slots. I've always preferred mitigation over health, but with the mod slots, going from "27B" to "27",it's a trade of 22 endurance for 10 of the tank stat and some of your primary.

 

I *always* go for the unlettered mods, given the option. More mitigation is more better, as I see it, and I'd rather get redundant damage (for faster kills) than redundant HP (for... nothing much really; slightly better self heals, I guess?). I've never had a problem surviving even though I've got sub-24k hp, and I've never had a problem generating threat (I've actually generate so much threat that I have to tank first in any 2 tank scenario because, otherwise, I just steal aggro from the other tank by overcoming his opening volley). It's for the same reason that I prefer to use Resolve Armoring and Hilts as opposed to the Force Wielder I'm "supposed" to use as a tank. As I see it, Endurance is for chumps. Mitigation>Damage>HP is my prioritization.

Link to comment
Share on other sites

Not sure I'd go quite that far, I'd still take endurance over aim on a 1-1 comparison, but I do tend to agree on the XX vs XXB mods. Wish they'd add the low endurance tank enhancements again tho, haven't seen any of those since rakata level.
Link to comment
Share on other sites

I *always* go for the unlettered mods, given the option. More mitigation is more better, as I see it, and I'd rather get redundant damage (for faster kills) than redundant HP (for... nothing much really; slightly better self heals, I guess?). I've never had a problem surviving even though I've got sub-24k hp, and I've never had a problem generating threat (I've actually generate so much threat that I have to tank first in any 2 tank scenario because, otherwise, I just steal aggro from the other tank by overcoming his opening volley). It's for the same reason that I prefer to use Resolve Armoring and Hilts as opposed to the Force Wielder I'm "supposed" to use as a tank. As I see it, Endurance is for chumps. Mitigation>Damage>HP is my prioritization.

 

As a shadow, HP is actually pretty nice in moderation due to the way that it improves the self-heal on Telekinetic Throw. At my current stat budget, it's worth a little more than 60% of what equal points in mitigation would provide. That's still pretty crummy, except for the fact that the B mods provide more endurance than the unlettered mods provide mitigation (yay, bioware). As a result, swapping a couple of your unlettered mods for B mods will actually make your net survivability go up. This only holds true for two or three mods (I think I've swapped exactly that many), but it's something worth looking at.

 

I used to go for the Resolve hilts, but honestly damage is not a problem anymore. On most fights, I'm hovering between 750 and 800 DPS (with the ability to burst out around 1500 if I have to). That's quite sufficient to keep ahead of even my group's DPS, once we're past the initial "burst before the tank is ready" phase of the fight. I feel your pain on the "tank first" problem. :-) I've taken to just not DPSing for the first bits of a fight like Writhing Horror.

Edited by KeyboardNinja
Link to comment
Share on other sites

I feel your pain on the "tank first" problem. :-) I've taken to just not DPSing for the first bits of a fight like Writhing Horror.

 

I wear it like a badge of honor. I was running with a guy who insisted that I would have threat problems later on in the fight (his reason being that he had threat problems later on in the fight when he did it on his tank). I laughed at him and proceeded to say that was probably a pebkac issue. I didn't lose threat *once*.

 

Also, I know that I gain a nice degree of survivability by having a nice chunk of Endurance, but my desire to stack as much WP as possible and completely ignore Endurance is generally countered by my general laziness and lack of willingness to pay through every imaginable orifice to purchase all of the top grade Armorings and Hilt that I would need to do so. As such, even though it's more than I would *like*, I still manage to get into the "optimum hp range for survivability". I just so happen to be crazy like that.

Link to comment
Share on other sites

If you're tanking, damage really shouldn't be a problem. Especially not if you're communicating properly with your DPS and other tank about when you're throwing out taunts and such. Once you have threat secured, it should be very difficult to pull off of you, regardless of how much damage you're doing or not doing. Damage done by a tank should be fairly irrelevant.

 

Once you've stacked your mitigation to the point of diminishing returns, it's expected that you'll stack endurance on top of that, because for the most part, your damage can be negligible. Extra endurance on your part takes stress off of your healers because it means that the DPS don't have to be perfect ("Why are the marauders on fire again?").

 

20k is probably sufficient health on a tank for everything but EC and TFB, but those require a higher level of gear and you will end up with higher health anyway.

Link to comment
Share on other sites

If you're tanking, damage really shouldn't be a problem.

 

As I see it (and have always seen it), damage is never redundant but HP can be. If I never drop below 50% hp, 50% of my hp is functionally redundant except as a mechanism by which to increase my self healing. If I turned some of that redundant hp into Willpower and started cranking out more damage, I still wouldn't die and the boss would die faster (not to mention that I would have fewer threat problems even in edge cases where a DPS gets a really lucky crit string right in the beginning). As such, the group gets more benefit out of me having better damage rather than more HP than I really need.

 

Tank damage is not something you should really ignore. Yes, it's lower than that of pure DPS, by about half, but that's not "negligible". Sure, if you're hitting enrage timers it's probably the DPS's fault, but if the tanks could still keep threat while dealing no damage whatsoever, you'd hit those enrage timers just the same. The combination of the two tanks' DPS functionally adds up to being the 5th DPS for an 8 man ops group. There's a reason beyond sheer boredom and active mitigation that tanks keep punching the boss 3+ minutes into the fight when they could, honestly, get away with just Taunt spamming and that's damage.

 

As a tank, I'm not just a punching bag: I'm a punching bag that punches *back*, and I like to punch back as hard as possible.

Link to comment
Share on other sites

It is the job of the tank to take hits. That is his primary role. That he additionally does damage is a benefit.

 

Assuming that you will never drop below 50% seems foolish to me. Even an excellent healer can face issues that will interrupt healing the tank. Line-of-sight, movement, avoiding damage, healing DPS: these are all things that mean a tank might have to wait a GCD or two before getting the necessary heal.

 

If you take a 12k hit and your health is only 20k, you are already below 50%. If you take that hit with 24k health, you are right at 50%, but another hit is still likely to kill you. If you take that hit with 28k health, you can take another hit and survive. That buffer is valuable.

 

Healers are human and make mistakes. DPS are human and make mistakes. Tanks are human and make mistakes. Having a tank with a large health pool increases the odds that a group will recover from a mistake. Many fights at the highest levels have very little margin for error, and increasing the chance for recovery is important.

 

Yes, a good healer can keep alive a tank with a mediocre health pool. An incompetent one will struggle.

 

Therefore, you are best served by maximizing mitigation stats, then raising your endurance to the point where you have a comfortable health buffer, then working on increasing your damage. It is absolutely possible to manage all three of these things.

Link to comment
Share on other sites

If you take a 12k hit and your health is only 20k, you are already below 50%. If you take that hit with 24k health, you are right at 50%, but another hit is still likely to kill you. If you take that hit with 28k health, you can take another hit and survive. That buffer is valuable.

 

First off, I'd like to point out that not once did I make the claim that I never drop below 50% hp. I stated that, *if my hp never drops below 50% hp* then the additional 50% hp is redundant. Getting hp exclusively to pad your hp for arbitrary extreme cases isn't really helping you or your ops group. Increasing your DPS, on the other hand, while it's not a primary concern for a tank, is going to serve you and your ops group better. Once you have reasonable confidence that you're not going to have any survivability problems, you're better off putting itemization into DPS without negatively impacting your DPS, which is best accomplished by switching out Endurance for WP.

 

Therefore, you are best served by maximizing mitigation stats, then raising your endurance to the point where you have a comfortable health buffer, then working on increasing your damage. It is absolutely possible to manage all three of these things.

 

That's kind of the point. The issue that most people don't realize is that you're going to have that "comfortable health buffer" pretty much no matter what you do. Resolve armoring and hilt have more than enough Endurance on them, not to mention the fact that you can't even get the Sturdiness or Immunity 26/27 enhancements that really pull your Endurance down but crank your mitigation way up. It's for this explicit reason that I've got no problem dumping Force Wielder for Resolve. I've got all the Endurance I need from my mods and enhancements, even when they're optimized for mitigation. Why bother to get more of what I already have more than enough of when I could crank out my Willpower instead?

Link to comment
Share on other sites

Take your time. I spent a while on it and as I said, I'm not convinced myself. Its much much more complicated and I think may require running a recursive algorithm to properly solve or perhaps just some rather advanced integral calculus. However I am certain that discreet groups of attacks do not provide an accurate answer.

 

I've had time to think about it. :-)

 

My original expression was wrong, but it was a closer estimate than your refinement. Here's the logic...

 

Let x be the probability of a single event, where an "event" is a boss attack that slips past mitigation. What we're interested in is the following situation:

 

P((x_1 \cap x_2 \cap x_3 \cap \ldots \cap x_10) \cup (x_2 \cap x_2 \cap x_3 \cap \ldots \cap x_11) \cup \ldots)

 

That is to say, the probability of events 1-10, OR events 2-11, OR 3-12, etc, all the way up to 185-195. There is an immediate law of probability which can be applied here:

 

P(A \cup B) = P(A) + P(B) - P(A \cap B)

 

Thus, the probability of A or B is equal to the sum of the probabilities of A and B and the negation of the probability of A and B. For the first two strings, we can calculate this in a very straightforward manner:

 

x^10 + x^10 - x^11

 

Thus, we have the probability of 10 consecutive mitigation fails, plus the probability of another 10 consecutive fails, minus the probability that all 11 were fails.

 

Unfortunately, this sort of expression spirals out of control in a hurry. Getting a closed form is somewhat...involved. With a bit of algebraic munging in the first case, we can derive the following:

 

x^10 + x^10 - x^11 = x^10(1 - x) + x^10

 

This gives us an inductive case for a recursive function that encodes our problem:

 

f(i) = f(i - 1)(1 - x) + x^10

f(0) = x^10

 

Plugging this into Mathematica, we churn out the following closed form:

 

f(i) = x^9(1 - (1 - x)^(i + 1))

 

(this bears a hilarious and entirely coincidental resemblance to the fundamental stat-scaling formulae which govern diminishing returns in TOR)

 

Coming back to our original problem... x = 0.4595. Our maximum i = 185, since there are only 185 overlapping 10 x 2 second periods in a 195 x 2 second fight. The rest is arithmetic:

 

f(185) = 0.000913208

 

That is to say, 0.0913208% odds. That's almost a 10th of what I originally calculated. So, my original estimate was *high*.

Edited by KeyboardNinja
Link to comment
Share on other sites

I've had time to think about it. :-)

 

My original expression was wrong, but it was a closer estimate than your refinement. Here's the logic...

 

Let x be the probability of a single event, where an "event" is a boss attack that slips past mitigation. What we're interested in is the following situation:

 

P((x_1 \cap x_2 \cap x_3 \cap \ldots \cap x_10) \cup (x_2 \cap x_2 \cap x_3 \cap \ldots \cap x_11) \cup \ldots)

 

That is to say, the probability of events 1-10, OR events 2-11, OR 3-12, etc, all the way up to 185-195. There is an immediate law of probability which can be applied here:

 

P(A \cup B) = P(A) + P(B) - P(A \cap B)

 

Thus, the probability of A or B is equal to the sum of the probabilities of A and B and the negation of the probability of A and B. For the first two strings, we can calculate this in a very straightforward manner:

 

x^10 + x^10 - x^11

 

Thus, we have the probability of 10 consecutive mitigation fails, plus the probability of another 10 consecutive fails, minus the probability that all 11 were fails.

 

Unfortunately, this sort of expression spirals out of control in a hurry. Getting a closed form is somewhat...involved. With a bit of algebraic munging in the first case, we can derive the following:

 

x^10 + x^10 - x^11 = x^10(1 - x) + x^10

 

This gives us an inductive case for a recursive function that encodes our problem:

 

f(i) = f(i - 1)(1 - x) + x^10

f(0) = x^10

 

Plugging this into Mathematica, we churn out the following closed form:

 

f(i) = x^9(1 - (1 - x)^(i + 1))

 

(this bears a hilarious and entirely coincidental resemblance to the fundamental stat-scaling formulae which govern diminishing returns in TOR)

 

Coming back to our original problem... x = 0.4595. Our maximum i = 185, since there are only 185 overlapping 10 x 2 second periods in a 195 x 2 second fight. The rest is arithmetic:

 

f(185) = 0.000913208

 

That is to say, 0.0913208% odds. That's almost a 10th of what I originally calculated. So, my original estimate was *high*.

 

This function is also incorrect. Again, basic logic disproves it: Given a higher number of trials and a constant probability, the chance of an event occurring at least once increases.

 

My calculations (in more depth) were:

X = Probability of an unmitigated hit (0.4595)

X^10 = Probability of 10 sequential unmitigated hits.

 

Next I looked at the possible start points for a string of 10 unmitigated hits. Attacks 1-185 respectively. Assuming that none of these attacks started a chain of 10 unmitigated hits we can use:

(1-x^10)^185

This gives us the probability that none of those attacks start a series of 10 sequential unmitigated hits. To get the probability that it does happen I then used:

1-(1-x^10)^185

 

Your inductive function is also incorrect. Your f(0) should actually be f(1). I can get an experimental idea of the probability by using a program like:

for(i=0;i<10000000000;i++){
  for(j=0;j<185;j++){
     if(rand.Next()<prob){
        hits++;
        if(hits>=10){
           count++;
           if(count>maxStreak)
              maxStreak = count; 
        }
     }
     else
        hits = 0;
  }
}
Console.Write("Probability: "(count/i) "\nMax Streak: " maxStreak);

I'll run it next time I've got access to my programming suite.

Link to comment
Share on other sites

Im so glad there are people like you in the game to do these number crunches, makes gearing my first tank so much easier xD

 

I read the old Sith Warrior thread on tanking stat priorities before I started grinding out gear for my own shadow tank and so far Ive got 24k HP (buff, no stim), 40.25% dam red, 27.68% def, 45.41% shield and 58.30% absorb and stil need a few more Campaign pieces.

 

My question is though, as Shadow tanks, is it more worth while for us to us switch to a few pieces of gear that favor EHP over mitagation on bosses where we can't mitagate most of the damage? (Ex: Stormcaller, TFB 2nd phase [utilizing Force Cloak for gear switch]).

Ty in advance! :D

Link to comment
Share on other sites

This function is also incorrect. Again, basic logic disproves it: Given a higher number of trials and a constant probability, the chance of an event occurring at least once increases.

 

My function reflects this property. See plot: http://www.wolframalpha.com/input/?i=plot+y+%3D+0.4595^9%28-%28%281+-+0.4595%29^x+-+1%29%29. Yours is logical at face value, but you're dramatically over-counting due to the fact that an event chain p_1...p_10 overlaps with an event chain of p_2...p_11 by 9 events. That's why the probabilities you're churning out are so much higher.

 

The base case was wrong, as you said. I generally work with zero-based functions, so slip of habit. Correcting this gives the following function:

 

f(i) = 0.4595^9(-((1 - 0.4595)^i - 1))

 

f(185) = 0.000913208

 

Thus, it actually makes no difference within the bounds of rounding error. If I had let it expand, it would have produced a slightly larger value than previously, but only slightly.

 

I can get an experimental idea of the probability by using a program like:

for(i=0;i<10000000000;i++){
  for(j=0;j<185;j++){
     if(rand.Next()<prob){
        hits++;
        if(hits>=10){
           count++;
           if(count>maxStreak)
              maxStreak = count; 
        }
     }
     else
        hits = 0;
  }
}
Console.Write("Probability: "(count/i) "\nMax Streak: " maxStreak);

I'll run it next time I've got access to my programming suite.

 

I'll run this myself tomorrow. 10 trillion is a lot of iterations, but we're talking about very, very small odds. It seems like the margin for error will be fairly high.

Edited by KeyboardNinja
Link to comment
Share on other sites

Curiouser and curiouser…

 

ITERATIONS = 1000000

count = 0
prob = 0.4595
hits = 0

ITERATIONS.times do
 i = 0
 while i < 185
   if rand < prob
     hits += 1

     if hits >= 10
       count += 1
       i = 185
     end
   else
     hits = 0
   end
   i += 1
 end
 hits = 0
end

puts "count = #{count}"
puts "probability = #{count.to_f / ITERATIONS}"

 

I had to modify your program somewhat, since it wasn't actually computing the per-fight probability of a consecutive streak. I get the following results from the above:

 

count = 39378
probability = 0.039378

 

Which is neither as high as you predicted, nor as low as I predicted. So, something is clearly wrong with my derivation, but yours isn't correct either. I suspect mine is headed in the right direction, but something went wrong in the middle.

Link to comment
Share on other sites

I just noticed that we both missed that I only had 185 'hits' not 195. My initial calculations were also using 9 hits as worst case (again because even a shielded subsequent hit would result in death). Doubt either of those corrections will push it up to my numbers but they will increase it noticeably.

 

The only adjustment I can see in your code is that you have an exit condition once the streak has reached 10

 

In terms of the 10 trillion iterations, I was just using an arbitrarily large number to try and generate a more average result. I intend to run it probably 100 times (most likely just add in another loop) giving me a more accurate representation.

 

I'll have access to my programming stuff tomorrow so I'll run them then. Probably going to take a while to run.

 

EDIT: Managed to get a compiler working on my work computer so I've run the program now with corrections.

int main(int argc, char *argv[])
{
int i,j,l;
double k = 0;
int hits = 0;
double count = 0;
int maxStreak = 0;
double prob = 4595;
double average = 0;

srand(time(NULL));

for(l=0; l<50; l++){
    for(i=0;i<1000000;i++){
   		for(j=0;j<195;j++){
			k = rand() % 10000;
      		if(k<prob){
         		hits++;
         		if(hits>=9){
            		count++;
            		if(hits>maxStreak)
               			maxStreak = hits; 
         		}
      		}
      		else
         	hits = 0;
  	 	}
	}
	printf("Probability: %lf\nMax Streak: %i\n", (count/i), maxStreak);
	average += (couny/i);
	count = 0;
	maxStreak = 0;
}
average = average / l;
printf("Average: %lf", average);
}

 

Using 9 as a 'worst case' streak gives an average of about 0.178% chance of it occurring.

Using 10 gives about 0.082 chance.

 

Interestingly, with 1,000,000 'swings' I was consistently getting a 22-25 consecutive hits as the longest string.

 

I then made the following adjustment to the code to simulate 10 fights a week, every week, for a year.

 

int main(int argc, char *argv[])
{
int i,j,l;
double k = 0;
int hits = 0;
double count = 0;
int weeksSeen = 0;
int maxStreak = 0;
double prob = 4595;
double average = 0;

srand(time(NULL));

for(l=0; l<52; l++){
    for(i=0;i<10;i++){
   		for(j=0;j<195;j++){
			k = rand() % 10000;
      		if(k<prob){
         		hits++;
         		if(hits>=9){
            		count++;
            		if(hits>maxStreak)
               			maxStreak = hits; 
         		}
      		}
      		else
         	hits = 0;
  	 	}
	}
	printf("Probability: %lf\nMax Streak: %i\n", (count/i), maxStreak);
	average += (count/i);
	if(count > 0)
		weeksSeen++;
	count = 0;
	maxStreak = 0;
}
average = average / l;
printf("Average: %lf, Seen: %i", average, weeksSeen);
}

 

Average number of weeks that a worst case string was seen was about 32. Gives about a 60% chance to see it each week. Going back to 10 hits means you see it ~19 weeks of the year. Now its important to note from this version that overlapping of 11+ strings is irrelevant. For the purpose of "weeks seen" we only need to see it once each week, be it a string of 9 (10) or 20.

 

I then ran a seperate version that zeroed out hits every time a "worst case" string happened using the following program. This is different from yours in that it allows for multiple worst case strings in a single fight but doesn't allow for overlapping ones like my previous program (which would count 11 hits as a 2 worst case strings).

 

int main(int argc, char *argv[])
{
int i,j,l;
double k = 0;
int hits = 0;
double count = 0;
int weeksSeen = 0;
double prob = 4595;
double average = 0;

srand(time(NULL));

for(l=0; l<50; l++){
    for(i=0;i<1000000;i++){
   		for(j=0;j<195;j++){
			k = rand() % 10000;
      		if(k<prob){
         		hits++;
         		if(hits>=10){
            		count++;
            		hits = 0;
         		}
      		}
      		else
         	hits = 0;
  	 	}
	}
	printf("Probability: %lf\n", (count/i));
	average += (count/i);
	if(count > 0)
		weeksSeen++;
	count = 0;
}
average = average / l;
printf("Average: %lf, Seen: %i\n", average, weeksSeen);
}

 

This gave a probability of 0.044

 

Please double check it for me and point out any mistakes I may have made. Honestly I'm starting to get a little lost in all the numbers now. Especially since my "Weeks seen" simulation was noticeably higher than the other numbers say it should be.

Edited by grallmate
Link to comment
Share on other sites

I'll have access to my programming stuff tomorrow so I'll run them then. Probably going to take a while to run.

 

Yeah, even with a really fast and well-optimized tight loop, 10 trillion iterations is going to take several weeks to complete on desktop hardware without parallelism.

Link to comment
Share on other sites

×
×
  • Create New...