Can CE solve this common videogame math problem?

Current Events

Current Events » Can CE solve this common videogame math problem?
This is a problem that sometimes comes up in video games, especially ARPGs like Diablo and PoE, and I think the majority of the people get it wrong.
There's lots of ways to code ways to reduce damage taken to players. Imagine you're playing an ARPG like Diablo or PoE that includes 4 different ways to reduce damage: Block, Armor, Resistance, and stacking percentage reductions.

  • Block - flat damage reduction. Directly subtracts the blocked amount from the damage taken: 10 block reduces damage taken by 10. 50 block reduces damage taken by 50.
  • Armor - reduces damage taken according to the formula: reduction = 1-1/(1+(armor/100)). 10 armor reduces damage taken by 9.1%. 50 armor reduces damage taken by 33%.
  • Resistance - reduces damage taken by a percentage. 10% poison resistance reduces poison damage taken by 10%. 50% poison damage reduces damage taken by 50%.
  • Stacking reductions multiplicatively - each reduction multiplies damage taken by its reduction. So a single 50% damage reduction reduces damage taken by 50%. Two 50% damage reductions reduce damage taken by 25% (0.5 x 0.5).
Here's the question everyone gets wrong: Which of these styles, if any, give diminishing returns, linear returns, or any other type of return?
"We live in a country Hasire.." ~ yosouf06
REVOLVER STAKE! http://img.photobucket.com/albums/v717/ChocoboMog123/AltEisenRChocoboMog.png
Shooting from the hip:

Block is better than linear scaling.

Resistance is linear scaling

armor is sublinear scaling (diminishing returns)

multiplicative stacking has a botched example, and may not be directly comparable to the others anyway because it is how two parameters are combined, as opposed to a single stat.
"The Party told you to reject the evidence of your eyes and ears. It was their final, most essential command." -- 1984
I guess it depends on what you're measuring. Block clearly gives you linear returns on the figure of how much damage you're receiving, it that's too obvious, so I assume you're measuring something like the number of hits you can withstand.
Arguing on CE be all like:
https://youtu.be/JpRKrs67lOs?si=kPGA2RCKVHTdbVrJ
It's been an hour, so I'll go ahead and say it's not block. Block has better than linear returns, to a point.

If no one posts the answer in the topic I'll post the answer in another hour.
"We live in a country Hasire.." ~ yosouf06
REVOLVER STAKE! http://img.photobucket.com/albums/v717/ChocoboMog123/AltEisenRChocoboMog.png
Resistance is better than linear.

Maybe armor. It is % reduction like resistance. If the scaling is right, the diminishing returns per armor point and the increasing returns from the % reduction would cancel out.

I want a pet Lavos Spawn.
[Order of the Cetaceans: Phocoena dioptrica]
ReturnOfDevsman posted...
I guess it depends on what you're measuring. Block clearly gives you linear returns on the figure of how much damage you're receiving, it that's too obvious, so I assume you're measuring something like the number of hits you can withstand.
Yeah, the only other one that seems reasonable is Resistance because it scales directly with the damage.
No more shall man have wings to bear him to paradise. Henceforth, he shall walk.
Armor is diminishing

Resistance is linear
30 minutes left.

Any type of mitigation that lets you cancel out ALL damage is not going to have linear returns. Going from "I take damage" to "I'm invincible" is infinite returns with a cap.
"We live in a country Hasire.." ~ yosouf06
REVOLVER STAKE! http://img.photobucket.com/albums/v717/ChocoboMog123/AltEisenRChocoboMog.png
Increasing health is an example of a linear return to survival.

Stacking reductions is better than linear if we assume the scaling is the number of reductions.
1 50% is equivalent to 2x health.
2 50% is 4x health
3 is 8x health.
I want a pet Lavos Spawn.
[Order of the Cetaceans: Phocoena dioptrica]
It's a trick question.

