Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Idle chatter (http://angband.oook.cz/forum/forumdisplay.php?f=6)
-   -   Resistances: additive vs boolean (http://angband.oook.cz/forum/showthread.php?t=4115)

the Invisible Stalker February 11, 2011 09:46

Either system is playable, once you understand how it works. As coded, the O system is more transparent for new players than the V system, because the 'C' command shows you your resistance percentages. But that's more of a user interface question than a gameplay question. The O base resistance progression starts 0% -> 45% -> 75% -> 85%. After three resistances, it's really not worth the bother any more. There are also minor resistances, which seem to be worth half a resist. Depending on your class and the resistance, you might also have the progression -30% -> 25% -> 60%. I can't check how these continue without recalling to town. Not all higher resists in O are percentage based, only light, dark, confusion, sound, shard, nexus, nether, chaos, and disenchantment. The others are binary. Often the same equipment item will have fewer resists in O than in V, or minor resists instead of full, so holes in the higher resists are common even in the endgame, and you rarely get multiple high resists. But that's the way O is balanced, not a consequence of additive resists in general.

dos350 February 11, 2011 12:47

as a MAJOR diablo 2 advocate, i voted additive, but i dont think it would work in vanilla angband, ee~ binary feels good , but it took me awhile to get used to..

Philip February 11, 2011 12:49

Why should it not work? There are two perfectly good implementations, both mentioned in the thread in quite some detail.

dos350 February 11, 2011 15:01

please no, so wat? , eee

Philip February 11, 2011 15:09

What on earth is that post supposed to mean? Could you explain using more that 4 words?

Timo Pietilš February 11, 2011 15:13

Quote:

Originally Posted by Philip (Post 48496)
What on earth is that post supposed to mean? Could you explain using more that 4 words?

I don't think you will get anything comprehensible from eek. At most you get some yeek-talk. Apparently he is quite incapable of writing like a human being.

half February 11, 2011 19:14

There are several different specifics that can be used for 'additive' resists. First, let's suppose that all resists are either present or not on an object or temporary source (like now) but that having multiple copies of a resist improves your resistance. There are a few obvious approaches:

Code:

(1):  66.7%, 88.9%, 96.3%, ...  (2/3, 8/9, 26/27, ...)
(2):  50.0%, 75.0%, 87.5%, ...  (1/2, 3/4, 7/8, ...)
(3):  50.0%, 66.7%, 75.0%, ...  (1/2, 2/3, 3/4, ...)

(1) is closest to the current system, and continually divides the damage by 3. This currently occurs with permanent + temporary resistance, and this would simply extend this to incorporate multiple permanent sources. (2) is similar, but halves the damage instead of dividing by 3. This is perhaps better balanced with current resistance distribution on items. (3) is weaker again, but quite elegant.

Alternatively, some systems have different (numerical) bonuses to resistance. For example an item might give +40% resistance to fire and another might give +20% resistance to fire. There are three natural ways for this to combine in an 'additive' way:

Code:

(4): add the numbers, if it is 100% or greater, you are immune
(5): add the numbers with a cut-off maximum resistance such as 90%
(6): 'co-multiplication'

(4) and (5) are fairly self-explanatory. (5) features in Diablo.

(6) is more tricky, but features in at least one variant (FA?). You take the complements of the resistances (the complement of X% is (100-X)%) and then multiply these and then take the complement of that. This is also the way that you 'add' probabilities to get the probability of (A or B) from the probability of A and the probability of B, and often comes up in mathematics (e.g. in De Morgan's laws).

For example, if you have +40% resistance from one source and +20% from another, the complements are +60% and +80%. Multiplying these gives +48%, and the complement of this is +52%, so you have +52% resistance.

Note that (6) is the equivalent to (1) and (2). For example, if you have two items with 50% resistance, it gives you 75% resistance, and if you have three it gives you 87.5% resistance. Two items with 66.7% resistance give you 88.9% resistance etc.

I think all six options are workable, but people might want to refer to this list when thinking about them as some of them have problems that others do not. For example (1) makes the game strictly easier, while the others do not.

Derakon February 11, 2011 20:01

My general opinion is that important algorithms should be as transparent as possible while still achieving the desired effect. Thus I'd suggest simply that resists divide damage by (N + 1), where N is the number of sources of resistance (thus 1/2, 1/3, 1/4, 1/5, etc.). Simple, scalable, easy to understand, doesn't distinguish between permanent and temporary resists or between basic 4, poison, and the rest. Basic elements are made about 16% more dangerous (which if necessary could be compensated for by tweaking damage formulae and caps), high element resistance is regularized.

Nick February 11, 2011 20:54

Quote:

Originally Posted by half (Post 48533)
(6) is more tricky, but features in at least one variant (FA?). You take the complements of the resistances (the complement of X% is (100-X)%) and then multiply these and then take the complement of that. This is also the way that you 'add' probabilities to get the probability of (A or B) from the probability of A and the probability of B, and often comes up in mathematics (e.g. in De Morgan's laws).

For example, if you have +40% resistance from one source and +20% from another, the complements are +60% and +80%. Multiplying these gives +48%, and the complement of this is +52%, so you have +52% resistance.

Yes, FA. I like to think of it (and it is coded) as reduction of damage - so in your example the first item reduces damage to 60%, and then the second item cuts off 20% of that, leaving damage at 48%.

pampl February 11, 2011 23:27

Quote:

Originally Posted by Derakon (Post 48539)
My general opinion is that important algorithms should be as transparent as possible while still achieving the desired effect. Thus I'd suggest simply that resists divide damage by (N + 1), where N is the number of sources of resistance (thus 1/2, 1/3, 1/4, 1/5, etc.). Simple, scalable, easy to understand, doesn't distinguish between permanent and temporary resists or between basic 4, poison, and the rest. Basic elements are made about 16% more dangerous (which if necessary could be compensated for by tweaking damage formulae and caps), high element resistance is regularized.

If we want higher resistances to reduce damage by less than low resistances we could always generalize that as damage = x/(x+n) where x = 1 for low resists and maybe 2 or 3 for high ones.

edit: haven't thought about it much, but this might be a good system for resistance reduction as well


All times are GMT +1. The time now is 18:55.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.