Combat is one of the most important aspects in an RPG.
Jrpgs, tactics, and monster tamers have combat
calculations that are tailored to feel right for their game.
So when it came to our own project,
Battle Gem Ponies How did we construct the combat formula?
Battle Gem Ponies has been played by thousands of people.
We were able to watch people play the game
at conventions and see where they got stuck, what they found challenging,
and where they thought the battle could be improved.
After seeing users play the game,
we decided more dramatic changes were needed here at Yotes Games.
We spent countless hours researching,
implementing, and testing to find the ideal formula
for Battle Gem Ponies and we wanted to share findings with you.
Full Disclaimer! There's going to be a lot of math,
but we'll be breaking it down as simply as possible.
We've done research into various RPGs to better understand what is effective.
There are many methods of calculating
damage, but we will cover the three common methods we found.
Formulas we are about to cover are stripped down to its basics.
There may be some details left out for ease of understanding.
We will be using the variables attack,
which refers to the character's attack stat, which can be anything from strength
to magic power, which refers to a move or equipment stat defense,
which refers to an opposing character's, defensive stat and damage,
which is the total amount of damage that the attack will do.
The first method is a subtraction based method where the damage is equal
to the attack plus the move power minus the defense.
This method works well with combat systems that use small numbers.
The subtraction method can be found
in games such as Paper Mario and Fire Emblem, or even your favorite card game.
For example, in Fire Emblem Three Houses,
the damage formula is character strength, plus weapons, minus enemy defense.
The second method is a ratio method where
the base damage and the defense ratio are calculated separately.
These two values are multiplied together to get the final result.
Games that advance quickly from early to late game or where attack and defends
are scaled and consistently can benefit from using this method.
The best examples are used in League of Legends, Dota and Pokemon Unite.
For example, Pokemon Unite's method has
complicated formulas for both the attack damage and the defense ratio.
The attack damage is the Pokemon Attack formula plus the move power formula.
The defense ratio is 600, divided by 600 plus the defense.
These two values are multiplied together to get the final result.
This formula may look different than
the ratio method at first glance, but the formula is still calculating its
attack damage using the attack stat and POW separately from the defense ratio.
The third and final method is a division
method where the attack is divided by the defense and multiplied by the power.
The division method allows for the attack and defense to be used to scale damage
higher or lower and works well with large numbers.
Games such as Pokemon and Final Fantasy generally use this method.
These are the most common methods, but there are many more methods out there.
Some games have a unique spin on calculating damage.
The Battle Gem Ponies combat system has
evolved quite a bit since the early days, one of the most dramatic changes being
to the battle calculations, where damage and health play a crucial role.
Our old formula was using the subtraction method.
This caused the damage to feel polarized.
You either did way too little damage or way too much damage.
Mix that with arbitrary move powers
and arbitrary stats, and you will have Ponies feeling too
strong when making changes to address the strong feeling.
It was difficult to understand if we
should change a move's POW, pony stats, or the calculations in general.
The formula also did not account for game progression.
How you felt at the beginning of the game
was the same as how you felt at the end of the game.
The first step was to change the battle
formula to one that could scale with stats, so we updated our subtraction
based formula to use the division based method
using a division based formula allows
for damage to stay consistent as attack and defense change.
We then scaled the damage based on level.
This allows for the same move to do
varying levels of damage at the beginning, middle and end of the game.
We can see the attack, defense, and POW,
but where do these other numbers come from?
To begin to answer this question,
we need to define certain expectations within battle.
A battle that ends too quickly feels like a waste of time.
While a battle that takes too long feels like a grind, we need the flexibility
to be able to control the number of turns until K.O., so building out the relationship
between our moves, POW and damage is the key to getting this timing down.
From there, we can mess with a number
of factors to affect the golden turns until K.O. number.
We're after this led us to a formula where
Max health divided by damage equals the number of turns.
For example, if we figure out a combination
that averages a 33% damage output, we then know that attack under those
circumstances will lead to a three turn round for battles and Ponies.
We started with this statement for pony
using a move with a Power 50 attack on a pony where the attack is equal
to defense and there are no buffs, debuffs, or any other stat-changing effects,
then the damage should be roughly 10% of their health.
Once the expectations are defined, we then need a control or scenario where
we can replicate them to help us with that meet Ponatina.
Ponatina is our Ryu,
our Mario, Tracer. The base pony that the others are balanced off of.
Ponatina is of neutral typing,
which means she won't receive elemental advantages or disadvantages.
Ponatina also has equal stats across
the board, but the attack will equal the defense.
From here we will start a trial and error process.
We will begin to configure a battle
with Ponatina versus Ponatina, and we will use a move with a power of 50.
The damage was higher than 10%.
Then we decreased these numbers.
If the damage was lower,
then we increase these numbers until the result matched our expectations.
Once the damage was around our liking,
we were able to test the other factors of battle.
We would introduce each factor
into the control and see how it affects the damage output.
If the numbers were not as expected, then we could be confident
that the specific factor needs to change and not the calculation formula.
If a move was doing too much damage
with our control, then we know the moves Power needs to change.
If the move was doing too much damage
with a specific pony, then we know we need to decrease
the Pony's attack or increase the defending Pony's defense.
The factors that affect damage output
in Battle Gem Ponies are ace a bonus for when move type matches.
The attackers type class match up
elemental advantages or disadvantages critical hits where random chance allows
you to deal more damage as if you hit a vital area.
Maladies or bad status conditions which lower stats.
Weather advantages for certain types may increase or decrease damage.
Battery clips may affect damage output and States that have a variety of effects.
There are mechanics outside of battle
calculations that will affect damage as well.
For example, level up systems like ours
have additional features that affect damage in battle.
Gem Ponies.
With each level, the player chooses a category to give
an extra boost to it can be either health points, Gem power, or bonus values.
With HP and BV modifying stats that affect
damage output, they have to be considered when it comes to balancing.
To do this, we tested around level 50,
where we had 50 points to equally distribute into the HP, GP and BD stats.
If a player distributes these points differently, then their damage output will
be different than our testing, so we need to account for the most extreme
scenarios and make sure battles are still fun.
Even with those handicaps and boosters.
With this change from a subtraction based method to a division based method,
you will see a vast difference between the old methods, damage, and the new methods.
Damage changes like this bring us closer to our vision for Battle Gem Ponies,
and we're excited to continue improving the game.
Although changes will be made to our battle system throughout development,
the core equation will be kept mostly the same.
If you want to see this battle formula
in action, go play the demo right now on Itch or GameJolt.
Links will be in the description
below and feel free to share your thoughts on this combat formula of ours or any
interesting RPG Math you've seen in your favorite game.
You can comment below or join our community.
Discord Where the Battle Gem Ponies team is always hanging out.
Thanks for indulging me on this mathematical adventure.
This has been Psyaryu lead programmer of the BGP team!
Have fun and peace out.