Sign in with
Sign up | Sign in
Your question

Incremental Resistance Ideas

Tags:
  • Video Games
Last response: in Video Games
Share
Anonymous
March 31, 2005 9:44:38 PM

Archived from groups: rec.games.roguelike.angband (More info?)

Hi,

I have been thinking for a while about adding an incremental
resistance system to Oangband. I really do not like the traditional
approach of additive percentile bonuses. This system is fundamentally
flawed in that there is a magical "increasing returns" implicit to it.
Until you reach total immunity, each X% bonus is actually more
valuable than the previous X% in terms of survivability.

I favor is system of "resistance points" - rpoints below - indexing a
lookup table of damage modification. The player would start with 0
rpoints to all elements. 10 rpoints would yield true immunity, and
negative rpoints would represent a susceptibility.

Note that the actual rpoints system can be kept below the hood. The
player, if not interested, need only know that:
- Each successive resistance item further reduces damage.
- It is wise to stack resistances or find "immunity" items for common
elements.
- Temporary resists are very powerful.

Here are my thoughts so far.

******
Items:
******

Immunity flags are replaced by greater resistance flags. Items that
currently have immunity will have both greater and normal flags which
together normally provide immunity. Other items may be upgraded from
normal to greater resistance.

*****************
Resistance Table:
*****************

Rpoints Damage
<0 130%
0 100
1 75
2 55
3 40
4 30
5 25
6 20
7 15
8 10
9 5
10+ 0

Base rpoints is 0.
Normal resistance flags give +2
Greater resistance flags give +4
Normal + greater flags on the same item give +10
Temporary resistance is worth +4
Temporary resistance with Enhance Magic gets +5
Note: This really cleans up the horrible implementation
currently in place for Enhance Magic on temp resistances.

Ents get -1 for fire
Shadow Fairies get -1 for Light

Shapeshift Ent-form gives -2 for fire and caps rpoints at 4
Shapeshift Vampire-form gives -2 for light and caps rpoints at 1

Rpoints > 0 prevents most side-effects. Poison will be reduced by some
formula TBD.

***************
Infrastructure:
***************

rpoints will be determined in calc_bonuses.

In addition, there will a function:

byte check_resistance(byte element, byte random_factor)

Returns: Percentage from the table above.

"random_factor" is the possible variation in the return value. A
random_factor of "100" will allow the return value to fluctuation with
an amplitude sufficient to reach whichever is closer of 0 or 100
(i.e. rpoints = 2 and random_factor = 100 returns a value from 10 to
100). Most high-element resistance checks will have a random factor
of 10 (roughly 50% to 60% damage at rpoints 2). Chaos will have a
random factor of 20 (roughly 45% to 65% damage at rpoints 2).

******
Notes:
******

- To achieve roughly the same resistance a single item currently
provides, two resist items or one greater resist item is needed.

- With one resist item high elements will be doing about 10% more
damage than before.

- With one resist item poison will be doing about 66% more damage.
That should be OK with the dramatic reduction in base poison damage a
few patches ago.

- It is possible to take a small amount of damage with an "immunity"
item equipped, if you have a susceptibility. This should be
insignificant.

- The ability to stack permanent resists threatens to devalue
temporary resists. This is why the temporary resists provide the
rpoints of two normal resist items.

- Items that provide multiple low resists will be much more useful in
the late game - wear a Crown of the Magi AND a Robe of Permanence!
Some items may need a tweak to reflect this.

--
Bahman Rabii

More about : incremental resistance ideas

Anonymous
April 1, 2005 9:40:20 AM

Archived from groups: rec.games.roguelike.angband (More info?)

Pretty cool!
The diminishing return idea is what makes this cool,
instead of straight %.
In fact, DrAngband uses a somewhat similar system
Each resist cuts damage to HALF, but resists are
cumulative infinitely. Immunity is never achieved thu...
Once i killed a Greater Hell Wyrm with warrior in dlvl 29,
CLVL 28 !!!! less than 400 hp, thanks to a lucky 6x resist fire
and some pots of speed.

--
I will hold the candle till it burns up my arm.
I'll keep taking punches until their will grows tired.
I will stare the sun down until my eyes go blind.
I won't change direction and I won't change my mind...
How much difference does it make?
Anonymous
April 1, 2005 12:28:52 PM

Archived from groups: rec.games.roguelike.angband (More info?)

In article <1112319881.e2e8ed0b59292e69f05d2bd09ade5e04@teranews>,
Bahman Rabii <bahman@oangband.com> wrote:
>
>Hi,
>
>I have been thinking for a while about adding an incremental
>resistance system to Oangband. I really do not like the traditional
>approach of additive percentile bonuses. This system is fundamentally
>flawed in that there is a magical "increasing returns" implicit to it.
>Until you reach total immunity, each X% bonus is actually more
>valuable than the previous X% in terms of survivability.

