Sunday, October 10, 2010

Saving Thorws part II

Hello friends.

After much discussion with James Shewey, I feel that I need to do another post on game mechanics. Specifically "ability checks." The biggest challenge of this project is for me to really learn how to communicate, so I really value all the feedback I get from programmer types. There are few things that should bedisccued first. Here's the goes.

First terminology: what I am describing is no longer called an "ability check." Ability check will get to confusing. This will hence forth called "saving throws." This is because (as will become clear later) what the throw is against will be more important than what ability is used.

Secondly, all the saving throws are character versus character, rather than character versus environment. In this blog I am dealing with "saving throw to catch stealth" "saving throw to resist fear" "saving throw to escape entanglement" etc.

Third, there are goals. These are guidelines, for expected gameplay, that any way of setting up saving throws should conform to:
Guideline 1: If character is making a saving throw against an ability of another character of equivalent level and equivalent relevant attribute (str, prc, etc) than the chance of success should be about 8-10%. This is for sake of player enjoyment, and a sense of action in battle. Players will become frustrated if their abilities work only 50% of the time, or even fail 25% of the time. In sum: success of saving throws should be fairly rare among even matched characters.

Guideline 2: If the defender's level > attacker's level that should increase the chance of a successful saving throw. The inverse is also true.

Guideline 3: If the defender's ability > attacker's ability that should increase the chance of a successful saving throw. The inverse is also true.

Guideline 4: Unequal levels and unequal abilities will affect probability of a save, as above, but it should be very difficult for the probability to ever reach 1 or fall to 0. For instance a defending player is only two lower, and his ability is two lower, than he should still have a chance to save (though it will be lower than 10%). This is because of a bit challenge in game play: it should be hard to have your spells never fail or your defending player always resist.

Guideline 5: Items, buffs, may increase the chance of the saving throw, but not the ability that the saving throw uses.

Okay, so hopefully that should serve as a guide. Keep in mind, gameplay and good gameplay is the goal of all the game mechanics.

The basic function (object? class? I don't speak programmer) is a very simple formula:
Probability to save = (ad-p+b)/ad
ad = relevant ability of defending player.
p = the penalty. This must always be greater than 0.
b = the bonus to saving throw. This comes from equipment or spell buffs. The details of those things are for another blog.


The variable "a" will be whatever relevant ability is used in the saving throw. "p" is where all the work is done. How "p" is calculated will depend on the type of saving throw.

So the function for saving throw is (ad-p+b)/ad. What kind kind of saving throw determines both a and p.

So if the saving throw is "catch stealth" then:
p=sa+(aa-ad)+(la-ld)
a = defender or attackers ability
l = defender or attacker level
sa = stealth rating of attacker. How this will be calculated will be subject of another blog.


If the saving throw is "resist fear" then:
p=ma+(aa-ad)+(la-ld)
a = defender or attackers ability
l = defender or attacker level
ma = power of fear spell. Like stealth, how it is calculated will be for another blog.


Now right here, I think I need to slow down. I am not a programmer, and I need to explain my ideas to programmers.

So, am I on the right track? Is this way of handling saving throws making sense in programmer mindset?

1 comment: