Time to buckle up, because you’re going to learn some system design principles today. We’re talking about formulas and shape and effect of the curves that you get from graphing them out. This is probably the most important principle for system designers to internalize.
Instead of just picking numbers out of thin air, system designers create and work with formulas that take individual factors like character level, skill rating, stats from equipment, etc. and use them to calculate resulting values like damage, health, critical hit rate, etc. By tuning these formulae, we can establish baseline numbers for RPG content that will always generate reasonably correct numbers across all game levels. Then, because we have the formula to figure out the stats for us, we only need to tune and adjust the exceptions to the rule (e.g. a hard boss fight, an easy tutorial enemy, etc.) rather than all of the content.
There are three basic curve shapes to consider when deciding what kind of growth formula we’re building: Linear, Quadratic, and Logarithmic. Each of these shapes causes a different feeling in the player for strength/power gain when plotted against time. We’ll briefly go over each of these curve shapes, the general formula for them, and examples of how they are used in games.
The first curve shape is Linear. Linear is the most simple - a constant relationship between stat and result. The basic linear formula is Y = aX + b where a is some multiplier and b is some constant baseline value. Linear curves gain power in lockstep with the input factors. This results in a feeling of constant power gain over time. It’s also kind of boring, because the experience will be similar (and predictable) every step of the way. This is the sort of growth you want for something to be reliable and safe. One simple example of a linear curve is hit points in Dungeons and Dragons. You get one die roll (or half of one plus the die maximum, rounded up) of HP per level plus whatever Constitution bonus your character has. You get the exact same boost going from level 1 to level 2 as you do from level 10 to level 11.
The second shape is Quadratic. Quadratic curves start off with small boosts initially, but grow rapidly later on. Their basic formula is Y = aX² + bX + c, where a and b are multipliers and c is some constant base value. Quadratic curves impart the feeling of starting off weak but growing rapidly - look at how much height was gained when going from 0 to 5 compared to 15 to 20. This can be good for things like enemy difficulty to make bad guys feel like they are rapidly gaining strength as they get stronger, or making the player feel like a demigod after leveling up from humble beginnings. This kind of curve for player power heavily encourages stacking this one thing. We also often see this sort of curve for experience points needed to level up - later levels usually require significantly more experience points than the early levels.
The third shape is Logarithmic. Logarithmic curves are effectively like a rotated quadratic curve - you start with large gains early on, but then they taper off over time until the curve approaches a constant (or linear growth). The basic formula for a logarithmic curve is Y = aX + b(log X) + c, where a is a linear multiple (the linear growth you want to approach), b is a logarithmic multiple (which affects the amount of early growth), and c is your baseline constant value. Logarithmic curves are great for things like diminishing returns on things - we start with big boosts, but additional stats don’t provide as big a boost as they did at first. This also lets you establish a limit that won’t be breached by the formula, so you know what kind of theoretical power maximum you can balance around.
These three curve shapes allow for a large amount of control over how things generally feel for a player. We designers can affect how experiences feel for the entire game by making small adjustments to these formulas. Then, if we have specific experiences we want players to feel, we can make individual adjustments and overrides to specific encounters to tune them up or down. But generally, we can use these curve formulas to establish the baseline growth for the entire game and everything that works within those formulas. That’s how we can balance an entire RPG - we have formulas that govern almost everything so we only have to make sure the formulas feel good and not each and every individual item.
PS. There’s even more work done when you see how these different formulas interact with each other. The difference in the rate of change between the formulas will affect how power level changes between the interacting systems. So, combining our linear hit point growth example above with quadratic experience points for level growth, it means that player hit point growth per experience can actually be derived with a (rough) logarithmic curve because you have more hit point growth per experience at the start than you do at the end. A good system designer is able to visualize how these formulas work with each other and how to translate one term into another by deriving formulas from each other.
The FANTa Project is currently on hiatus while I am
crunching at work too busy.
[What is the FANTa project?] [Git the FANTa Project]
Got a burning question you want answered?
- Short questions: Ask a Game Dev on Twitter
- Long questions: Ask a Game Dev on Tumblr
- Frequent Questions: The FAQ