This isn't really true - there are some diminishing returns, depending
on the size of the hits you can take.

Consider single and double resists in Angband. For the big elemental
blasts, you take 1600 unresisted - you need the first 66%. Double
resist is nothing like as important - you need it if you're going to
throw down with a big nasty that breathes a lot, but you can manage
without it most of the time. That extra 23% just isn't as
valuable. (If single resist were 43%, another 23% would be huge.)

When you look at the lower damage cap of poison, it's even more
significant. Single resist is enough.

>I favor is system of "resistance points" - rpoints below - indexing a
>lookup table of damage modification. The player would start with 0
>rpoints to all elements. 10 rpoints would yield true immunity, and
>negative rpoints would represent a susceptibility.
>
>Note that the actual rpoints system can be kept below the hood.

The real problem with this is that it's hard to get a feel
for. Without knowing the numbers, the player is going to be far less
certain whether or not their resists are sufficient. They don't like
finding out the hard way that they weren't.

It makes juggling one's equipment much harder. (This is not
necessarily bad, but it could easily make it too hard, constraining
the player's options. If you need rbasic twice, that's probably your
armor and shield spoken for.)

(Of course, I don't remember O's damage caps and player HP values.)



--
Julian Lighton jl8e@fragment.com
/* You are not expected to understand this. */
Anonymous
April 1, 2005 12:28:53 PM

Archived from groups: rec.games.roguelike.angband (More info?)

jl8e@fragment.com (Julian Lighton) writes:

> In article <1112319881.e2e8ed0b59292e69f05d2bd09ade5e04@teranews>,
> Bahman Rabii <bahman@oangband.com> wrote:
<...>
> >Until you reach total immunity, each X% bonus is actually more
> >valuable than the previous X% in terms of survivability.
>
> This isn't really true - there are some diminishing returns, depending
> on the size of the hits you can take.
>
> Consider single and double resists in Angband. For the big elemental
> blasts, you take 1600 unresisted - you need the first 66%. Double
> resist is nothing like as important - you need it if you're going to
> throw down with a big nasty that breathes a lot, but you can manage
> without it most of the time. That extra 23% just isn't as
> valuable. (If single resist were 43%, another 23% would be huge.)
>
> When you look at the lower damage cap of poison, it's even more
> significant. Single resist is enough.

I was unclear. I was not refering to the standard angband system of
stacking permanent and temporary resists which is OK in this respect.
Rather, I was refering to the system in EyAngband and Steamband in
which items grant fixed additive bonuses. I object to this because
each percentile you add is in many ways more significant than the
last. It is too fine a line between "this attack will kill you for
sure" and "this attack is totally irrelevant to you".

--
Bahman Rabii
Anonymous
April 1, 2005 3:13:09 PM

Archived from groups: rec.games.roguelike.angband (More info?)

"Julian Lighton" <jl8e@fragment.com> schrieb...

> The real problem with this is that it's hard to get a feel
> for. Without knowing the numbers, the player is going to be far less
> certain whether or not their resists are sufficient. They don't like
> finding out the hard way that they weren't.

I think in the resistance screen (where you see which item grants
which resistances), the current damage% should be displayed
(but calculated only for known items)

Werner.
Anonymous
April 1, 2005 4:29:36 PM

Archived from groups: rec.games.roguelike.angband (More info?)

Bahman Rabii <bahman@oangband.com> writes:

> Hi,
>
> I have been thinking for a while about adding an incremental
> resistance system to Oangband. I really do not like the traditional
> approach of additive percentile bonuses. This system is fundamentally
> flawed in that there is a magical "increasing returns" implicit to it.
> Until you reach total immunity, each X% bonus is actually more
> valuable than the previous X% in terms of survivability.

If you believe in allowing a certain plus to provide immunity, this
is inevitable as the last plus is of infinite relative value.

> I favor is system of "resistance points" - rpoints below - indexing a
> lookup table of damage modification. The player would start with 0
> rpoints to all elements. 10 rpoints would yield true immunity, and
> negative rpoints would represent a susceptibility.

I find these tables to be hacks.

Let's define d(x) to be the damage multiplier you use given a
resistance value of x. To avoid "increasing returns" what you
want is d(x+1)/d(x) > d(x)/d(x-1). For example, d(x) = 1/x
looks fine. If you wish to extend it to values less than 1,
you need to complicate things a bit, but that's no big deal.

Perhaps a function along the lines of

d(x)
{
den = 1+abs(x)
if (x >= 0)
return (1/den)
else
return (2 - 1/den)
}

would do.


Eddie
Anonymous
April 1, 2005 9:07:15 PM

Archived from groups: rec.games.roguelike.angband (More info?)

