THE POINT OF USELESSNESS: BALANCED DAMAGE CALCULATIONS

Character and creature balance is all well and good, but nobody wants to have a skill that is totally and completely useless.

  • Marrend
  • 12/12/2010 03:50 PM
  • 3688 views
The Point of Uselessness: Balanced Damage Calculations

Character and creature balance is all well and good, but nobody wants to have a skill that is totally and completely useless. What this tutorial will explore is the phenomenon of what I refer to as "the point of uselessness".

So what, exactly, is this "point of uselessness"? I define it as the value strength (or whatever the appropriate statistic is called) needs to be in order for a skill deals the same damage as a normal physical attack.

Assuming that the code-base has not been fiddled with, we know by looking at the Help file that the standard damage calculation is:

4 * Attacker_STR - 2 * Defender_DEF


We also know that the calculation for determining the damage of any given skill is:

Base_Damage + (4 * Attacker_STR * STR_Factor / 100) + (2 * Attacker_INT * INT_Factor / 100)

- (2 * Defender_DEF * STR_Factor / 100) - (Defender_INT * INT_Factor / 100)


Since this tutorial is concentrating on strength-based skills, techniques if you will, it would be safe to assume that the calculation we're really considering at would look like:

Base_Damage + (Attacker_STR * STR_Factor / 25) - (Defender_DEF * STR_Factor / 50)


So, what to do with these equations? Considering that we want to know when a physical attack is equal to, or more efficient than a skill, I would say that we would want to know when these two equations meet. As you may or may not recall from Algebra class, this can be calculated when the two equations equal each other. Thus:

4 * Attacker_STR - 2 * Defender_DEF = Base_Damage + (Attacker_STR * STR_Factor / 25) - (Defender_DEF * STR_Factor / 50)


Remember that we're looking for the value of "Attacker_STR". Switching a few things around to place the varabiles in one location, our mess of a calculation would end up looking like:

4 * Attacker_STR - (Attacker_STR * STR_Factor / 25) = Base_Damage + 2 * Defender_DEF - (Defender_DEF * STR_Factor / 50)


While this calculation can be done on a target-by-target basis as-is, it could take some time in doing so, depending on how large the database is in regards to creatures and characters. Thus, we want more generalized information. We're going to ignore "Defender_DEF". While ignoring "Defender_DEF" will give us little more than an approximation, it still gives us a good idea of what to expect from the technique versus a normal attack. In any event, what we're left with is:

4 * Attacker_STR - (Attacker_STR * STR_Factor / 25) = Base_Damage


This still might not make any sense, so let's use a simple example. Let's say we have a technique, that has a "Base_Damage" of 1, and a "STR_Factor" of 100. Let's plug-and-play:

4 * Attacker_STR - (Attacker_STR * 100 / 25) = 1


Well, we know that 100 / 25 = 4, so we're essentially looking at:

4 * Attacker_STR - 4 * Attacker_STR = 1


Wait, isn't this essentially saying that 0 = 1? That's not right! What does this mean!? It means that, under perfect circumstances, this particular skill will always be more effective than a normal attack, though that effectiveness is very minimal. Let's look at a different scenario. This scenario involves a technique with 50 "Base_Damage", with 75 "STR_Factor". Let's plug-and-play:

4 * Attacker_STR - (Attacker_STR * 75 / 25) = 50


75 / 25 = 3, so this would transmute into:

4 * Attacker_STR - 3 * Attacker_STR = 50


So "Attacker_STR", in this particular case, is 50. This means, under perfect conditions, that a character, or creature, with more than 50 strength would do well to avoid using this skill, as a normal physical attack would be just as good. Let's look at the same scenario, only with a "STR_Factor" of 10:

4 * Attacker_STR - (Attacker_STR * 10 / 25) = 50


While 10 / 25 can be reduced to 2 / 5, we basically end up with something that looks like:

18 / 5 * Attacker_STR = 50


In this case, we multiply both sides by 5, then divide them by 18 resulting in "Attacker_STR" being equal to 125 / 9 (after rounding). In decimal form, this would be 13 + 8 / 9, or 14 (since VX doesn't "see" fractions). That means that anyone with a STR higher than 14, under perfect conditions, should not bother with using this technique.

While it was probably at least vaguely understood before, it is now clear that "STR_Factor" is a very key element in determining how effective a technique is. To hammer this point a bit more, let's look at the same scenario as before, only with a "STR_Factor" of 150:

4 * Attacker_STR - (Attacker_STR * 150 / 25) = 50


150 / 25 = 6. Hense:

4 * Attacker_STR - 6 * Attacker_STR = 50


Which leads us to:

-2 * Attacker_STR = 50


We all know that 50 / -2 = -25, but what does that mean for "Attacker_STR"? Well, to take the definition of the point of uselessness litterally, it means that the attacker's strength, under perfect conditions, has to be -25 for this skill to be ineffectual. Which, unless there's some custom coding happening in the background, is not possible with RPGM-VX.

Note that I keep saying "under perfect conditions". This is because I ignored "Defender_DEF". I assume the end results would be generally higher as "Defender_DEF" increases. Thus, by no means, is this a perfect solution to game balance issues in regards to techniques. However, it is a tool to measure how effective a technique can be. A ballpark figure, so to speak. Sometimes, that's all one needs.

Posts

Pages: 1
I don't quite understand. Wouldn't you find out how much damage your attacks do when you're balancing anyway? I mean just because your attack does more than a basic attack doesn't mean it's balanced by any stretch of the imagination.
Craze
why would i heal when i could equip a morningstar
15170
Might I suggest using much shorter titles, such as "The Point of Uselessness: Balanced Damage Calculations" or something like that?
Marrend
Guardian of the Description Thread
21781
Craze, your title sounds a lot better. Using it!

I'm pretty sure I said this in the tutorial, but this is by no means a perfect way to figure out how balanced a technique is. Just because your end result is "Attacker_STR" = -2 doesn't mean that the skill is balanced. Just that it's wildly more effective than a physical attack under perfect conditions. What to do with the result depends on what you want the skill to do, I'd say.
Pages: 1