[RMVX ACE] CHARACTER STATS
Posts
Pages:
1
How do you figure out what each of your character's base stats are? Do you have a rule of thumb or easy way to decide on how distribute stats according to your damage calculation? How do you scale the difficulty properly?
What is maths?
Basically, I do it the bad way.
= I start by coming up with ideas about what kind of build I want the character to have - am I using classes? Am I going normal or trying something new? What kind of role do I want that character to fill in battle?
= Depending on those answers I'll start assigning ranks. If I've an acolyte who used to be a warrior, I might give B-rank to Health, C-rank to Magic, make them more balanced, but have them grow by a large amount as they go - so start small and then as they get more experienced, get bigger.
= Generate a curve based on those ranks, then edit them if needed or look for a specific kind of curve. If I think the B-curve is a bit too big, just regenerate until a smaller one comes up or look for a big C-curve.
= Test. Test, test, test. In a group, by themselves, against monsters they're strong/weak against, with different weapons/armour. Just do a lot of testing. Try a low-run test to see how far you can get with the default equipment. Try an as-you-go test to see how it goes with only the store-bought stuff. Try a 'finders only' test to see if you only find equipment. Try a mix-n-match test, missing the hidden chests/treasure and grabbing only loot that is easily found. Just test.
Basically, I do it the bad way.
= I start by coming up with ideas about what kind of build I want the character to have - am I using classes? Am I going normal or trying something new? What kind of role do I want that character to fill in battle?
= Depending on those answers I'll start assigning ranks. If I've an acolyte who used to be a warrior, I might give B-rank to Health, C-rank to Magic, make them more balanced, but have them grow by a large amount as they go - so start small and then as they get more experienced, get bigger.
= Generate a curve based on those ranks, then edit them if needed or look for a specific kind of curve. If I think the B-curve is a bit too big, just regenerate until a smaller one comes up or look for a big C-curve.
= Test. Test, test, test. In a group, by themselves, against monsters they're strong/weak against, with different weapons/armour. Just do a lot of testing. Try a low-run test to see how far you can get with the default equipment. Try an as-you-go test to see how it goes with only the store-bought stuff. Try a 'finders only' test to see if you only find equipment. Try a mix-n-match test, missing the hidden chests/treasure and grabbing only loot that is easily found. Just test.
I didn't use the autogenerated curves for my test game as they didn't allow me to start with low numbers - what I did was making a formula to calculate the stats, which was a simple stat=base+level*n, where base and n were arbitrary numbers corresponding to how strong the particular character is in her respective stat. I also gave them skills that take advantage of their best stats (not by simply calculating from their best stat - my tanky character could use a cover skill and my speedy one carries most of the support). An exponential, quadratic, logarithmic or hyperbolic curve is also an option.
As for enemies, I usually give them enough HP to last about 5-6 hits from a character with average attack, or 10-12 if it's a particularly tough one. Obviously, make them go down faster if targeted by elemental weakness. You should also group enemies with varied stats together, which can make an encounter really exciting even if they all just have 1-2 skills along with their basic attack. When you have access to DoTs, instakills, stat buffs/debuffs and so on, you can down them quite a bit faster.
As for enemies, I usually give them enough HP to last about 5-6 hits from a character with average attack, or 10-12 if it's a particularly tough one. Obviously, make them go down faster if targeted by elemental weakness. You should also group enemies with varied stats together, which can make an encounter really exciting even if they all just have 1-2 skills along with their basic attack. When you have access to DoTs, instakills, stat buffs/debuffs and so on, you can down them quite a bit faster.
I do something similar to Liberty.
Basically, actors get the same amount of base stat points (usually 40, since I like small numbers) that will be distributed amongst their parameters, depending on their role. I use A, B, C, D, & E to determine an actor's proficiency in a parameter, with each letter corresponding to 5, 4, 3, 2, & 1 stat points respectively.
From there, I calculate their per-level stat gain using this formula:
(gain = (maxActorLevel - 1) / maxParamValue)
with the maximum parameter value being determined by the base stat (I just use (base * 25) or something around that value).
Enemies' base stats are calculated similarly, though with lower/higher stat points to allocate, depending on the intended difficulty. I also apply the same system to Items and Equipment, with Items/Equipment belonging to the same tier having the same stat points to allocate. To an extent, this could also be applied to skills and states.
This gives me a game that is almost trivial to balance (just increase/decrease the stat points to allocate, really), and saves me a lot of time in that aspect.
Basically, actors get the same amount of base stat points (usually 40, since I like small numbers) that will be distributed amongst their parameters, depending on their role. I use A, B, C, D, & E to determine an actor's proficiency in a parameter, with each letter corresponding to 5, 4, 3, 2, & 1 stat points respectively.
From there, I calculate their per-level stat gain using this formula:
(gain = (maxActorLevel - 1) / maxParamValue)
with the maximum parameter value being determined by the base stat (I just use (base * 25) or something around that value).
Enemies' base stats are calculated similarly, though with lower/higher stat points to allocate, depending on the intended difficulty. I also apply the same system to Items and Equipment, with Items/Equipment belonging to the same tier having the same stat points to allocate. To an extent, this could also be applied to skills and states.
This gives me a game that is almost trivial to balance (just increase/decrease the stat points to allocate, really), and saves me a lot of time in that aspect.
I probably also do it a bad way.
First, I assign what stats should max out at for a level 1 character. The typical assignments look something like this:
HP: 1000
MP: 200
STR/DEF/INT/WILL: 25
SPD/LUK: 50
Then, I start thinking about percentages. I tend to want characters to have an average of 70% of the max, though when I make "super" characters, they tend to have an average of 80%. Anyway, the general idea is that if one stat goes down, another goes up. Because of this, I tend to "pair" stats. Generally, I pair INT and STR, DEF and SPD, HP and MP, as well as WILL and LUCK.
As for how stats grow, I use auto-curves, setting the level 1 value to whatever the calculations suggest, and the level 99 value to be (approximately) ten times that, then shift the growth-slider to the "slow" side by three notches.
First, I assign what stats should max out at for a level 1 character. The typical assignments look something like this:
HP: 1000
MP: 200
STR/DEF/INT/WILL: 25
SPD/LUK: 50
Then, I start thinking about percentages. I tend to want characters to have an average of 70% of the max, though when I make "super" characters, they tend to have an average of 80%. Anyway, the general idea is that if one stat goes down, another goes up. Because of this, I tend to "pair" stats. Generally, I pair INT and STR, DEF and SPD, HP and MP, as well as WILL and LUCK.
As for how stats grow, I use auto-curves, setting the level 1 value to whatever the calculations suggest, and the level 99 value to be (approximately) ten times that, then shift the growth-slider to the "slow" side by three notches.
Red_Nova
Sir Redd of Novus: He who made Prayer of the Faithless that one time, and that was pretty dang rad! :D
9192
I've never been a fan of complicated damage formulas and high variance, so I stick with as simple a formula as possible: a.atk - b.def. No variance.
As for starting stats, it really depends on the character's place in life at the beginning of the game. Children start off at level 1 and would typically have single digit stats, untrained teens/adults would be at level 2 or 3 and have stats in the early teens. Stat growth tends to be on the small side to place more emphasis on whatever input the players make, like changing equipment or classes. So most characters only gain 1 stat per level. For me, character's base stats don't typically get above the high 70s, even by the end of the game.
Difficulty wise, it's admittedly pretty hard to balance. Since more emphasis is placed on player input, I have to go through it multiple times with many different setups to ensure as many viable options as possible.
As for starting stats, it really depends on the character's place in life at the beginning of the game. Children start off at level 1 and would typically have single digit stats, untrained teens/adults would be at level 2 or 3 and have stats in the early teens. Stat growth tends to be on the small side to place more emphasis on whatever input the players make, like changing equipment or classes. So most characters only gain 1 stat per level. For me, character's base stats don't typically get above the high 70s, even by the end of the game.
Difficulty wise, it's admittedly pretty hard to balance. Since more emphasis is placed on player input, I have to go through it multiple times with many different setups to ensure as many viable options as possible.
Summing up the five posts above, everyone has his own way of balancing stats, be it with brute forcing, guesstimating, calculating, spreadsheeting... the possibilities are vast.
If you ask me, in a good RPG, the skills your character has available are more important than the stats.
If you ask me, in a good RPG, the skills your character has available are more important than the stats.
Personally, I hand craft each character and every level for the game I'm working on right now. Then again, I also have a very small range of stats (min 1, max 6 for most cases), and only have 5 levels to work with. I may make the numbers larger to give me more wiggle room, but if I do that I'll just add a multiplier to each, and then hand adjust.
My damage formula is more complicated than the stats, most attack spells/skills/etc use a.atk - (b.randomizer(b.def * 2)) where randomizer calls a random number between 0-2, and if its 2, it reduces damage by 1. Makes defense wildly random, but still reliable (on average, they'll reduce damage by 66% of their defense, worst case reducing it by 0, best case reducing it by double their defense). Straight up a.atk-b.def for me doesn't work because I don't want situations where the characters have no chance of doing damage.
But basically: You should playtest, tons, tons and tons, make sure things feel right. I've already had to adjust the numbers a few times because things were rocket-taggy (IE, characters were either taking no damage, or being one shot, and either one shotting an enemy, or feeling too weak)
My damage formula is more complicated than the stats, most attack spells/skills/etc use a.atk - (b.randomizer(b.def * 2)) where randomizer calls a random number between 0-2, and if its 2, it reduces damage by 1. Makes defense wildly random, but still reliable (on average, they'll reduce damage by 66% of their defense, worst case reducing it by 0, best case reducing it by double their defense). Straight up a.atk-b.def for me doesn't work because I don't want situations where the characters have no chance of doing damage.
But basically: You should playtest, tons, tons and tons, make sure things feel right. I've already had to adjust the numbers a few times because things were rocket-taggy (IE, characters were either taking no damage, or being one shot, and either one shotting an enemy, or feeling too weak)
I mentioned this approach in an article already: You can easily balance stats via doubling approach. Enemy is too frail at 50 HP? Set it to 100. Still too frail? Go for 200. Too much health now? Roll to the middle of 100 and 200, which is 150. Assuming this is still too high, you can go to 125. Doubling/halving a stat is always going to be significant and gives you a range in which the stat is balanced.
Ways you can avoid inability to deal damage:
-Dragon Quest gives you a 50% chance to deal 1 damage if you wouldn't be able to damage the target. I think one of the RPG Makers has this as well. In DQ, this is only really relevant for hitting Metal Slimes (the basic version has 2 HP and 255 Defense).
-Dragon Quest also has a command to charge up an attack - if you spend four turns charging, the power of your attack will be increased tenfold.
-A division-based damage formula such as a.atk^2/b.def
-Skills whose damage calculation does not include the target's defense
-Slip damage states
-Disgaea has you assign attacks first, which you have to execute via a menu command all at once. Letting multiple people gang up on someone gradually boosts your damage output, which is crucial in damaging obscenely overlevelled enemies.
-Don't have a defense stat at all
-Instant death skills
Ways you can avoid inability to deal damage:
-Dragon Quest gives you a 50% chance to deal 1 damage if you wouldn't be able to damage the target. I think one of the RPG Makers has this as well. In DQ, this is only really relevant for hitting Metal Slimes (the basic version has 2 HP and 255 Defense).
-Dragon Quest also has a command to charge up an attack - if you spend four turns charging, the power of your attack will be increased tenfold.
-A division-based damage formula such as a.atk^2/b.def
-Skills whose damage calculation does not include the target's defense
-Slip damage states
-Disgaea has you assign attacks first, which you have to execute via a menu command all at once. Letting multiple people gang up on someone gradually boosts your damage output, which is crucial in damaging obscenely overlevelled enemies.
-Don't have a defense stat at all
-Instant death skills
Red_Nova
Sir Redd of Novus: He who made Prayer of the Faithless that one time, and that was pretty dang rad! :D
9192
Instant death skills are the bane of my existence. CONDITIONAL instant death skill are pretty sweet, though.
All of the things I listed successfully prevent a character from being unable to damage enemies with exceptionally high defense. I didn't say that they're necessarily good ideas.
Another thing DQ does to avoid zero damage scenarios is that crits nullify the enemy's defense stat. Again, this is primarily important to kill Metal Slimes.
My character balancing worked by having four distinct traits (power, tankiness, utility, healing) and giving each character a rank in all of those - 1, 2, 3 and 4. While this is similar to karins_soulkeeper's method, it is distinct in that characters also differ by skill access instead of just slightly different stat distribution. For instance, a character with high Power and low Utility has very good offenses, decent agility but only very few skills (if any) that aren't for direct damage.
Another thing DQ does to avoid zero damage scenarios is that crits nullify the enemy's defense stat. Again, this is primarily important to kill Metal Slimes.
My character balancing worked by having four distinct traits (power, tankiness, utility, healing) and giving each character a rank in all of those - 1, 2, 3 and 4. While this is similar to karins_soulkeeper's method, it is distinct in that characters also differ by skill access instead of just slightly different stat distribution. For instance, a character with high Power and low Utility has very good offenses, decent agility but only very few skills (if any) that aren't for direct damage.
Pages:
1

