On 2005-04-01 10:28:52, jl8e@fragment.com (Julian Lighton) wrote:

> In article ,
> Bahman Rabii wrote:
> >
> >Hi,
> >
> >I have been thinking for a while about adding an incremental
> >resistance system to Oangband. I really do not like the traditional
> >approach of additive percentile bonuses. This system is fundamentally
> >flawed in that there is a magical "increasing returns" implicit to it.
> >Until you reach total immunity, each X% bonus is actually more
> >valuable than the previous X% in terms of survivability.
>
{snip a really good idea}

I think this is a great modification to the current percentile resist system. I
could even taking it even further, and making standing on a glyph increase
percentile resistances, or have the mage spell that prevents all damage
temporarily count as one resistance to everything and a big increase in AC
rather than grant complete immunity to damage. I could even see bringing back
the old potion of invurnability from Moria at that point.
>--
-Jeff

Author of NPPAngband. Check it out at:
Anonymous
April 2, 2005 12:54:39 AM

Archived from groups: rec.games.roguelike.angband (More info?)

In article <1112371546.921da233c232789af56cadbd923ee605@teranews>,
Bahman Rabii <bahman@oangband.com> wrote:
>
>jl8e@fragment.com (Julian Lighton) writes:
>
>> In article <1112319881.e2e8ed0b59292e69f05d2bd09ade5e04@teranews>,
>> Bahman Rabii <bahman@oangband.com> wrote:
><...>
>> >Until you reach total immunity, each X% bonus is actually more
>> >valuable than the previous X% in terms of survivability.
>>
>> This isn't really true - there are some diminishing returns, depending
>> on the size of the hits you can take.
>>
>> Consider single and double resists in Angband. For the big elemental
>> blasts, you take 1600 unresisted - you need the first 66%. Double
>> resist is nothing like as important - you need it if you're going to
>> throw down with a big nasty that breathes a lot, but you can manage
>> without it most of the time. That extra 23% just isn't as
>> valuable. (If single resist were 43%, another 23% would be huge.)
>>
>> When you look at the lower damage cap of poison, it's even more
>> significant. Single resist is enough.
>
>I was unclear. I was not refering to the standard angband system of
>stacking permanent and temporary resists which is OK in this respect.
>Rather, I was refering to the system in EyAngband and Steamband in
>which items grant fixed additive bonuses. I object to this because
>each percentile you add is in many ways more significant than the
>last. It is too fine a line between "this attack will kill you for
>sure" and "this attack is totally irrelevant to you".

I understood - I was disagreeing with you, and using Angband as an
example because I know the numbers. At some point, more resist just
isn't that important. (Now, if the percent per item isn't that large,
it's never going to reach the point of diminishing returns, and at low
percents, you do get increasing returns per item.)
--
Julian Lighton jl8e@fragment.com
/* You are not expected to understand this. */
Anonymous
April 2, 2005 7:34:08 AM

Archived from groups: rec.games.roguelike.angband (More info?)

Eddie Grove <eddiegrove@hot.NOSPAM.mail.com> writes:

> If you believe in allowing a certain plus to provide immunity, this
> is inevitable as the last plus is of infinite relative value.

Admittedly, I do approve of an exception for the extreme case.

> > I favor is system of "resistance points" - rpoints below - indexing a
> > lookup table of damage modification. The player would start with 0
> > rpoints to all elements. 10 rpoints would yield true immunity, and
> > negative rpoints would represent a susceptibility.
>
> I find these tables to be hacks.

A table of some sort vs a formula of some sort is an implementation
detail. We can get the same effects either way. I prefer a table for
consistency with existing features, but I understand your distaste.

--
Bahman Rabii
Anonymous
April 2, 2005 7:50:33 AM

Archived from groups: rec.games.roguelike.angband (More info?)

jl8e@fragment.com (Julian Lighton) writes:
> I understood - I was disagreeing with you, and using Angband as an
> example because I know the numbers. At some point, more resist just
> isn't that important. (Now, if the percent per item isn't that large,
> it's never going to reach the point of diminishing returns, and at low
> percents, you do get increasing returns per item.)

Well the damage percentages for 0,1,2,3,4,5 resistance items are
100,55,30,20,10,0. The intension of this spread is the following:

- Each level should feel like a marked improvement over the last.
The jump from 20% to 10% may be a touch weaker than the rest,
but could still change your ability to tackle a demon or
dragon pit.
- 1 level be enough for all high resists.
- 2 levels be enough for low resists - or sometimes 1 with very
careful play.
- There is some difficult but realistic way to achieve immunity.

As a bonus, there is a cleaner way to implement various minor bonuses
and vulnerabilities.

I agree that statscreens must show overall percentages.

--
Bahman Rabii
!