RPG attributes and statistics

Ugh so I am so confused on how to do this. So here’s the problem. Lets say we have a:
Level 20 Warrior Character

  • Strength = 50 (Determines attack damage)
  • Vitality = 45 (Determines health total)
  • Focus = 20 (Determines how much mana and magic attack damage)
  • Has a level 23 sword that does 45 - 60 base damage

Here’s the problem. If the character levels up and adds a point to strength then how does that affect the sword damage? How would vitality affect health? etc. Would it increase by (strength value)%? How is this done?

EDIT: I found this article. It explains stats pretty well but I still don’t understand the ID system at all. How does one implement it and what is it good for? Also, what other ways could someone do stats like this? Any suggestions?

In my experience, it’s done by adding weapon damage to base strength. Same with defense, add armor defense to base defense. If a point of strength = a point of attack damage, then yes 1 strength will only increase damage by one.

Awesome! So it is simpler than I thought. I also updated the original post with another question. If you have an answer to that, then that would be even better. Thanks

This has the old problem of having no right answer. Pokemon is a decent example that avoids linear relations Damage - Bulbapedia, the community-driven Pokémon encyclopedia The important part for this conversation is basically strength/defense*actiondamage. This way makes increases in stats much less efficient (at higher numbers) than the attack that was used.

4 Likes

That is such a random equation. I think for simplicity, i will go with Misterselmo’s suggestion. If there are any balance issues, then I will try that equation out. Thanks man

You would probably want to hack it down so that is is simpler, but you don’t want to take this lightly.

I bring it up because linear ‘damage = attack - defense’ equations are a nightmare to balance. First issue is it can give you negative numbers. That’s not difficult to clamp, but you still have the fact that there will be a minimum level to even be able to do anything to an enemy. The next issue is the difference between a fight that lasts 10+ rounds and a fight that lasts three is two levels. Difficultly is either damn near (or outright) impossible or a cakewalk, with mildly challenging being when you are at the exact level that the boss/enemy was meant to be fought at.

1 Like

I have stripped the equation and made it into something more simple and a bit more balanced. Lets say we have a:
Level 5 Character

  • Weapon with base dmg 20
  • Weapon level 12
  • Strength of 7

And an enemy thats:
Level 6

  • Defense of 9

My simpler equation is (4 x BaseWeaponDMG) x (WeaponLvl / MaxLvl) x (STR / 5) x rand [0.8, 1.1]
(max level is 80)

If we plug in the numbers… we get a total of 16.8 x rand[0.8, 1.1]. The enemy would have 108 health (equation is (Lvl X Defense X 2) ). That would mean the player would have to hit the enemy ~6.4 times. This would be fitting when there are about 20 enemies on screen right? I tried it with bigger and smaller numbers and it seemed like a balanced number considering the amount of enemies. I will try this out and see if my game has any balance issues or not.

No, the system works. It will get you through a small game no problem. Pokemon has a finely (I mean, obsessively) complex, refined damage system. There are formulas, etc.

You can say complex is good… but I also once saw a Magicarp defeat 6 elite pokemon in a battle. So complex is actually a never-ending balancing nightmare. If you’re a Japanese game designer who works for 17 hours straight until a single attack does the perfect amount of damage at each level… do it.

If you wanted damage numbers to get bigger, faster than a linear growth rate (for show) you would have to rethink it.

2 Likes

Yes see I haven’t played pokemon and I dint understand some of the terms such as the STAB and things like that. I will continue to work on it until its perfect and I will do some research into pokemon. Thanks for the advice it is greatly appreciated

Also I think I’m going to use an exponential function so stats are pretty high towards end game and that could give the player a lot of creativity in designing their damage loadout

If it’s used simply, like in a zelda system, then it’s not a huge problem. You wouldn’t likely get the attack stat above ten though.

Bare in mind I’ve played enough games where this was the underlying math, and it was pretty clear that they weren’t aware of the calculus involved in balancing it.

Yeah, keep the numbers low.

You’re missing some things.

First, how much HP does your Lv.6 enemy have? The reason I ask is…

How long should it take a Lv.20 player to defeat a Lv.6 enemy? This is a deeper question that you will have the answer to, not me. The way most games work, is after a certain point the Lv.6 enemy can only inflict scratch damage, but the higher-leveled player can one-shot the enemy. Of course, if you’re running something like a D20 system, this might not be tenable, you may want a flatter challenge curve.