The stat that gives you the most amount of damage mitigation is your attack stat because enemies deal no damage when they're dead.
https://i.imgur.com/Er6TT.gif https://i.imgur.com/Er6TT.gif https://i.imgur.com/Er6TT.gif
So? I deeded to some gay porn. It doesn't mean anything. - Patty_Fleur
Not sure what is precisely meant by linear, etc., in this instance.

But I would call option 4 (multiplicative %) linear.

Stacking multiplicatives would give precisely the same reduction on each 50%, compared to the last 50%. If you're already assumed to be taking 50% damage, another stacked multiplied 50% will reduce your current incoming damage by 50%.

Btw, meanwhile additive resistance would give more on each "10%" you add. The first bring it down 1/10, or 10%. The second gives 1/9, or 11.111%. The third is 1/8, and so on, until the 10th one gives you a full 100% return.
What a fuddy duddy.
ReturnOfDevsman posted...
I guess it depends on what you're measuring. Block clearly gives you linear returns on the figure of how much damage you're receiving, it that's too obvious, so I assume you're measuring something like the number of hits you can withstand.
This post pretty much spelled it out. It depends on what you're measuring. Here we have defensive stats, so returns should be measured as "how long you can live." In that regard,
  • Block is asymptotic with incoming damage. If a monster is hitting you for 100 damage, 10 block gives 11% more time to live (effective health, or EHP). 50 block would give 100% more EHP. 99 block would give 10000% more EHP. 100 block would make you invincible and any after that is wasted. Block is terrible at low amounts and amazing at high amounts (relative to incoming hits).
  • Resistance - similar to block, resistance gets better and better until you hit 100% resistance and become invincible. Every point of resistance gets better and better. The formula for returns is EHP = HP * 1/(1-(resistance/100)), this is hyperbolic growth.
  • Armor is linear. The %reduced slows down as it gets higher, but reductions are worth more and more as they grow. Doing a little rearranging, EHP = HP*[(armor/100)+1], a straight line.
  • Stacking damage resistances are exponential. The first 50% damage resistance doubles your EHP, the second doubles that, and so on. Changing the number (the 50) changes the base while adding more of them changes the exponent.


pegusus123456 posted...
It's a trick question.

The stat that gives you the most amount of damage mitigation is your attack stat because enemies deal no damage when they're dead.
Also hyperbolic growth, probably. If you kill everything in one hit you can't die, right?

Relm_Arrowny_87 posted...
Not sure what is precisely meant by linear, etc., in this instance.

But I would call option 4 (multiplicative %) linear.

Stacking multiplicatives would give precisely the same reduction on each 50%, compared to the last 50%. If you're already assumed to be taking 50% damage, another stacked multiplied 50% will reduce your current incoming damage by 50%.

Btw, meanwhile additive resistance would give more on each "10%" you add. The first bring it down 1/10, or 10%. The second gives 1/9, or 11.111%. The third is 1/8, and so on, until the 10th one gives you a full 100% return.
Did see this while I was typing, but almost considered adding a comment about this. Multiplicative reductions have linear relative growth, but that's not linear returns. Every source of 50% is always worth 50%, in that sense it's "x in = x out", right? Rhetorically, yes, but you can say the same with block or resistance - it's 1 for 1. In actuality, every 50% is worth twice as much as the previous. If you're getting hit for 100 before reduction and have 1000 health, you can take 10 hits - reducing the damage to 50 means you can eat 20 hits, reducing that to 25 means you can eat 40 hits, and so on.
(I'm completely sure you've read me ranting about this on the FFRK board.)
"We live in a country Hasire.." ~ yosouf06
REVOLVER STAKE! http://img.photobucket.com/albums/v717/ChocoboMog123/AltEisenRChocoboMog.png
Block is the only non-armor one you could really argue is linear. If you dont look at how it plays out in any particular fight.
While in any given fight, there will be some block threshold where you no longer take damage, doubling your block allows you to negate an attack twice as strong.

Depending on relative scaling, blocks value as you progress can be increasingly worse, flat, or increasingly better.

I want a pet Lavos Spawn.
[Order of the Cetaceans: Phocoena dioptrica]
Current Events » Can CE solve this common videogame math problem?