Thoughts on Stat Gaining Mechanic

Spankers and Spankees,

First, I’ll be spending next week visiting family, so I won’t be on until the last week of May (a little over a week from now).

Second, I spent a few hours last night playing Dark Eye: Blackguards. Haven’t played it much, so I don’t have much of an opinion about it, though it looks like it has potential. There are a few things I don’t like (the heavy emphasis on randomness in combat, especially the high failure rate of spells), but there are also some things I do like (the combat grid is well done, the combat itself is fun despite the heavy random element, and the story has me intrigued, though I’m 99.99999% certain it’s going to fall into the painfully cliche “My old friends are members of an Evil Cult Planning to Unleash the Supreme Evil/Take Over the World/Steal Grandma’s Pacemaker” plot). Actually, that last one sounds like it’d be kind of fun…

One thing that I really really like is the stat gain system: after each fight, your characters gain experience (groundbreaking!). This experience goes into a pool of points that you can then use to level up your skills. So far at least, after every fight I’ve gained enough experience to level up at least one skill, and often more than one. I like this because it gives a sense of gradual improvement. After every fight my characters are slightly better than they were before. I like that. And when I like something, I start thinking about how I could build a similar mechanic…

So here are my thoughts. Currently, every action gives you 3 stat points. Where those points are allocated depends on the action performed. For example, attacking allocates 2 stat points to Dexterity, and 1 stat point to Strength. Every time enemies attack, you gain one stat point, depending on where you got attacked. While I like how organic this approach is, there are a few problems. For one thing, your defense also relies heavily on these stats. Therefore, in order to keep yourself from being one-shotted by a physical attack, your squishy mage will have to waste turns smacking baddies with his staff while your enemies laugh. Similarly, with physical attackers (assuming those attackers even know any spells. If they don’t know any spells, they can only gain those stat points by being zapped by spells). Second, if you decide during the game that you need to pivot (i.e. focus more on magic and less on physical attacks, or vice versa), then you need to waste precious rounds doing something your character sucks at. This will almost certainly be frustrating, especially if I can balance the combats well enough that they’re close. So this is actually a very rigid approach to character improvement, and that’s not good. I don’t like rigid character development, because it punishes experimentation.

So, the first thought is that all stat points go into a pool, which the player is then free to spend to improve stats, health, mana, and learn spells.  This makes character development much more flexible. Are you getting roasted by spellcasters? Spend some points on Talent. Getting one-shotted? Dump a bunch of points into health. This also has a benefit when characters join your party: Rather than giving them pre-allocated stats which may or may not work with your build for for the rest of the party, I can just have the character start with a  pool of stat points that you are free to use however you wish. I could do a similar thing at the beginning of the game, allowing you some control over the starting stats of your character, which spells they know, etc.

Now, here’s the next thought, and the one that gets me really excited: You need to spend a certain number of points in order to improve a stat, and the number of points you need to spend increases as the stat gets higher. So far so standard. However, let’s throw in a little bit of randomness. Just a touch. Imagine if you have a percent chance of gaining the bonus from the next higher stat, depending on how close you are to increasing your stat. So suppose you have 10 Dexterity, it takes 100 points to get 11 Dexterity, and you’ve already spent 90. So you’re 90% of the way there. Imagine if in battle, you have a 90% chance of attacking with 6 Dexterity rather than 5. So maybe there’s a 90% chance that instead of doing say 10 + .4 * 10 = 14 damage  (against an enemy with 3 Dexterity), you do 12 + .5 * 12 + 1 = 19 damage. Meanwhile, if you’ve only spent 50 points on Dexterity, you “only” have a 50% chance of gaining this bonus.

Second, suppose that you don’t gain a fixed number of points every time you attack. Instead, the number of points you get depends on how effective your action is. The less effective your action, the more points you get. So imagine you have 5 Dexterity (so 10 warfare), and your enemy has 5 Dexterity (so 10 warfare). Then, you’ll do 10 damage. Meanwhile, if you have 10 Dexterity (so 20 warfare), and your enemy has 5 Dexterity, you’ll do 20 + .5 * 20 + 15 = 45 damage. So you’ll get significantly fewer action points than if you only have 5 Dexterity. Now obviously, you need to have some caps, so that a tank with 5 Talent doesn’t get 5000 action points for casting Firebolt on an enemy with 95 Talent. Similarly, a character with 95 Talent zapping an enemy with 5 Talent should get at least some action points. The points you’d get would probably be something like max(MIN_POINTS, MAX_POINTS – effectiveness), where “effectiveness” could be something like the damage you do, or the number of turns you start grappling, or the number of turns an enemy is inflicted with a status spell.

These two things provide a whole lot of opportunities for different play styles. Do you spend your action points now, and make the upcoming battles easier, or do you hold off to get as many points as possible but make the upcoming battles much harder? Or do you do something in between? How in between? Only spend enough points to get 10% of the way to the next point? 50%? 90%?

Furthermore, a jack of all trades character has an interesting new twist vs. a specialized character. First, you can have partially developed stats, and still gain some benefit from them. The points put into a partially developed stat start working for you from the beginning. This can make it less painful to spread points around. Also, Jacks tend to have lower stats across the board, but not so low that they can’t be effective in battle. Therefore, regardless of their actions in battle, you can expect them to gain more points, which can again ease the large point burden. I like this. I like this a lot. Specialized characters are valuable because they are very effective in battle against specific classes of enemies, but at the cost of perhaps a small dint in action points. Jacks meanwhile aren’t as effective against any one enemy, but can hold their own against anyone, and tend to gain more action points.

What do you spend points on? Well, you can spend points on any of the stats (Dexterity, Strength ,Willpower, Talent, Alertness). You can also spend points on health and mana (one point corresponds to one point of either), and you can spend points to learn spells.

This again, opens up a huge range of character building options, especially since mana, Talent, Willpower, and spell learning are all decoupled. For example, maybe you want a character who is mostly an armslength fighter, but perhaps has a few of the simpler buff spells, to provide some support. Then you don’t bother putting points into learning new spells, but instead pump Talent, and Dexterity. Maybe you want to build a Grapple-tank, someone who can grapple a spellcaster and shut them down, but you don’t care about necessarily learning spells. Then you can pump Dexterity and Talent (with perhaps some Willpower). Maybe you want a character who knows a wide variety of spells. Then you pump Talent, Willpower, and spells, with some points also thrown into mana. Maybe you want a character whose spells aren’t particularly effective, but he/she can cast a lot of them. Then you pump spells and mana. Similarly, maybe you want a wall, a character whose job is to defend the squishier characters, but not much else. Then maybe you pump their health to absurd levels.

Of course, the tricky part is to balance them all. 😉

Another tricky point is that if I’m not careful it could be very easy to exploit. Just cast one Firebolt at 5 Talent against an enemy with 95 Talent to get the MAX_POINTS, then spend the rest of the combat attacking and pump the points into your Dexterity. Perhaps a character doesn’t gain any points if the stat difference is too large, or takes severe penalties to the number of stat points they get? I don’t know, I’ll have to think about it.

Any thoughts? I might spend the next week thinking about it, and potential formulas for generating points, how fast point costs increase, etc. If I do implement this (I may not, this is still very much in the brainstorming phase), it won’t be until after I’ve overhauled the GUI. Allocating points will require significant (and non-trivial) extensions of the GUI, so I don’t want to do anything with that until I’ve built a GUI that can actually be extended with non-trivial things.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.