How *Should* Defense and Resistance Formulas Work?
I'm going to straight up rip an idea out of another game for consideration. Some of you might recognize the source, but I won't name it because we're not supposed to mention outside games by name. This is just an "out there" kind of thing I've been thinking about.
Anyway, one system I have seen used to some effect is a "domination" one. It basically works like this: an attacker and a defender each have a score called "Position." The Position value is sort of like "Soft Hitpoints." It is reduced any time you have a very close call with an attacker, get shoved, thrown backwards, use an especially powerful attack that unbalances you (especially if you *miss* a very powerful attack), and so on. However, when you successfully strike an enemy, use certain powers, or are rallied by a teammate, you can build a little Position back up. In game it would be displayed as a meter similar to Health or Energy that rises and falls much more quickly.
Defense and resistance is then treated like this: every attack is checked to see if you dodged first, then for deflection, then for resistance. The amount you dodge reduces the amount that you have to deflect, and the amount you deflect reduces the amount you have to resist. All three of these values are weighted more or less the same, except that Resistance is much less penalized by Position than Dodge is, and Dodge is affected by position loss less often. Thus a character with very good Dodge capabilities is able to survive more or less unscathed as long as she is played fast and nimble, concentrating on keeping her Position high. A Resistance based character is played to take the damage, and while it has some defenses, they whittle away after a few hits.
The real fun comes from some of the weird powers this could create. Super Reflexes, for example, could gain a clickable ability to reset its Position to a neutral value if it falls too low. Ice Armor could have the ability to "anchor" itself and essentially get a large "regen boost" to Position that keeps it from falling too low.
The other thing though that Position lets you incorporate is a slightly more dynamic knockback and knockdown system. Among the rules you can introduce are that you don't get KBed at all until your position falls too low to resist it anymore. You can also add the rule that very strong forces might throw the character backwards, but his or her position dictate that s/he actually lands on his or her feet.
My suggestion:
Add up all the Defense, add it to a basic 100% "Defense", and divide the to-hit by the total. 100 defense: Hit normally [100% of incoming "hits" land] 200 defense: hit half normal amount [50% of incoming "hits" land] 300 defense: hit 1/3 of normal amount [100/300] 1000 defense: hit 10% of the time [100/1000] Likewise, 1000 resist would take 10% damage. It would give the same sort of curve as Recharge does. |
Furthermore, this is not a linear formula. Again, it is a fractional formula, just explored in the other direction. With BaseRecharge as a constant and RechargeBuff as the variable, you have a discontinuity point around -1 (around 100% recharge debuff) and the return is diminishing because you're basically drawing up a concave decline. As a point of fact, even for values of RechargeBuff approaching infinity, FinalRecharge will still tend towards 0.
The problem here is that you seem to want to treat Defence as an additive and subtractive parameter. For instance, if I have 500 defence and add another 500 defence, I have 1000 defence. Which really breaks down once we examine the area of debuffs. For starters, unlike with Recharge, your formula makes no accounting for defence debuffs. If you start with 100 defence and get hit every time and then get debuffed by 50 defence, what does that mean? Do you get hit 3 times out of every 2 attacks? Furthermore, what numbers do you give to debuffs?
Suppose we give defence a floor of 100 for consistency's sake. Suppose, furthermore, that an enemy has a denuff of 50 defence. Against a character with no defence, this would be effective. Against a character with 100 defence, this will reduce mitigation from 0.5 to 0.66, or it will make you get hit around 33% more often. Against a character with 1000 defence, this would instead reduce it from 0.1 to ~0.105, or it will make you get hit a little over 5% more. Not only does your defence number have less of an impact the higher your defence goes, but said defence becomes harder and harder to debuff.
Anyway, one system I have seen used to some effect is a "domination" one. It basically works like this: an attacker and a defender each have a score called "Position." The Position value is sort of like "Soft Hitpoints." It is reduced any time you have a very close call with an attacker, get shoved, thrown backwards, use an especially powerful attack that unbalances you (especially if you *miss* a very powerful attack), and so on. However, when you successfully strike an enemy, use certain powers, or are rallied by a teammate, you can build a little Position back up. In game it would be displayed as a meter similar to Health or Energy that rises and falls much more quickly.
Defense and resistance is then treated like this: every attack is checked to see if you dodged first, then for deflection, then for resistance. The amount you dodge reduces the amount that you have to deflect, and the amount you deflect reduces the amount you have to resist. All three of these values are weighted more or less the same, except that Resistance is much less penalized by Position than Dodge is, and Dodge is affected by position loss less often. Thus a character with very good Dodge capabilities is able to survive more or less unscathed as long as she is played fast and nimble, concentrating on keeping her Position high. A Resistance based character is played to take the damage, and while it has some defenses, they whittle away after a few hits. |
This isn't really as easily adapted to an RPG that mostly consists of clicking tray icons with the mouse and using the keyboard to turn. Granted, this isn't how we all play it (I don't), but this IS the basic structure that the game is based upon. Positioning matters in a general sense, and you're rarely required to keep to very tight timing. Even "Mega attack! Get away!" mechanics give you a good 8-10 seconds to respond. What you're suggesting feels like the Archvillan "purple tirangles of doom." You can't hold an Archvillan for most of the time, but you CAN when the triangles show up. The problem is that they're hard to see and don't stay up long enough, so reacting to them is disproportionately difficult from the rest of the game.
Additionally, what you propose seems applicable to one-on-one fights where you can keep your eyes glued to the enemy's position metre, but this is really difficult to do in a larger fight with even as few as six enemies, which even just +2 will give you. It's hard enough to keep track of just their health, and most people don't bother to keep track of their endurance, but to capitalise on such a system would simply require a game that's far more dynamic than this one.
I'm not actually saying that this is an inherently BAD idea, mind you. Hell, for one of the many up-and-coming Action-MMOs, this might be great. However, to this day I still play City of Heroes with ~300 Ping time, so anything that happens can only happen after my reaction time, plus a third of a second on top, and in a large fight, my reaction time is not fast. Certainly not fast enough to catch an enemy using a 1.67s attack.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
By the way, the formula I suggested earlier, the one about calculating the defence you need to gain a certain "survival time" under a theoretical example, the one that goes like:
Defence = (Attacks*(1 - BaseTohit) - 10)/Attacks
Also suffers from the same problems depicted in my above post. This formula supports an Attack variable in the range of 20 to 200. Anything above 200 puts your defence above the soft cap and anything under 20 puts your defence in the negative.
However, that's what defence debuffs effectively do - they act like negative defence buffs, meaning the formula would have to support Attack values between 0 and 20. And here's where the problems start.
The formula I've chosen is also a fraction formula. What that means is that it has no value for a Defence Rating of 0 and for Defence Ratings close to zero, say 0.0001, it corresponds to defence numbers of close to negative infinity. As I said before, the formula breaks even at a Defence Rating of 20, but the formula hits the -45% defence softcap (the 5% to-hit floor) at just a little over 10.526 Defence Rating, and from there back it drops first into sub-5% to-hit, and then into negative to-hit. The [0.05;0.95] bounding would would prevent that, yes, but look at the numbers and how they turn out, roughly:
10-20 Defence Rating takes you from the 5% to-hit floor to the 50% to-hit base. 20-200 Rating takes you from the 50% to-hit base to the 95%. That's not "fair enough," because I ask you the following: What numbers would defence debuffs have? Seriously. Let's take the simplest example of a 10 point Defence Rating debuff. How would it perform? Well, against a defence-capped character, that would bring his Defence Rating down from 200 to 190, bringing actual defence down from 45% to around 44.74%, consistent with taking away 10 seconds of survivability. Now suppose you slap a character who has no defence with that debuff. His defence will go from 0% to -50%, bounded to 45%.
The result of this is that defence debuffs will utterly destroy people who didn't have defence to begin with while having very little effect against those with high defence values, which is what defence debuffs should be aiming at, in my opinion.
When you institute diminishing returns, you usually end up with rampantly accelerated returns on the opposite end of the scale, and you end up with unpredictable levels or return on debuffs because of it.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
The problem with that is that the recharge system is not actually intuitive. I've had to explain to people on numerous occasions that reducing your recharge by 100% does not, in fact, make the power recharge instantly, but rather makes it recharge in half the time. To this day I don't know how to explain this in simple terms without simply giving people the "FinalRecharge = BaseRecharge/(1 + RechargeBuff)" It is not intuitive if you have to resort to a formula to grasp it.
Furthermore, this is not a linear formula. Again, it is a fractional formula, just explored in the other direction. With BaseRecharge as a constant and RechargeBuff as the variable, you have a discontinuity point around -1 (around 100% recharge debuff) and the return is diminishing because you're basically drawing up a concave decline. As a point of fact, even for values of RechargeBuff approaching infinity, FinalRecharge will still tend towards 0. |
1 / (1+1) = 0.5; 1 / 0.5 = 2
1 / (1+2) = 0.333; 1 / 0.333 = 3.
And so on and so forth. The only reason there really are diminished returns on recharge in this game is that you eventually run up against the bottleneck of the power's activation time. And from a practical standpoint, obviously, there's a limit to how much true performance increase a human player with dozens of powers competing for his attention can wring out of, say, a 0.5 second cooldown reduction. (That is, if the power's not part of a by-rote attack chain.)
It's sorta like Endurance Recovery or Regeneration. For a long time, people got hung up on the superficially diminished returns with respect to the time it takes to fill an End/Health bar. IOW, base recovery puts you at 60 seconds to refill your Endurance bar. +100% recovery puts you at 30 seconds. +200% recovery puts you at 20 seconds. But that's the wrong measurement; what really matters is the rate of recovery, not the time, if for no other reason than that the time will vary wildly with different rates of opposing endurance drain.
When we talk about a car raising its speed from 60 to 120 MPH, we're measuring the rate of travel; we don't worry about the diminished return over the time of the trip. (A 30 mile trip takes 1 hour @ 30 MPH, 30 minutes @ 60 MPH, 15 minutes @ 120 MPH.)
So given my extraordinarily inattentive reading of this topic, I'd say that what Fulmens suggests is basically what a certain studio with a name that rhymes with Triptych has done in its most recent games. They give you a linear increase not to proportional damage mitigation; instead, they give you a linear increase in lifespan, or if you prefer, they give you a linear increase to your virtual hitpoints through mitigation. +50 "resistance", to them, means that it takes 50% more damage to kill you (or ~33.3% proportional mitigation; 1 / (1-0.333) = 1.5). +100 "resistance" gives you a diminished return on proportional mitigation (50%, which is less than double 33.3%), but it gives you a linear increase to lifespan (1 / (1-0.5) = 2).
There's nothing wrong with that sort of system except that it can be counter-intuitive if it's not labeled well. The Dev team that rhymes with Triptych even acknowledged that their labeling of percentile Resistance is misleading, the last time I checked. In CoH, Recharge reduction enhancements fall victim to that problem; their name tells you to measure the reduction in the recharge timer, rather than the rate at which you can use the power. They probably should be called "Recharge Rate Boosts," or something like that.
So of course I was pointed to this thread by a couple people. Without replying directly to all of the suggestions and comments in the thread specifically, I'll do so generally.
Addressing the question literally, I would simply implement inverse linear functions:
Chance to hit = Base Chance to Hit / (Defense rating/100)
Net damage = Base Damage / (Resistance rating/100)
As part of this, "percent signs" are banned from descriptions. A defense rating of 100 is one hundred, not 100% or 10,000% or whatever. No percents. Defense ratings add. Resistance ratings add. The ratings have obvious meanings. Defense rating of 200 means you are hit half as often. Defense rating of 400 means you are hit one quarter as often. That's the most straight forward behavior possible.
Furthermore, incremental benefit is linear. If you have a power with Def rating of +100, that +100 will provide the same incremental benefit to someone with a Def rating of 300 or 400 (I'm eliminating the issue of typing for simplicity here). In what sense is this true? In the sense of survivable damage. Someone with a defense rating of 300 can survive three times more damage than someone with rating 100. If you add a +100 rating power, they will be able to survive four times more damage. Call the amount of damage you can survive sustained X. Def rating 300 gives you 3X. Def rating 400 gives you 4X, an increase of X. Def rating of 500 gives you 5X, an increase of X again.
To put it another way, if you can tank a particular spawn and a particular defense power allows you to tank that spawn plus one extra critter, say a boss, then each successive addition of that power stacked on top will add one more of those critters to your maximum spawn that you can tank indefinitely, to a first order average. That is a linear benefit increase.
Taking a step back, though, one thing I think that other game got right, among so many other things they got wrong, was to use "Defense" and "Resistance" as base mechanics that actual powers were build upon. Invulnerability, for example in that game, is not a "pure" resistance effect. It *contains* resistance, but it also contains a different effect in combination: capped deflection.
The way I would do it in any new game would be to create these fundamental effects like "Evasion" and "Deflection" and "Resistance" and then create powers that use them, not just deliver them. You would rarely see these "pure" effects in isolation. That makes the whole question of comparing resistance and defense mostly moot: it would be like comparing run speed and perception.
[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]
In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)
It is absolutely linear. You're just measuring the wrong attribute. A 100% buff to recharge reduction means you can use the power 200% as often. A 200% buff to recharge means you can use the power 300% as often.
1 / (1+1) = 0.5; 1 / 0.5 = 2 1 / (1+2) = 0.333; 1 / 0.333 = 3 |
1 / (1+1) = 0.5; 1 / 0.5 = 1/(1 / (1+1)) = 1+1
That whole division accomplishes nothing. You take a number, put it as the denominator of a fraction, then divided one by the fraction, doing nothing more than flipping that number right back to numerator and back to itself. That's like saying a square root function is linear because sqrt(10)^2 = 10 and sqrt(11)^2 = 11. Or, even more fun, that a Sine function is linear because ArcSin(Sin(10)) = 10 and ArcSin(Sin(11)) = 11. You can't take a function then wrap the reverse function around it and call it linear. All you're doing is cancelling the functions out and leaving a basic parameter that equals itself.
A linear function takes the form of f(x)= a*x + b, or in other words it's a function where your variable is only ever multiplied by or divided by a constant or parameter, and where it isn't wrapped up in another mathematical function like a root or an absolute value or the like. This is because such a function produces a linear increase in the result for a linear increase in the variable. Anything else is not a linear function. Furthermore, any function where your variable is in a denominator is not linear just by the definition of what a linear function is, nor does it produce a linear increase in results for a linear increase in the variable. This isn't something that needs proving.
Back to recharge, let's examine a few examples. A power normally recharges in 1000 seconds, say Elude. We shall try this power with 10% recharge, 20% recharge and 30% recharge.
10: 1000/(1+0.1) ~ 909 seconds
20: 1000/(1+0.2) ~ 833 seconds
30: 1000/(1+0.3) ~ 769 seconds
Adding 10% recharge took 91 seconds out of the power's recharge. Adding another 10% recharge took 76 seconds out of it. Adding another 10% recharge still took just 64 seconds out of the power. This is not a linear function, because for a linear increase of recharge slotting, the function does not return a linear increase in final recharge. It returns a diminishing return, in fact, characteristic of a fractional function.
Specifically for recharge, there's no point in examining anything more than... Well, a power's recharge. Dividing the power's original recharge by its enhanced recharge will do nothing but return the value of enhancement, and that's largely irrelevant anyway. The one meaningful metric to do with recharge is cycle, which is essentially recharge plus animation, and for a power of this long a recharge, animation isn't a meaningful contributor to cycle.
As for damage resistance following that function or a similar one... Well, for that I'll have to address Arcana's numbers.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
Net damage = Base Damage / (Resistance rating/100)
If you have a power with Def rating of +100, that +100 will provide the same incremental benefit to someone with a Def rating of 300 or 400 (I'm eliminating the issue of typing for simplicity here). In what sense is this true? In the sense of survivable damage. Someone with a defense rating of 300 can survive three times more damage than someone with rating 100. If you add a +100 rating power, they will be able to survive four times more damage. Call the amount of damage you can survive sustained X. Def rating 300 gives you 3X. Def rating 400 gives you 4X, an increase of X. Def rating of 500 gives you 5X, an increase of X again. |
You have 1000 health. How much damage can you sustain before you die? In other words, how much Base Damage do you need for Net Damage to equal 1000, or:
Base Damage = Net Damage*(Resistance/100)
At a base resistance rating of 100, you'd be able to survive 1000 points of damage, as expected. No improvement. At a resistance rating of 100, you'd be able to survive 2000 damage, or twice the amount, as one would expect. So what if you don't have any Resistance Rating but you get debuffed? Say by -50 resistance rating, for the sake of argument. Now we have an interesting example that I want to write in full:
Base Damage = 1000*(50/100) = 1000*0.5 = 500
By debuffing your resistance by just 50, I was able to half the damage you are able to survive, whereas it took you 100 to double it. Suppose I wanted to slash the damage you survive by a quarter. How much would I need? Turns out that a 75 resistance rating debuff will get the job done, reducing the damage you are able to survive down to 250. In fact, it gets really fun when I debuff your resistance rating down to 0, because we hit upon a discontinuity point where we need to do division by zero in the original formula. Understandably, that's not going to be allowed, but still.
Returning to my original question: What do you do about debuffs? You can't debuff your resistance rating by much more than 95 below base, yet you can allow it to go over base by as much as 1000. So what resistance rating debuffs do you envision using, how do you handle them and how do they compare to resistance rating buffs? Are you going to hard-limit resistance rating to never drop below 100? To never drop below 50? How do you make sure people with no resistance rating buffs don't get completely destroyed by resistance rating debuffs while still making those debuffs meaningful to oppose a person with a high resistance rating?
We're still looking at a fractional function, and I wanted to ask if you could provide a few more specific examples, at least for resistance, to see how the system works in both directions. Because I'll admit - your system works reasonably well in the positive spectrum, but it's the negative that concerns me.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
Question: 2 and 3 what? What you've done is essentially eliminated a fraction. Allow me to demonstrate:
1 / (1+1) = 0.5; 1 / 0.5 = 1/(1 / (1+1)) = 1+1 That whole division accomplishes nothing. You take a number, put it as the denominator of a fraction, then divided one by the fraction, doing nothing more than flipping that number right back to numerator and back to itself. That's like saying a square root function is linear because sqrt(10)^2 = 10 and sqrt(11)^2 = 11. Or, even more fun, that a Sine function is linear because ArcSin(Sin(10)) = 10 and ArcSin(Sin(11)) = 11. You can't take a function then wrap the reverse function around it and call it linear. All you're doing is cancelling the functions out and leaving a basic parameter that equals itself. |
With 100% recharge enhancement: 10 / (1+1)= 5. 10 / 5 = 2 uses of the power over 10 seconds, or a 200% usage rate.
With 200% recharge enhancement: 10 / (1+2)=3.33. 10 / 3.33 = 3 uses of the power over 10 seconds, or a 300% usage rate.
The recharge enhancements provide the benefit that they tell you they do, numerically (and ignoring Activation time, which the Devs for good or ill treated as irrelevant when they designed the game). That's why it's valid, in your words, to flip the numerator back on itself.
You're making this whole thing more complicated than it has to be. As noted previously, there is a practical bottleneck in the activation time, which may enforce a meaningfully diminished return at high levels of recharge. But in principle, the numerical benefit recharge enhancements say they provide is accurate and non-diminishing.
Back to recharge, let's examine a few examples. A power normally recharges in 1000 seconds, say Elude. We shall try this power with 10% recharge, 20% recharge and 30% recharge. 10: 1000/(1+0.1) ~ 909 seconds 20: 1000/(1+0.2) ~ 833 seconds 30: 1000/(1+0.3) ~ 769 seconds |
1000 / 833 = 1.20, or 120% uses of the power over its base cooldown period.
1000 / 796 = 1.30, or 130% uses of the power over its base cooldown period.
No diminished returns. Again, are you saying that cars have diminished returns because they can't ever achieve an instantaneous travel time (infinite speed)? Or how about Recovery? Regeneration? Your math is sound as far as it goes, but it describes a meaningless standard.
With 100% recharge enhancement: 10 / (1+1)= 5. 10 / 5 = 2 uses of the power over 10 seconds, or a 200% usage rate.
With 200% recharge enhancement: 10 / (1+2)=3.33. 10 / 3.33 = 3 uses of the power over 10 seconds, or a 300% usage rate. |
As well, I don't agree that how many times more often a power can be used enhanced as opposed to unenhanced is a meaningful metric, because it's a metric dependent on the power's base recharge, which isn't actually featured in the metric itself. When I ask "2 and 3 what?" that's a meaningful question. You can answer "2 and 3 times more often" but I'll just go ahead and ask how often it was to begin with.
You can take Elude with a recharge time of 1000 and make it useful 5 times more often, and that STILL won't give you you a power that's useful more often than Build Up which recharges in 90 seconds. What matters about a power isn't how much often you can use it now than before, it's how often you can use it, period. I can slot a 33.3% recharge enhancement in Elude and get it down to ~750 seconds, but that's still over 10 minutes. I can take Elude and recharge cap it at 200 seconds of recharge, but that's STILL over two minutes. That's still a long time to wait, and crucially, it's still longer than its effect lasts.
The formula you're using does nothing more than to reiterate your power's enhancement. If you've slotted a power for 50% recharge, then it will be useful 150% more often. I don't need a formula to tell you that, because all you do is add 100% to your enhancement value, a calculation that's easy enough to do by eye that one can extrapolate the result straight of of a power's stated enhancement values.
Here it is in simple terms - when I ask how often I can use a power, I don't want to be told "Five times more often than before." I want to be told something on the order of "Once per 10 minutes" or "Five times a minute." Original recharge features nowhere in this. If I've enhanced Trip Mine to recharge in 5 minutes, then that's twice every ten minutes. If I have a power with a recharge of 10 seconds, that six times per minute. The original recharge isn't relevant. Only the current recharge is, and while you can time this per minute or hour or second, this doesn't change that fact.
1000 / 909 seconds = 1.10, or 110% uses of the power over its base cooldown period.
1000 / 833 = 1.20, or 120% uses of the power over its base cooldown period. 1000 / 796 = 1.30, or 130% uses of the power over its base cooldown period. |
No diminished returns. Again, are you saying that cars have diminished returns because they can't ever achieve an instantaneous travel time (infinite speed)?
|
Now suppose I sit down in another car that's rated to be most fuel-efficient at 100mph and I want to drive that in a residential neighbourhood. Should I drive it at 50% like the other? No, because that would be too fast. So what should I drive it at? Well, I want 25 and I'm counting off 100, so 25/100, or... OK, I should run that at 25%. So how about highway speed? I'm not sure, but I think that's 75% speed.
So you see where I'm going with this? Relative speed does not matter, because relative speed is not what determines when your power will recharge unless you want to be doing constant mental arithmetic and calculating final recharge anyway. At any one point in time when I ask myself "When will I be able to use this power again," I want my answer counted in seconds or minutes, not in percent proportions from a base I probably don't remember at this point. If I want to know how often I can use a power, I can divide its current recharge measured in seconds by 60 to get uses per minute or by 3600 to get uses per hour.
*edit*
I don't want to come off like I'm picking a fight, by the way. That's not my point. I'm not setting out to prove anyone right or to prove anyone wrong. I'm just trying to stick to the facts and stick to the maths as much as possible. I just don't feel like the metric in question is very useful.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
The formula you're using does nothing more than to reiterate your power's enhancement. If you've slotted a power for 50% recharge, then it will be useful 150% more often. I don't need a formula to tell you that, because all you do is add 100% to your enhancement value, a calculation that's easy enough to do by eye that one can extrapolate the result straight of of a power's stated enhancement values.
|
Here it is in simple terms - when I ask how often I can use a power, I don't want to be told "Five times more often than before." I want to be told something on the order of "Once per 10 minutes" or "Five times a minute." Original recharge features nowhere in this. |
You're splitting hairs here, Sam. If you think I'm just being difficult, wait til Arcanaville gets back to your alleged response to her mitigation system, which presumes at its base a linear increase in lifespan. You hand-waved that premise with your talk of fractional formulas, without even pausing to consider what benefit the formula is designed to provide.
Whether we're talking Recovery, Regeneration, Recharge in CoH -- or resistance as it's used in other games and in Arcana's proposal -- the benefit is linear. CoH Recharge is only exceptional because of the activation time bottleneck, which -- for the last time -- we have to ignore in principle because the developers themselves ignored it.
If you think I'm just being difficult, wait til Arcanaville gets back to your alleged response to her mitigation system, which presumes at its base a linear increase in lifespan. You hand-waved that premise with your talk of fractional formulas, without even pausing to consider what benefit the formula is designed to provide.
|
The calculation is circular because it's unnecessary. I only gave you the calcs because they use your numbers to demonstrate that the enhancements in question give you their stated value in terms of usage rate. That may not be a metric you appreciate, but it's the metric by which the enhancements were designed to be evaluated, for good or ill.
Likewise, a lifespan model like Arcanaville's gives a linear benefit to what may be, to you, a less useful or less intuitive attribute. But it is linear by design. You're right in the sense that debuffs have to be handled with care, but the fact that you might have to make an exception for (or enforce some sort of cap on) debuffs isn't a compelling indictment against the entirety of the system.
Oh, so first the recharge formula is totally unintuitive, but now suddenly it's so simple you don't need a formula at all. The number the recharge enhancement provides is sufficient on its face? Fascinating. In other words, you've admitted that recharge enhancements provide a linear benefit to usage rate.
|
The formula in question, the one you're defending, is a fractional function. It has a discontinuity within 100% negative of its base, it tends towards infinity and it does not, crucially, provide a linear result for a linear output, specifically since its output is meaningful data.
When presented with a bonus that says it gives you a 33% improvement, what do you expect but a proportional gain? Saying that you can use your power five times more often than before is absolutely valid and meaningful.
|
If you think I'm just being difficult, wait til Arcanaville gets back to your alleged response to her mitigation system, which presumes at its base a linear increase in lifespan. You hand-waved that premise with your talk of fractional formulas, without even pausing to consider what benefit the formula is designed to provide. |
As a point of fact, I discussed a purely linear system already, back before in the thread. The very simplest linear return formula for resistance you can have is:
Net Damage = Base Damage - Resistance. If you have 100 resistance, you resist 100 points of damage. If the damage you're taking is less than 100 points, you either take no damage or take some minimum required amount. It doesn't get simpler than that, both to compute and to comprehend. However, it doesn't make for a very balanced system, because this requires that damage either nor vary by much, thereby giving results close to a percentage-based system, or otherwise creates a scant few situation where resistance is balanced and many situations of either total immunity or resistance irrelevance. 100 points of resistance in City of Heroes, for instance, would make a character immune to all but a few specific attacks from minions, but would be completely pointless against something even as powerful as a boss, let alone an AV.
Whether we're talking Recovery, Regeneration, Recharge in CoH -- or resistance as it's used in other games and in Arcana's proposal -- the benefit is linear. CoH Recharge is only exceptional because of the activation time bottleneck, which -- for the last time -- we have to ignore in principle because the developers themselves ignored it. |
Net damage = Base Damage / (Resistance rating/100)
Base damage 100, resistance going from 0 to 50 in increments of 10:
00: 100
10: 90.91
20: 83.33
30: 76.92
40: 71.42
50: 66.66
This is clearly not linear, because for each step of 10 resistance rating we get an ever-decreasing return on the reduction of incoming damage. But in the case of damage, we're not just looking at individual attacks and how they're reduced, we're looking at the impact this has on survival. Hence where the "how much damage can you survive" metric comes in. However, unlike what you're showing me in the above formula, this isn't achieved by dividing base damage by everything all over again. This requires a brand new parameter - hit points (ignoring defence and regeneration for the sake of simplicity).
That's why, when I set my examples, I include an extra parameter: Hit Points. The actual total damage one can survive actually looks more like this:
Attacks To Kill = Hit points/Net Damage =
= Hit Points/(Base Damage/(Resistance/100)) =
= (Hit Points*(Resistance/100))/Base Damage =
= ((Hit Points*Resistance)/100)/Base Damage =
= (Hit Points*Resistance)/(100*Base Damage)
= Resistance*(Hit Points/100Base Damage)
or
Attacks To Kill = Resistance*(Hit Points/(100*Base Damage))
This is a linear function. In this case, Hit Points and Base Damage are set parameters and 100 is a constant, while Damage To Kill is the actual function. You don't get much more linear than this, hence why I have no problem with Arcana's methods, but still have questions regarding corner cases. I bastardised the formula a great deal for the sake of mathematical proof, and the final incarnations may or may not make the problematic cases evident, but they still exist.
I'm not sure what you think I "handwaved" about the formula, exactly, when all I actually did was ask questions of specific instances and how those would be handled, which I feel is a legitimate question.
*edit*
On reflection, the interpretation I used the first time is different from the interpretation I used the second time, to the point where I suspect I may have misinterpreted the model originally, which could be what was producing the odd results. I'll have to re-evaluate, because the interpretation of the model I listed here doesn't seem to show the same problem. And I think I know why: The original interpretation asks HOW MUCH DAMAGE you can survive, whereas the current interpretation asks HOW MANY ATTACKS that deal this much damage you can survive. I'm not sure which one is more accurate, but my original questions remain - what do you do about debuffs and where do you place your caps?
*edit*
I think I know where the discrepancy between the two interpretations comes in. The first one represented the maximal survivable damage as a function of the base damage a character is taking for a set amount of hit points and for a set resistance value. The one I redid in this post measured the maximal number of attacks taken before death as a function of resistance itself for a given base attack damage and a given amount of hit points. One is fractional, the other linear, and I'm willing to stick to the latter since that actually uses resistance as a variable, which it should be. I'll have to think a little more about this.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
The formula in question, the one you're defending, is a fractional function. It has a discontinuity within 100% negative of its base, it tends towards infinity and it does not, crucially, provide a linear result for a linear output, specifically since its output is meaningful data.
|
To which I say, obvious. Oh, and see the post directly above yours. I think we're finished here.
I'm not defending the formula itself. I'm defending the idea that recharge enhancements provide a linear benefit in principle. The formula you keep pounding into the ground simply determines a power's cooldown. The formula does not, in any obvious way, attempt to evaluate the benefit of the bonuses in question, which are inherently proportional.You're essentially saying that the benefit is not linear because you chose to evaluate the benefit using a non-linear formula.
|
Suppose I have a power with a 1000 second recharge and one with a 10 second recharge. I slot them both with a 33% recharge enhancement. The former drops to ~750 while the latter drops to ~7.5 seconds. The former is now 250 seconds faster, that's over 4 minutes faster. If this were an important power, I would be waiting FOUR MINUTES less. The latter, on the other hand, gained less than three seconds. Suffice it to say that I won't be bothering slotting that one unless it's very important.
Yes, I'm aware that for attack chains, even shy seconds can mean the difference between keeping an attack and ditching it, but that's not down to recharge, it's down to attack cycle, which as I explained before ignores base recharge, and is an additive stat, to boot. However, for long-recharge powers, raw time is what counts, most usually the difference between raw recharge and raw duration. An easy example:
Rage is a power which recharges in 240 seconds and with an effect that lasts for 120 seconds. If you stack a second Rage buff on top of the previous one, then when the previous buff expires, it won't slap you with a severe defence debuff. Therefore, the objective here is to get Rage's recharge under 2 minutes. Not to 50%, not to half, not to 1/(1/240), but to two minutes. The power could have recharged in 180 seconds and I'd still only care to bring it down to 120. the power could recharge in 600 seconds and I'd still ideally shoot for bringing it down to 120. Because that raw second period is what I need, irrespective of enhancement efficiency or "benefit" or what have you.
In fact, your way of computing benefit serves only to evaluate enhancement/buff efficiency. "How many percent improvement can I get for this many percent improvement?" Sure, when you start hitting the ED cap, this can be meaningful, such as how much recharge do you get out of 3 level 50 Commons, as opposed to what percentage you're putting in, but you're still comparing a power with itself. You need to either give the power a raw, non-percentage score, or otherwise compare it with another power or an external statistic. Otherwise you have no frame of reference for what the effect of said power would be in practice.
I'm not saying your numbers are invalid. They are, in fact, perfectly true. I'm saying that they're not as meaningful as you make them out to be, because they are solely contained within the thing that you are trying to measure, and no measurement can ever be meaningful without an external frame of reference. Because comparing a power with itself isn't very useful. Real use comes from either comparing powers to each other, or otherwise drawing absolute scores for powers against the world.
Let me put things into perspective: Say you take Quickness from Super Reflexes and you have no other buffs or enhancements slotted. This power provides a 20% recharge reduction buff to your character as a whole. Well, then every single one of your powers will be able to be used 120% more often, and I can say this for all powers across the board, aside from those that aren't affected by recharge. But this is not a meaningful statistic. All it means is I know what your buff is. But is that buff meaningful in Elude? By how much? Does it allow you to stack Practiced Brawler now when you couldn't before? Does it allow you stack Hasten, or at least bring you closer? How much more of ten can you use Shield Charge? 20% more often? 20% of what? I don't remember the power's base recharge.
"We are done," you say. Have it your way. I'm not arguing to prove you wrong or to make myself appear smart. I enjoy the maths of it, and I'd prefer to stick to that and not resort to bickering.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
Then we define the "benefit" in different ways. You seem to define it as a percentage off the original, which I disagree with. I would, in fact, define the benefit of recharge as "BaseRecharge - FinalRecharge," or "how many seconds did I gain? This, in fact, tells me where my slots are best placed.
Suppose I have a power with a 1000 second recharge and one with a 10 second recharge. I slot them both with a 33% recharge enhancement. The former drops to ~750 while the latter drops to ~7.5 seconds. The former is now 250 seconds faster, that's over 4 minutes faster. If this were an important power, I would be waiting FOUR MINUTES less. The latter, on the other hand, gained less than three seconds. Suffice it to say that I won't be bothering slotting that one unless it's very important. |
I think you're over-reaching if you think any formula is going to sum up all of those choices in a neat little package. All I'm saying is that the system was designed to provide a linear benefit, one that you can quantify immediately just by reading the number on the enhancement's tooltip.
Rage is a power which recharges in 240 seconds and with an effect that lasts for 120 seconds. If you stack a second Rage buff on top of the previous one, then when the previous buff expires, it won't slap you with a severe defence debuff. Therefore, the objective here is to get Rage's recharge under 2 minutes. Not to 50%, not to half, not to 1/(1/240), but to two minutes. |
Regardless, knowing the proportional values helps you determine at a glance whether your goals are feasible, or even possible. In Rage's case, all you need is about +100% recharge, which is possible with three level 50 IOs and nothing else. If, on the other hand, we had a goal for a power that required more than 500% recharge enhancement, we'd know that that goal is impossible. (Because 500% is the cap.)
Say you take Quickness from Super Reflexes and you have no other buffs or enhancements slotted. This power provides a 20% recharge reduction buff to your character as a whole. Well, then every single one of your powers will be able to be used 120% more often, and I can say this for all powers across the board, aside from those that aren't affected by recharge. But this is not a meaningful statistic. |
"We are done," you say. Have it your way. I'm not arguing to prove you wrong or to make myself appear smart. I enjoy the maths of it, and I'd prefer to stick to that and not resort to bickering. |
The only reason I replied to this most recent post of yours was that you introduced a new and potentially more interesting wrinkle: Practical build decisions, for which I agree recharge isn't purely a matter of evaluating the proportional benefit to usage rate. Then again, it isn't purely a matter of evaluating time saved, either.
Practical build decisions, for which I agree recharge isn't purely a matter of evaluating the proportional benefit to usage rate. Then again, it isn't purely a matter of evaluating time saved, either.
|
I need a formula for calculating ED values, including Incarnate powers, which already exists on ParagonWiki from a couple of places. I take all of my powers, assign the number and type of enhancements they're supposed to take, then calculate that back into their raw values: enhanced damage, enhanced recharge, enhanced cost. From those, I calculate enhanced DPE, EPS, DPS, DPA and EPA, plus "uptime," which is calculated as animation time divided by cycle.
Once I have that, I start adding powers to the "queue," starting either from the most useful ones, like Dark Regen, or from the ones with the highest DPA, and totalling up both their DPS and EPS, up until I exceed 100% uptime. Once that's done, I slap my toggles with their costs and possible DPS values on top of that. This gives me a final "running cost" for EVERYTHING, but disregards recovery. I next subtract whatever recovery I get from base, Stamina and other recovery buffs like Superior Conditioning over a base of 100 points of endurance, or more if I'm seeing endurance bar increasing buffs like Physical Perfection.
This whole thing then gives me a final "running cost" of a particular build. If that cost is around 1.0 to 1.5 points lost per second, I consider this "good." If it's less... Well, suffice it to say that I don't see this in characters I care to calculate for, and if I see more than that, then I do what I can to either reduce costs or improve recovery, or both. Cardiac Alpha is always an option.
I have this whole thing strapped in a template spreadsheet, which I've used several times already, and which I've designed at least a few builds around. This, more or less, is the context within which I see in-game numbers. Less so in a theoretical context, but more so in the "So how many toggles can I run, then?" one.
Again - this isn't to argue, but more to ground the discussion a little bit in both anecdote and specific implementation.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
That's actually more or less my standpoint in all of this: What's a good way to tie up all the numbers in such a manner that I get ONE answer at the end of the day. And in a lot of instances, it's possible.
|
The goal is to produce choices that have actual consequence but whose actual value to a player is purely subjective.
So that to THIS player, going THIS route is worth more than that route, because it provides benefits that this player likes more than the other benefits.
This is something that Emmert clearly WANTED to do for City of Heroes back in the day, but didn't understand that the way to achieve this is through different KINDS of effects, not through hiding data so people don't UNDERSTAND the effects.
I need a formula for calculating ED values, including Incarnate powers, which already exists on ParagonWiki from a couple of places. I take all of my powers, assign the number and type of enhancements they're supposed to take, then calculate that back into their raw values: enhanced damage, enhanced recharge, enhanced cost. From those, I calculate enhanced DPE, EPS, DPS, DPA and EPA, plus "uptime," which is calculated as animation time divided by cycle.
|
All I'm doing is measuring the benefit of recharge in terms of rate, as opposed to time. Actually, I'm not personally evaluating anything; I'm describing the benefit of recharge enhancement as it was originally intended to be evaluated by the developers. When I craft builds, I obviously consider far more than that rate, or the time shaved per unit of recharge enhancement. For example, recently I got involved in a rather detailed build discussion in the Dominator forum. There we ran into a choice: do you put the IO set with the higher recharge enhancement into Fire Ball or Rain of Fire?
Superficially, and using your methodology, the answer is Rain of Fire because it has a longer recharge timer (60 seconds versus 32), but I advocated Fireball. Why? Because Fireball has almost no situational caveats. Shaving ~2 seconds off Fireball (cutting recharge from about 10 seconds to 8ish seconds) gives you a tangible practical benefit in almost any encounter. Shaving 3 or 4 seconds from Rain of Fire's recharge doesn't suddenly make the power worth casting (as a rule) on more than a once-per-spawn basis, a threshold which we had already passed with the inferior recharge slotting.
And with that I probably should end this line of discussion here, not out of any spiteful desire to show you up, but out of a (belated) respect for the topic of the thread, which is only very tenuously related to what we've been hashing out.
Net damage = Base Damage / (Resistance rating/100) * (Total Debuff Rating/100)
Also, just for completeness:
At a base resistance rating of 100, you'd be able to survive 1000 points of damage, as expected. No improvement. At a resistance rating of 100, you'd be able to survive 2000 damage, or twice the amount, as one would expect. So what if you don't have any Resistance Rating but you get debuffed? |
But now I have to take several steps back and mention something else. You might be presuming that resistance debuffs would, in my system, at least be *used* in the same way as they are in CoH. Sometimes yes and sometimes no. Sometimes there would be what I would call power neutralizers. These would actually work they way you thought debuffs would work: they would subtract from resistance:
Net damage = Base Damage / (Resistance rating/100 - Total Debuff Rating/100)
But with a catch: they could only subtract against powers. They could not "debuff" something that doesn't exist. So if your resistance looks like this:
100 (base) + 100 + 75 + 50 + 80 = 405
A 100 point power debuff would reduce that to 305. But a 500 point power debuff would only reduce that to 100: it could debuff the 305 points given by powers, but not the base value. Its intended to answer the question "how do you debuff a power that isn't there?" My system gives an explicit answer to that: power debuffers can't: they can only debuff what you buff, at most. They can only nullify powers. Global debuffs don't attack powers they are in effect global amplifiers for effects, and affect you the character. Thus they can in theory debuff your resistance to "below zero" but only mathematically. In "reality" they aren't doing so, they are just "encasing" you in a debuffing envelope that essentially amplifies all damage that enters it.
This sounds complicated but only because CoH doesn't have a notion of "enveloping effects." My game would have such effects, and in a game where this was clearly spelled out I don't think it would be difficult to intuit the difference. The number one enveloping effect I would add to my repertoire would be Ablative Armor Effects. I.e. external hit point shields, or if you are familiar with that other game, Force Fields.
So if the enemy enveloped you in a resistance debuff bubble, it would work like the first formula: it would look like a straight up amplification of all damage, which is easy enough to understand. If an enemy targeted you with a power neutralizer that would temporarily strip some of your protection away, but only if you actually *have* such protection, and only up to the maximum amount you have. Power neutralizers would tend to be uncommon, though.
[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]
In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)
Like this:
Net damage = Base Damage / (Resistance rating/100) * (Total Debuff Rating/100) |
Net damage = Base Damage / (Resistance rating/100 - Total Debuff Rating/100)
But with a catch: they could only subtract against powers. They could not "debuff" something that doesn't exist. So if your resistance looks like this: 100 (base) + 100 + 75 + 50 + 80 = 405 A 100 point power debuff would reduce that to 305. But a 500 point power debuff would only reduce that to 100: it could debuff the 305 points given by powers, but not the base value. Its intended to answer the question "how do you debuff a power that isn't there?" My system gives an explicit answer to that: power debuffers can't: they can only debuff what you buff, at most. They can only nullify powers. Global debuffs don't attack powers they are in effect global amplifiers for effects, and affect you the character. Thus they can in theory debuff your resistance to "below zero" but only mathematically. In "reality" they aren't doing so, they are just "encasing" you in a debuffing envelope that essentially amplifies all damage that enters it. This sounds complicated but only because CoH doesn't have a notion of "enveloping effects." My game would have such effects, and in a game where this was clearly spelled out I don't think it would be difficult to intuit the difference. The number one enveloping effect I would add to my repertoire would be Ablative Armor Effects. I.e. external hit point shields, or if you are familiar with that other game, Force Fields. So if the enemy enveloped you in a resistance debuff bubble, it would work like the first formula: it would look like a straight up amplification of all damage, which is easy enough to understand. If an enemy targeted you with a power neutralizer that would temporarily strip some of your protection away, but only if you actually *have* such protection, and only up to the maximum amount you have. Power neutralizers would tend to be uncommon, though. |
*edit*
Also, yes, I did mean to say 200 that time. And on that subject - if you don't intend for resistance rating to go below 100, you can easily just translate the UI display to show 100 points less than you have. So the UI will tell you you have 0 resistance, but the game will calculate as if you had 100, and when you get a buff and end up with 150 resistance, the game would calculate it as though you have 250. Just sayin'.
Samuel_Tow is the only poster that makes me want to punch him in the head more often when I'm agreeing with him than when I'm disagreeing with him.
|
if you don't intend for resistance rating to go below 100, you can easily just translate the UI display to show 100 points less than you have. So the UI will tell you you have 0 resistance, but the game will calculate as if you had 100, and when you get a buff and end up with 150 resistance, the game would calculate it as though you have 250. Just sayin'.
|
In fact the whole scale up to 100 instead of 1.0 is a convenience item to make the numbers people see feel more intuitive: people seem to like integers more than fractions. The game engine wouldn't care either way, and its another example of designing essentially for the UI and the documentation first, and the underlying math second.
[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]
In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)
This is CoH2- nothing is guaranteed to be present or absent just because we have it in CoH1. [Well, I suppose super strong guys with capes are pretty much guaranteed.] We can aim for a system that is [twitch] intuitive.
My suggestion:
Add up all the Defense, add it to a basic 100% "Defense", and divide the to-hit by the total.
100 defense: Hit normally [100% of incoming "hits" land]
200 defense: hit half normal amount [50% of incoming "hits" land]
300 defense: hit 1/3 of normal amount [100/300]
1000 defense: hit 10% of the time [100/1000]
Likewise, 1000 resist would take 10% damage.
It would give the same sort of curve as Recharge does.
There could even be two different types of Defense [Elusivity, anyone?] if we wanted extra stacking. Dodge-type and deflect-type, or whatever.
I'd expect normal numbers to stop around 300 Defense and 300 Resistance, with ridiculous levels for things like Hibernate/Phase Shift. Or eight Force Fields. Or something.
We might need to have a separate stat for "Vulnerability" or... "targetability?"- negative Defense would get seriously ugly seriously fast.
Multiplying your Defense by your Targetability doesn't seem like it would be too hard.
*summons Arcanaville*
Mini-guides: Force Field Defenders, Blasters, Market Self-Defense, Frankenslotting.
So you think you're a hero, huh.
@Boltcutter in game.