Balancing the Books
We have had many discussions about “Balance” on our Discord server these last few months. In this blog post I’d like to explain how we determine if something is “balanced”, the issues we are currently dealing with and generally talk a whole lot of math. If you are not interested in heavily theoretical discussions, feel free to ignore this blog post in its entirety. For everyone else: Welcome to my world. Let me show you around.
During the years I’ve worked on Star Sonata, one question has come up often: “Is this thing balanced?”. Initially, it seemed like a very easy question to answer: If the balance sheets say it’s balanced, it’s balanced. End of discussion. Assuming that the balance sheets are perfect, however, is dangerous. Star Sonata has evolved massively over time, do the basic principles used in the balance sheets still hold?
Star Sonata is a game of synergies. Any change in a ship’s equipment has a cascading, multiplicative effect. And most importantly: The resulting changes are usually very, very significant. It’s not a matter of doing 5% or 10% more damage, it’s more often a matter of hundreds of percentages of difference.
It is due to this fact that even just a few items being ever so slightly too strong can make the entire balance feel off. It would of course be disingenuous to say that no items currently existing in the game are more than just “slightly” too strong, but more on that later.
In Star Sonata, a ship’s strength is the product of its parts. To put it into very simplified, but mathematical terms, it would be something like this:
Player strength = Weapon * Energy * Shield * Ship * Augmenters * Skills
This means that if Player B had gear that was just 10% better than Player A, he would in fact be 10%^5 =61% stronger!
While this is a simplified way of looking at player strength (Would an energy bank that is 10% better really increase the entire player’s strength by 10%? Probably not), it does highlight the main challenge: If items increase in power over tech, this increase has to be handled very carefully to keep the gap between techs reasonable.
Armed with this knowledge, let’s look at how Star Sonata’s balance sheets work exactly.
Balance Sheets
All balance sheets have a set of parameters that they use to approximate how powerful an item should be. These parameters are:
-
Cost (Very, very cheap -> Insane)
-
Acquire Method (Common -> Hard Build)
-
Weight (Ultralight -> Extremely Heavy)
-
Size (MicroMicro -> Gargantuan)
Each sheet combines these modifiers into a “balance power”, a rough representation of the item’s allowed power, which is then translated into actual stats, which is roughly:
Balance Power = Base Item Power * Tech Modifier * Cost Modifier * Acq. Method Modifier * Weight Modifier * Size Modifier
Since the Base Item Power is constant for each type of item and Tech Modifier is constant per tech, it is only Cost, Acquire Method, Weight and Size that make up the difference in power between items at a specific tech.
Tangent: Examples
To show how much of a difference these can make:
A normal cost, common, normal weight, normal size item would result in being exactly Base Item Power * Tech Modifier.
An expensive (x1.25 price), hard to build, normal weight, normal size item would be Base Item Power * Tech Modifier * 1.02 * 1.3, so 32.6% stronger than the base item!
And the extreme end:
An insanely expensive (x100 price), hard to build, extremely heavy (x10 weight), gargantuan (x10 size) item
1.2 * 1.3 * (1/0.9) * (1/0.6) = 2.89 , that’s +189% stronger than the “normal” power of an item at this tech!
The individual balance sheets have additional parameters that need to be entered, for example:
-
Lasers: Range, Firing arc and Damage type
-
Ships: Hull, Speed, Weapon Slots, Augmenter Slots, Visibility, Diameter, Resistances
In the case of lasers, the balance sheet is able to calculate a DPS and DPE from the item’s Balance Power and damage type. More “useful” damage types, such as mining and surgical have lower overall power. Mining has the lowest DPE, Radiation has slightly higher DPE, and Physical has the highest DPE. Size class has an additional effect on a weapon’s DPE: big weapons have a lower DPE (=more DPS), small weapons have a higher DPE (=less DPS).
The lasers size is calculated from its range, firing arc and size class.
Ships
The balance sheet for ships is a different matter. Calculating a Balance Power, which is then translated into actual stats is not feasible. Ships are simply too complicated for that. They have a myriad of stats that matter significantly. In order to automatically calculate stats of a ship of a specific strengths, the balance sheet would have to have a lot of restrictions. In essence we would be sacrificing variety for theoretical balance.
What the balance sheet for ships does instead is the following:
Assign a value (i.e. X Weapon slots are worth Y) and a scaling (i.e. hull space is valued exponentially, sort of) to every stat of a ship. These values are added together and then compared to a guideline, which is the value a generic ship of this tech and rarity should have. If the ship’s value is approximately near (+/- 30%) this guideline, it is considered balanced by the balance sheet. It’s a relatively big range, but that’s quite intentional: With so many variables in play, there needs to be room for common sense.
Tangent: Example: What’s the worth of a zebu?
Hullspace (75) is worth 18,8
Speed (100) is worth 33,97
Aug Slots (3) are worth 1,64
Weapon Slots (3) are worth 1,05
Vis (12) is worth 1,374
Diameter (=Reflectivity) (33) is worth 0,391
Taking the product of all of those results in a combat value of ~591.
The average combat value for a normal price, common, but heavier tech 0 ship is considered to be:
570 * (1/0,98) = 581,63
591 / 581,63 = 1,02 Great, it’s balanced!
…but there’s also some inbuilt aug stats in the zebucart that have to be considered, bumping this value up to 1.22. That means it’s 22% above where it should be. Still okay!
Is this a good approach? Does this result in balanced ships?
Maybe. Nobody knows. Here’s why:
While the 1.0 +/- 30% holds for low-tech ships, newer additions over every tech have mostly ignored the guidelines the sheet offers.
It is also noteworthy just how much these numbers vary from each other. Something clearly isn’t working well.
So if we assume that these ships are in fact okay, a fair assumption to make as most of them are used (perhaps with the exception of the Wrathful Deployer and the Samgrahak’ayu), then it would be great to figure out a way to confirm that. If we can confirm it, ideally through some sort of math, we can definitively answer our initial question of “Is this thing balanced?” for every ship!
The root of the problem.
The initial approach of assigning a value to each stat is sound, but how valuable is each stat? For most stats, it simply boils down to “How much of this stat do we expect people to have” and “How big should the spread be”. If speed was a very cheap stat, everyone would have very fast ships. If more speed was more expensive (i.e. the exponent of its value was higher), then faster ships would have to sacrifice more from other stat. The same line of argumentation applies to most other stats, except…
Resistances
The value of resistances is calculated as follows (Note however that we don’t use the resistance here (i.e. 0.9 for 90% resistance), but rather the multiplier (i.e. 0.1 for 90%) resistance.
So in short: A HIGH resistance will cause the number at the bottom of the fraction to be LOW, which in turn makes the entire value HIGH.
But… Laser resistance is valued triple. That means Laser resistance has a higher effect on the resistance value than other damage types, but in a good way. In other words: It is easier to get away with having high laser resist than other types.
This is an artifact from ancient times, when lasers (i.e. weapons that hit their targets instantly) were nearly always laser damage. Getting killed instantly is no fun, so laser resistance was intentionally more common and higher. Nowadays, that assumption no longer holds. While Laser damage is a damage type with inherently higher power, so is energy. And energy lasers exist…
The lowest resistance is valued 4 times as much (or 6 if it happens to be laser). That means a high weakness would… wait a minute! We’re dealing with MODIFIERS (i.e. 0% resistance is 1.0, 100% resistance is 0.0). But in that last bit, we take the highest modifier OR 1.0, which will always be 1.0!
So a value that should scale like this (and therefore make a ship that is super resistant to everything nearly impossible):
instead scales like THIS (and therefore actually allows fully invulnerable ships without issue!):
Ooops.
Augmenter Slots
The other very interesting topic is Augmenter Slots, or the question: “How much strength does each augmenter slot add to a ship”?
The value of an aug slot probably depends on the value of an augmenter, which get stronger over techs (so an aug slot on a high tech ship is worth more than one on a low-tech ship). It probably also has diminishing returns due to the additive nature of augmods, but…
Tangent: Augmod value
The value of Augmods is determined through relations between the different stats and assumptions about the general meta and educated guesses.
Damage is considered the standard, i.e. +100% damage is a value of 1, every other stat is derived from there. Rate of Fire is much cheaper, since it affects DPS just like Damage, but does not affect DPE. Multifire is slightly more expensive due to the high alpha strike damage potential, but the same principle applies.
An Augmenter is considered balanced if the sum of the value of its bonuses is exactly the value of the augmenter power progression curve for its tech. In short: Add all the bonuses together, compare to the expected value, done.
…what about synergies? An individual augmenter CANNOT be balanced around the synergies it provides, nor can it be balanced around every combination with every other aug possible. A single aug with +100% Damage and a single aug with +100% RoF provide the same bonus to DPS individually. In a 1 aug setup, you can use either aug and get the same DPS. In a 2 aug setup, you could use any combination and get the same DPS. In a 3 aug setup however, using either 3 +Damage augs or 3 +RoF augs would suddenly be worse than using a combination.
The issue quickly escalates with more stats. Certain numbers of aug slots open up nicer possibilities for augmenter synergies. Going from 1 aug to 2 augs is MORE than 100% stronger since you no longer need to rely on the synergies provided by a single aug. Going from 7 to 8 augs however is nearly irrelevant.
No matter what, to find out (more or less) exactly how much an aug slot is worth, there is no way around making some calculations with augs that are actually in the game.
Unfortunately, explaining the exact math behind the calculations is too difficult for the scope of this blog, but the gist is simple: Augmods are additive. If I have lots of +Damage from augmods already, more +Damage will not do much. In fact, the more +Damage I have, the more effective +RoF becomes. If I have tons of +Damage and +RoF, then +Critical Strike Chance and Strength becomes very valuable.
The same is true for Shield Recharge and Resistance. And Shield and Resistance. And so on.
After taking the brute force approach and generating millions of augmenter setups using high tech augs, these are the results:
Each row shows the average value of a setup above a certain percentile. The columns containing percentages show the percentage increase in power per increased augmenter slot.
The values for 1 aug make a lot of sense: Augmenters generally hover around ~2.0 in the augmenter balance sheets. Even the very best aug is not THAT far off, even with synergies included.
Going from 1 to 2 aug slots increases the effective stats provided by over a hundred percent. Even going from 3 to 4 is not +33%, but significantly higher!
So lets plug in these values into our current assumptions:
Oh my. Worth noting that the calculation to estimate the value of an augmenter slot was severely changed after the Hephaestus Machine and the Prawn. It is also worth considering that the value of an augmenter slot is only needed to compare different hull types (since ~all ships of the same hull type have the same number of augmenter slots), but there are of course some exceptions that would benefit from having proper calculations here (PBF, BS) and getting something accurate would open up interesting possibilities in the future.
… TO BE CONTINUED