Make resistance pips consistent and uncapped


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

Swamp Slogger

Posts: 182

Joined: Monday, 2nd July 2018, 16:47

Location: United States

Post Thursday, 2nd May 2019, 21:30

Make resistance pips consistent and uncapped

The current situation is that the total resistance values for rF and rC +/++/+++ are 50%/67%/80%. Each pip provides a different amount of resistance than the pip before it; if it was multiplicatively consistent (halving damage at each step), it would be 50%/75%/88%, and if it was additively consistent, it would be 50%/100% (third pip wouldn't make sense because the second pip would already be at 100%). Thus, even if we provide the resistance values to the user, the current scaling doesn't feel right/intuitive.

Furthermore, it is possible that the presentation of pips as a limited number of boxes to check makes them appear more important compared to numbers (such as AC), which leads to some perception of resistances as a "newbie trap".

So my suggestion is to make each pip reduce damage by a fixed percentage - I'll use 25% as an example for the rest of this post - and to uncap resistances. This way, the player knows that getting an additional pip of resistance will reduce damage taken from that element by 25% (relative to current resistance level), no matter what. And since it's uncapped, it won't be a set of boxes to check, it'll just be a number like AC.

Formula:
  Code:
if (numberOfPips >= 0)
{
   resistibleDamageMultiplier = (1 - RESISTANCE_PER_PIP)^numberOfPips
}
else
{
   resistibleDamageMultiplier = (1 + RESISTANCE_PER_PIP)^numberOfPips
}


The interface presentation would look like rF 2 instead of rF++. If we decide to show the value, it would look like rF 2(44%) instead of rF++ (67%).

If the value of RESISTANCE_PER_PIP is significantly lower than 50% (as in my example of 25%), it may be reasonable to make resistances more common than they are now. However, bikeshedding the value of RESISTANCE_PER_PIP is outside the scope of this thread.

For this message the author stormdragon has received thanks: 4
duvessa, hannobal, nago, VeryAngryFelid
User avatar

Shoals Surfer

Posts: 301

Joined: Saturday, 21st May 2011, 08:23

Post Friday, 3rd May 2019, 07:01

Re: Make resistance pips consistent and uncapped

The problem with a huge change to how resistances work is rebalancing all the monsters...
(p.s. this is stupid some dev please make it not stupid) - minmay

For this message the author sardonica has received thanks:
IveGoneSupine

Ziggurat Zagger

Posts: 4432

Joined: Friday, 8th May 2015, 17:51

Post Friday, 3rd May 2019, 07:13

Re: Make resistance pips consistent and uncapped

sardonica wrote:The problem with a huge change to how resistances work is rebalancing all the monsters...


It is actually a good idea. Monsters are balanced with assumption that PC has one pip of corresponding resistance and 50% damage reduction is too much. Orb of fire, for instance, can kill almost any PC without fire resistance from full HP without giving player any chance to react.
Underestimated: cleaving, Deep Elf, Formicid, Vehumet, EV
Overestimated: AC, GDS
Twin account of Sandman25
User avatar

Shoals Surfer

Posts: 301

Joined: Saturday, 21st May 2011, 08:23

Post Friday, 3rd May 2019, 07:56

Re: Make resistance pips consistent and uncapped

VeryAngryFelid wrote:
sardonica wrote:The problem with a huge change to how resistances work is rebalancing all the monsters...


It is actually a good idea. Monsters are balanced with assumption that PC has one pip of corresponding resistance and 50% damage reduction is too much. Orb of fire, for instance, can kill almost any PC without fire resistance from full HP without giving player any chance to react.



I don't disagree just pointing out it's not a simple change.
(p.s. this is stupid some dev please make it not stupid) - minmay
User avatar

Vaults Vanquisher

Posts: 454

Joined: Thursday, 1st November 2018, 02:33

Post Friday, 3rd May 2019, 08:02

Re: Make resistance pips consistent and uncapped

Another suggestion involving a numerical parameter whose value should obviously be zero.
This is where mechanical excellence and one-thousand four-hundred horsepower pays off.

For this message the author tealizard has received thanks:
duvessa

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Friday, 3rd May 2019, 08:32

Re: Make resistance pips consistent and uncapped

sardonica wrote:The problem with a huge change to how resistances work is rebalancing all the monsters...
is it though? is the current balance actually better than the balance you'd get if you introduced this system and made no other changes? also if you chose like 40% or 50% for the parameter then balance would be basically unchanged
VeryAngryFelid wrote:Monsters are balanced with assumption that PC has one pip of corresponding resistance and 50% damage reduction is too much.
I'm not sure this is true. It certainly isn't true for monster bolt spells or poison arrow, which all have relatively low damage (compare them to monster stone arrow / iron shot). It does seem to be the case with some of the melee attack flavours, but not in general.

Yes, monster fireball is an outlier, but since it has higher damage than monster bolt of fire, I don't think its oddly high damage has anything to do with it being resistible.

Abyss Ambulator

Posts: 1131

Joined: Tuesday, 4th January 2011, 15:03

Post Friday, 3rd May 2019, 09:25

Re: Make resistance pips consistent and uncapped

What are dangerous attacks without resistances now?

1. Orb of fire
2. Nikola
3. Monsters with fireball (fire giants, and, who else?)
4. Ice branded melee attacks.
5. Maybee shock serpents and spark wasps? I am not convinced, but maybe, I would need to check.
6. Caustic shrikes/ acid blobs.

Anything else? I never remember having anything else that is more dangerous without resistances in 3 rune game than other, non-resistable attacks at the same depth.

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Friday, 3rd May 2019, 12:53

Re: Make resistance pips consistent and uncapped

Acid is still dangerous even with resistance, same for orbs of fire.

Shock serpents and especially spark wasp packs in depths are very dangerous without rElec. Where they differ from the other enemies listed is that they're a lot easier to deal with due to low HP, bad MR, and susceptibility to poison. If you don't do one of those things and let them get close the wasp pack can easily tear off half the health on standard HP character with high AC in one move. Players usually don't notice though because they at least have hex wands.

Other dangerous attacks without resistances:

- Torment (even with) - Curse toes, curse skulls, mummy priests/greater mummies (can spawn in depths vaults so relevant to 3 rune though uncommon)
- Electric golem lightning - actually most monsters can hit for up to ~60 with it, and a couple can hit for a bit more
- Deep elf sorcerer/others with corrosive bolt/acid attacks
- Crystal spear - resistances include shields, rmsl, and dmsl. Still dangerous with these but you're much less likely to get two-tapped if careful.

Abyss Ambulator

Posts: 1131

Joined: Tuesday, 4th January 2011, 15:03

Post Friday, 3rd May 2019, 13:01

Re: Make resistance pips consistent and uncapped

TheMeInTeam wrote:Acid is still dangerous even with resistance, same for orbs of fire.


On Acid blobs and caustic shrikes maybe - but what other monster can damage more with acid than other monsters with unresistable attacks at the same depth?


TheMeInTeam wrote:Shock serpents and especially spark wasp packs in depths are very dangerous without rElec. Where they differ from the other enemies listed is that they're a lot easier to deal with due to low HP, bad MR, and susceptibility to poison. If you don't do one of those things and let them get close the wasp pack can easily tear off half the health on standard HP character with high AC in one move. Players usually don't notice though because they at least have hex wands.


I personally think that they do not need to be adjusted even if we just remove resistances. But my guess is that other players who do not like them would disagree.


TheMeInTeam wrote:- Torment (even with) - Curse toes, curse skulls, mummy priests/greater mummies (can spawn in depths vaults so relevant to 3 rune though uncommon)


Torment can't kill you alone, and even rN+++ does not mitigate as much as rF+++ for fire. So I would not adjust it even if we remove rN+++. "Halving actual hp" is an easily understood mechanic.

TheMeInTeam wrote:- Electric golem lightning - actually most monsters can hit for up to ~60 with it, and a couple can hit for a bit more


I am unsure about how excessive ~60 damage is for Zot though.


TheMeInTeam wrote:- Deep elf sorcerer/others with corrosive bolt/acid attacks


They are not worse than some spellcaster with iron shot/crystal spear on the same level. No change is needed I think.


TheMeInTeam wrote:- Crystal spear - resistances include shields, rmsl, and dmsl. Still dangerous with these but you're much less likely to get two-tapped if careful.


Sorry, I specifically meant the resistances the OP talked about, not shields or spells. Since obviously crystal spear won't be changed by a change in resistance mechanic.

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Friday, 3rd May 2019, 15:46

Re: Make resistance pips consistent and uncapped

Corrosive bolt is a bit weaker than iron shots typical to the level, but has more range and corrodes. I'd contend that on monsters that have it this is significantly more threatening than most attacks on their respective levels.

Note that this does not mean I believe it should be changed, however. I just gave a list of things-not-mentioned regarding resistances that particularly hold my attention as "threat of death" in their areas.

Elec golems are fast and blink around, but actually quite a few monsters that use lightning bolts hit similarly hard and substantially earlier. Even with rElec they command respect from a prudent player, and certainly without it. The potential to lose ~1/3 of your health at long range in a single turn from a bad roll isn't to be taken lightly.

Also just because "torment can't kill you alone" doesn't mean the potential to get ripped for > 100 damage (with much higher odds than nearly any normal attack that can deal that much) is trivial. It is one of the single most threatening things a monster can do to the player unless the player is already in one-shot range from a wide variety of potential attacks. The only reason it isn't an obviously centralizing problem in 3 rune games is that it's uncommon. If it were more common outside extended it would greatly skew god choices + resistance priority, possibly even player species choices...which is exactly what happens in extended. People aren't switching to TSO or disproportionately using undead species/gargoyles in extended vs 3 rune to block damnation or physical attacks.

For this message the author TheMeInTeam has received thanks:
svendre

Lair Larrikin

Posts: 23

Joined: Saturday, 6th April 2019, 23:22

Post Saturday, 4th May 2019, 16:29

Re: Make resistance pips consistent and uncapped

I do agree that, in DCSS at least, transparency with stats is better. Displaying a percentage or even a number is better than a vague pip. While some might argue that determining the value of that pip is just another aspect of the "trial and error," learning inherent to rogue-likes, I think it's fair to say that resist numbers is too minute a detail that has too much impact on player decision making to make it worth hiding. The current system is practically the same as using pips for health.

My one concern with this proposal is making resistances uncapped. I do agree that having inconsistent resistance caps is unintuitive. Especially across all resistances. But it does feel like so many of the monsters in the game, and their abilities, are "balanced," around the current system that it would take a lot of effort to change it. Maybe changing resistances would be the impetus to adjust the monsters in the game to create a more balanced environment. Maybe changing resistances in the game would lead to stronger players chewing through more diverse fodder.

I also wonder what impact this would have on inventory management. With rElec, rCorr, and rPois, it currently is just a box you check, but that also means you're not juggling 8 pieces of gear because you are worried about being 100% immune to the abilities of Caustic Shrikes and Titans, on top of the Fire/Cold/MR stuff.

It's good that the conversation does include talking about the monsters. But it's worth spending some time thinking about the actual numerical values you want to work with on items. Give the monster balancing discussion a foundation to build from before you start laying bricks on to of it.

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Sunday, 5th May 2019, 18:29

Re: Make resistance pips consistent and uncapped

TheMeInTeam wrote:Corrosive bolt is a bit weaker than iron shots typical to the level, but has more range and corrodes.
Corrosive bolt has the same range as iron shot.

Blades Runner

Posts: 616

Joined: Thursday, 25th October 2012, 03:19

Post Sunday, 5th May 2019, 21:54

Re: Make resistance pips consistent and uncapped

duvessa wrote:
TheMeInTeam wrote:Corrosive bolt is a bit weaker than iron shots typical to the level, but has more range and corrodes.
Corrosive bolt has the same range as iron shot.


Corrosive bolt has a min and max range of 5
Iron shot has a min and max range of 4

For this message the author svendre has received thanks: 2
duvessa, TheMeInTeam

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Sunday, 5th May 2019, 22:59

Re: Make resistance pips consistent and uncapped

Oops looked at the noise value instead of the range value lol

For this message the author duvessa has received thanks:
nago
User avatar

Slime Squisher

Posts: 405

Joined: Sunday, 27th January 2019, 13:50

Post Monday, 6th May 2019, 17:22

Re: Make resistance pips consistent and uncapped

stormdragon wrote:The current situation is that the total resistance values for rF and rC +/++/+++ are 50%/67%/80%. Each pip provides a different amount of resistance than the pip before it; if it was multiplicatively consistent (halving damage at each step), it would be 50%/75%/88%, and if it was additively consistent, it would be 50%/100% (third pip wouldn't make sense because the second pip would already be at 100%). Thus, even if we provide the resistance values to the user, the current scaling doesn't feel right/intuitive.

Furthermore, it is possible that the presentation of pips as a limited number of boxes to check makes them appear more important compared to numbers (such as AC), which leads to some perception of resistances as a "newbie trap".

So my suggestion is to make each pip reduce damage by a fixed percentage - I'll use 25% as an example for the rest of this post - and to uncap resistances. This way, the player knows that getting an additional pip of resistance will reduce damage taken from that element by 25% (relative to current resistance level), no matter what. And since it's uncapped, it won't be a set of boxes to check, it'll just be a number like AC.


To be fair, you could look at the current resistances by fractions rather than percentages, which keeps things simple and (to a degree) internally consistent by addition. The example of rF and rC you gave has the "steps" of 1/2, 2/3, and 4/5. Running with this as a baseline, the consistency of the formula would be as follows:
1) The formula is consistent, and the next step increments the top and bottom of the fraction by one each time. In this case, it actually has a missing step for the third pip:
+ is 1/2, ++ is 2/3, +++ is 3/4, and ++++ would be 4/5. Repeat as necessary.
2) The formula is consistent, but the step has a variable increment. This leads to
2.1) Each next step takes the previous two steps as an increment. In effect, this would string together as [1, 1, 2, 3, 5 ...]. With that, the current system would remain in place when uncapped:
+ is 1/2, ++ is 2/3, +++ is 4/5, ++++ is 7/8, +++++ is 12/13 and so on.
2.2) The next step takes all the previous steps for the variable increment. Same song and dance, with a more frantic pace than either of the above.

