Monday, October 11, 2010

Hit Points and levels.

Apparently, according to Adam, I actually do not need to come up with formulas. Nonetheless, I like formulas and will keep using them.

Formulas are my friends. So constant. So dependable.

Anyway, a few things need to be said before getting into hit point calculations. First, whenever a character levels up, the player will have the opportunity to raise one attribute by one point. So if a character has the following "fab five" basic attributes:
Str 13
Dex 14
Prc 9
Wil 12
Int 10

The player can raise the Str to 14 or the Prc to 10 or so on and so on. This helps fulfill two important aspects of gameplay: Players fill in control of their character's development and (in combat) there is a degree of data hidden to the player or "incomplete knowledge." So if you, the player, are fighting a warrior, you would not know if your opponent favored Dex or Str. You might guess he didn't emphasize Wil, but you would never know. Knowing everything about the the other character's stats is little bit like playing poker where everyone has an open hand.

The important Stat for this blog is Str. Str is used to determine overall hit points of a character. There are few things that I am trying to do when I calculate hit points.
1. Hit Points should raise with level, and raise in such away that we avoid "diminishing returns." If you're a level 2 warrior with 16 hit points, and you raise it by 8, that's great. If you're a level 20 warrior with 80 hitpoints, another 8 is not a great gain.
2. Hit points are dependent on Str, but not only Str. Each level should give you some extra hit points, and if you add to your Str, you will get even more.
3. Warriors should have the most HP, Rogues the Second most, and Mages the least. These differences should become more and more pronounced as the levels increase.

I think many people might come up with a better formula, but here's how I have thought it up.

h = Str * b
h = total hit points. This will range from 320 - 4000 depending on class, level, etc.

b = the base hit points. The base hit points increase at a constant rate based on class and level. Str is not yet applied.


Base hit points will be calculated using the compounding interest formula. This will avoid diminishing returns.

b = p(1 + r)l

p = equals "principle" hit points (sorry, can't think of a better term!) which will be different for each class.
r = the rate of increase each level, also different for each class.
l = character level.


"p" for warriors, rogues, and wizards will be 42, 40, and 38 respectively. "r" for warriors, rogues, and wizards will be .055, .05, and .045 (or 5.5%, 5% 4.5%) respectively.

When all this is put together, we get a nice graph that reflects the range and progression of hit points. A "strong" character is one in which the player increase Str every fourth level. A "weak" character is one in which the player increases Str every sixth.



Obviously, this does not reflect the full range of hit points. It is possible to have a warrior who has 40 Str and around 8000 Hp, but he would be clumsy with his weapon (low Dex), vulnerable to all kinds of spells (Low Wil and Int) and would never catch that Rogue sneaking up right under his nose (Low prc). He'd basically be brute idiot. Much like "dim" in "A Clockwork Orange."

Now here's the real challenge. These numbers do not mean a whole lot unless they are compared with how much damage can be dealt in a single round. Obviously, "balance" is hard thing to master. However, I think that if something like Hit Point scaling remains constant, then there is a reference point for all else to adjust to.

Of course, this part of the game is not set in stone and can be changed.

How does this look?

No comments:

Post a Comment