How Harmonia's Stats Work

What was supposed to be a short reddit reply turned into a blog-worthy article, so... Have you ever wanted to know how statistics work in Harmonia? Of course you have! Here are some of the basic principles.

Unlike most RPGs, Harmonia uses exponential variables for stats. It's a little more math-heavy than usual, but it's 100% scalable to high levels and allows for even progression with guaranteed balance at each level. It also guarantees that something 5 levels higher than you will be the same difficulty, no matter what your current level.

Here's how it works:

Nothing is added, only multiplied. Wielding a sword, for example, may increase your Attack power to 150%, or, multiply it by 1.50. Wearing a ring of power may increase Attack *again* to 150%, resulting in 225% power (1.50 * 1.50 = 2.25). These would both be totally overpowered, but you get the idea ;)

Levels work the same way - gaining a level means a 5% increase to all stats, guaranteeing that every level has the same "worth", i.e, Level 1->2 is just as significant as 98->99.

Formulas use multiplication/division as well. The damage formula is, for example, "Damage = Attack / Guard". Double the attack, deal double damage. Double guard, deal half damage. Double both, damage is the same.

Stats are represented internally as decimals, or percentages. A balanced class at level 1 will have stats of 1.00 (or 100%).

Stats are represented to players by their log(base 2) * 50 (a constant). This is so the numbers are a lot more digestable than giant floating points :P Here's a table to show how it works:

Internal For Player
0.0625 (6.25%) -200 (yes, stats go negative)
0.125 (12.5%) -150
0.25 (25%) -100
0.50 (50%) -50
1.00 (100%) 0 (average)
2.00 (200%) 50
4.00 (400%) 100
8.00 (800%) 150
16.00 (1600%) 200

To players, because of that conversion, putting on leather armor appears as a simple +10 armor increase. Much easier to understand ;)

Equipment power is, like players, calculated based on their level. This makes balancing *incredibly* easy. A level 15 helmet has the ideal stats for a level 15 player. Bam, done!

If you want to add variation to equipment, like an "Axe of Guarding" that boosts your Guard to 110%, you need only multiply "Guard" by 110% (x1.100) and divide "Attack" by the same number (or x0.909). The result is still "Attack * Guard = 100%" (1.100 * 0.909 = 1.00), which is balanced.

The result of using this system is that characters of equal levels and equal equipment will have a fight that is equally favored and, regardless of their level, will last the same amount of time. However, weighing one stat more heavily can result in desirable balance changes. Distributing points from "Resistance" into "Guard" will make a player a mighty tank against melee hits, but soft as butter against magicians. These sorts of tweaks make every class situationally useful, and knowing when and where to use them becomes the real strategy.

There's a lot more to this, including formulas for "Agility", magic damage, stamina costs, and specific balance of the various gear slots, but they all follow the same principles. Hope this was somewhat enlightening!

-- Synival

Harmonia Game Engine