So, with your own idea of uncapping taken into consideration, the existing system could remain. It would also mean no resistance could effectively make chars immune, and ImmX would be a separate set of constants altogether.
There is always something new to learn.
User avatar

Zot Zealot

Posts: 982

Joined: Monday, 29th September 2014, 09:04

Post Tuesday, 7th May 2019, 01:01

Re: Make resistance pips consistent and uncapped

I like how much more intuitive the maths of that approach is, but the gain from each additional pip falls off much faster than the OPs proposal. I think part of the benefit of reworking resistance percentage like this is that you can make resistance scaling a little flatter, so resistances are less binary.
User avatar

Slime Squisher

Posts: 405

Joined: Sunday, 27th January 2019, 13:50

Post Thursday, 9th May 2019, 15:36

Re: Make resistance pips consistent and uncapped

chequers wrote:I like how much more intuitive the maths of that approach is, but the gain from each additional pip falls off much faster than the OPs proposal. I think part of the benefit of reworking resistance percentage like this is that you can make resistance scaling a little flatter, so resistances are less binary.


Fair enough. I would like the current resistances to be easier to understand without reliance on externals, and the OP addressed that very well.
There is always something new to learn.

Ziggurat Zagger

Posts: 5382

Joined: Friday, 25th November 2011, 07:36