What I’ve been taught is that, to balance encounters the ‘Time to Defeat’ of a given enemy is the thing you really want to design.

Time to Defeat(Defender) = HP(defender) / Damage Per Unit Time (attacker)

…Damage Per Unit Time is…

DPUT = Attack Power / Attack Frequency

…Thus…

Time to Defeat = HP / (Attack Power / Attack Frequency)

This is important, because the enemy with the longer TTD wins the match; if your Lv.6 enemy can be defeated in 3 turns, but your Lv.20 enemy can be defeated in 20, you’ve got a margin of 17 turns, assuming every turn is an attack. That’s a huge margin! Is it correct, according to your vision?

From what you’ve shown above, you’ve already got a reasonably complex attack power calculation, and HP is a flat property of the defender. Attack Frequency can be either a property of the attacker, or a constant depending on your game rules (e.g. everyone can make one action per turn.)

Another question, is how do you want Defense to figure in? Is Defense merely subtracted from the final attack power? Or, is Defense instead a coefficient that scales the damage accordingly? (e.g. a Lv.6 enemy with perfect defense for physical attacks should take ‘scratch damage’, or the minimal allowable damager per attack.) Speaking of, what is the absolute damage floor? Some systems allow for attacks to deal 0 damage (or, register 0 damage attacks as a type of ‘miss’.) Other systems never allow attacks to deal less than 1 damage.

Another thing is to designate a damage floor for attacks and abilities, to ensure that even if a player is as lazy as can be, that you have at least a minimal control over the enemy’s TTD (after all, player attacks determine enemy TTD in part!) Chrono Trigger did this, as you can read about here.

3 Likes

This an age old philosophy questions. In truth it doesn’t matter. RPGs have a couple of basic principles seen across the board. Health, magic, damage. as long as the game is balanced you can do what ever you want. You could have strength add to the base damage, you could add a str modifier to the base damage.

In the end you could add your strength to your weapon damage, multiply by 8, subtract 2, and divide by 5 if you want…

when it boils right down to it the ultimate principle doesn’t have to be the question How do you do this? but rather the answer of how you did it…

really all that matters is what numbers you want the player to see and how you show them… and how they affect your characters/monster’s stats… When it’s balanced, and runs smooth, you’ve got a good RPG no matter what you did…

I like big numbers, like ff7. Weapons range from 50 dmg in the beginning to several thousand by the end… This is more appealing to me then say dnd style d4 roll on a dagger…

Really it doesn’t matter what you do to get those numbers out, but rather how smooth they are under the hood…

The reason I say it doesn’t matter is because when developers understand they can do what ever they want they’ll come up with unique systems :slight_smile: like materia in ff7

2 Likes

One thing I’ve learned from over-designing things is that complex systems tend to function similarly to simple systems, just with a lot of unnecessary complication.

3 Likes

A good example:
Take a look at D&D 3.5 books. It explain and gives you an idea of how to create your own formula.
:wink:

You might even say it is the goal of any complex system to imitate the simplicity of a non-complex system.

2 Likes

That’s perfect. For WoW. I think of a game where attacks do not occur at a constant rate and then TTD means less than nothing. Take a beat em up/rpg hybrid. Take a situation where range is a factor… Like across a river or up a cliff face from the melee enemy.

You could always base your damage off of real life, if you’re struggling, as well. I bet a 3 pound hammer swung with 10 pounds of force (30) does about half as much ‘damage’ as a 3 pound hammer swung with 20 pounds of force.

Real life tends to be ‘flat’, and I think the scale methods are the result of what your describing, more precise control over time in rpg battles.

I think a well designed system should identify and simulate elements that make a tangible difference to the user. I mean, if I make a racing game and simulate interaction with the vehicle’s tires down to the tiniest pebble in the road, but the user never notices, all I’ve really done is waste time and CPU cycles (Yeah, I know there are hardcore racing sim fans who want every piece of gravel simulated, but that’s not the point).

P.S. You’ve been looking extra wizardly lately. Well done.

2 Likes

Now I just need to figure out how to change my status from Member to Community Wizard

3 Likes