Post Wednesday, 15th May 2019, 21:59

Re: Make resistance pips consistent and uncapped

Nikola is the main case of "balanced around the player having resistance". Of course since he's a unique, if you don't have it, you only have one monster in the game to run from. I'd argue that electric golems are also balanced around having rElec, but they're rare and basically only in zot:5, so I don't consider this a problem. Orbs of fire also count for rF, but have the similiar "end game only monster" factor to balance them out.

This sort of change is something I've argued for in the past and I think it'd be a nice improvement. As mentioned there's two versions of this: one where each pip is smaller (25%) and then you might want to rebalance various monsters, and the easy version where each pip is 40-50% and you don't rebalance monsters.

I'd strongly prefer the 25% version where elemental damage gets tuned down to match, although I understand that's more work and balance might be off for a while. I don't think resistances should be nearly mandatory. That said, a simple 50% per pip uncapped with no monster rebalance is still an improvement I'd be happy to see.

Zot Zealot

Posts: 1004

Joined: Thursday, 16th August 2018, 21:19

Post Wednesday, 15th May 2019, 22:16

Re: Make resistance pips consistent and uncapped

I actually like pseudo-mandatory resists. They make the decision of which equipment to use more interesting.

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Thursday, 16th May 2019, 15:42

Re: Make resistance pips consistent and uncapped

petercordia wrote:I actually like pseudo-mandatory resists. They make the decision of which equipment to use more interesting.


This does depend on whether the equipment is available for there to be a choice.

Of all the resistances the largest offender in that category is MR though. Sometimes it's impossible to get even one source until late. Often you can only get one, and have to cut AC to wear crappy body armor for it. In these cases MR checks are a serious problem and can occasionally end runs to paralysis and the like when you can't control LoS or first go into Orc.

For this message the author TheMeInTeam has received thanks:
petercordia

Ziggurat Zagger

Posts: 8786

Joined: Sunday, 5th May 2013, 08:25

Post Friday, 17th May 2019, 09:42

Re: Make resistance pips consistent and uncapped

TheMeInTeam wrote:Often you can only get one, and have to cut AC to wear crappy body armor for it. In these cases MR checks are a serious problem and can occasionally end runs to paralysis and the like when you can't control LoS or first go into Orc.
Maybe if you wore body armour that gave you good AC, you would die to paralysis less
User avatar

Vaults Vanquisher

Posts: 454

Joined: Thursday, 1st November 2018, 02:33

Post Friday, 17th May 2019, 11:46

Re: Make resistance pips consistent and uncapped

Seriously, I don't even pay attention to MR. Just don't get paralyzed, folx.
This is where mechanical excellence and one-thousand four-hundred horsepower pays off.

Swamp Slogger

Posts: 182

Joined: Monday, 2nd July 2018, 16:47

Location: United States

Post Friday, 17th May 2019, 14:51

Re: Make resistance pips consistent and uncapped

This proposal is not about changing the role of resistances in the game (mandatory/impactful vs not - that has to be tweaked separately from changing the presentation), this is about presenting resistances to the user in a more intuitive way. Every comment after Sorcerous's comment is offtopic, in fact I specifically asked people NOT to bikeshed the resistance-per-pip value. Also magic resistance is not part of the proposal.

For this message the author stormdragon has received thanks:
IveGoneSupine

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Friday, 17th May 2019, 16:49

Re: Make resistance pips consistent and uncapped

duvessa wrote:
TheMeInTeam wrote:Often you can only get one, and have to cut AC to wear crappy body armor for it. In these cases MR checks are a serious problem and can occasionally end runs to paralysis and the like when you can't control LoS or first go into Orc.
Maybe if you wore body armour that gave you good AC, you would die to paralysis less


You can get 100 --> 0'd in any body armor generating at least 1% of the time in orc. Assuming you're playing a species that even allows you to wear any.

Better play is to block LoS, but there are situations where this isn't attainable. Usually involving stairs, but not always.

Ziggurat Zagger

Posts: 6454

Joined: Tuesday, 30th October 2012, 19:06

Post Friday, 17th May 2019, 18:56

Re: Make resistance pips consistent and uncapped

stormdragon wrote:This proposal is not about changing the role of resistances in the game (mandatory/impactful vs not - that has to be tweaked separately from changing the presentation), this is about presenting resistances to the user in a more intuitive way. Every comment after Sorcerous's comment is offtopic, in fact I specifically asked people NOT to bikeshed the resistance-per-pip value. Also magic resistance is not part of the proposal.

I will point out that currently resistances cap out at one - rF-- provides the same damage penalty as rF-, so uncapping it in a negative direction is a slightly larger change than uncapping it in a positive direction (not that that detracts from the proposal significantly, it just wasn't mentioned and I thought it should be thought about)
Spoiler: show
This high quality signature has been hidden for your protection. To unlock it's secret, send 3 easy payments of $9.99 to me, by way of your nearest theta band or ley line. Complete your transmission by midnight tonight for a special free gift!

Blades Runner

Posts: 593

Joined: Tuesday, 11th December 2018, 19:14

Post Friday, 17th May 2019, 19:44

Re: Make resistance pips consistent and uncapped

I don't see a downside to uncapping negative, though you want to be clear about the consequences at each pip then. It's useful to know when you can be 1-shot, and uncapped negatives would push players there pretty fast unless the scaling is very different.

As it stands negative resistance is already something of a false choice, and oddly only resists rF and rC, and rarely (through transmutation) rPois.

Return to Game Design Discussion

Who is online

Users browsing this forum: No registered users and 27 guests

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.