Balancing Random-/Multitarget Skills

D-D-D-Dan

Veteran
Veteran
Joined
Mar 30, 2019
Messages
52
Reaction score
5
First Language
English
Primarily Uses
RMMV
Hey there guys and gals.
I have been working on balancing my combat system which after some (ALOT) of trial and error
has been moderately successfull.
Now i have been working on my Random-/Multitarget Skills.
I have balanced them in a way of cost and damage but i still have issues with the results.
Main issue beeing that they can hit the same target multiple times.
I am okay with it hitting the same target but it kinda makes single target spells redundant or at least
moves the player to preferring multi over single target even when fighting a single enemy.
So my question would be if there was a way to reduce the damage the target takes from every follow up hit from
the same skill in that turn.

Example: First hit deals 100% of the damage second only 50% third only 25% fourth only 10%.
So if i have a spell that can hit 4 targets hits a single target it would take 185 dmg instead of 400.

Just spittballing here but while writing this i thought maybe i could somehow make a (invisible) state that increases resistance to that ability that stacks with every hit... would something like that be possible?

Or is there a better way to go about this all together and im just not seeing it yet?
 

Weremole

Veteran
Veteran
Joined
Jan 22, 2016
Messages
228
Reaction score
201
First Language
Swedish
Primarily Uses
I think it would be if you made an element specific to the skill and figured out a way to apply it to enemies and allow it to stack. You could also maybe figure out an action sequence where each target action subtracted a percentage. Maybe a damage formula that does the opposite of spread damage? The less enemies there are the less damage you do.
 

bgillisp

Global Moderators
Global Mod
Joined
Jul 2, 2014
Messages
13,116
Reaction score
13,615
First Language
English
Primarily Uses
RMVXA
What I did was one of two things, depending on the spell:

1: Made it low power. This way if it hits the same target it isn't a lot of damage. The problem is you need a lot of hits to balance that out well.

2: Make it the most powerful spell in the game. My healer's best spell is one called Starlight which hits 11 random targets. However, you don't learn it until very late in the game, it is very expensive to cast, and it has both a cooldown and a warmup (the warmup so you can't cast it at the start of battle, the cooldown to stop spamming of it).
 

Wavelength

Edge of Eternity
Global Mod
Joined
Jul 22, 2014
Messages
5,161
Reaction score
4,465
First Language
English
Primarily Uses
RMVXA
The way I handled this was to use Yanfly's Skill Core, using notetags and the formula box to track how many times an enemy had been hit on that action. In the damage formula for the skill, I used a power function: (Math.pow(0.6, (b.samehits - 1))) as part of the damage formula, with the addition of b.samehits += 1; at the beginning of the damage formula to track how many hits had been made on that battler. The power function would therefore evaluate to 1.0 the first time it ran for a battler, 0.6 the second time, 0.36 (0.6 * 0.6) the third time, and so on. You could change the 0.6 to any number between 0 and 1 that you feel is appropriate. In order to make sure that subsequent uses of the action would not count hits from previous uses, I used a <Custom Execution> notetag in the Note box for the skill to reset the samehits variable for all battlers when the skill starts:
Code:
<Custom Execution>
for (var t = 0; t < $gameParty.members().length; t++) {
    member = $gameParty.members()[t];
    member.samehits = 0;
}
for (var t = 0; t < $gameTroop.members().length; t++) {
    member = $gameTroop.members()[t];
    member.samehits = 0;
}
</Custom Execution>
Essentially that loops through each member of both sides, and sets their "hits this action" counter back to 0 at the beginning of the skill's use.

I do believe this kind of "diminishing returns" (which is almost identical to what you said you wanted to do in the OP) is a good balancing mechanism for the Multiple Random Hits skills. It becomes advantageous to use the skill against large enemy parties rather than single enemies, but it's still reasonable to use it against single enemies if the multiplier in the power function isn't too close to 0.
 

D-D-D-Dan

Veteran
Veteran
Joined
Mar 30, 2019
Messages
52
Reaction score
5
First Language
English
Primarily Uses
RMMV
Thanks for all the answers!
I believe Wavelengths answer is exactly what I was looking for :D

A quick test however showed that i have no diminishing returns.
I set the skill to attack 4 times and got the values in this Order: 1. 49 2. 46 3. 48 4. 49

This is the current code im using:
Code:
b.samehits += 1; (Math.pow(0.4, (b.samehits - 1))); (a.mat * (a.mat / (a.mat + b.mdf))) * a.level * 0.45 + 4
With the notetag you posted.

Did I perhaps miss something?
 

Aesica

undefined
Veteran
Joined
May 12, 2018
Messages
1,225
Reaction score
1,131
First Language
English
Primarily Uses
RMMV
Here's how I balance my skills:
  • Hits all enemies: Lowest modifiers with no penalty for hitting multiple targets.
  • Hits single target: Solid modifiers since they can be focused on a specific target. In my game, most single target spells can also be targeted at multiple enemies, however the damage is split between targets.
  • Hits random enemies X times: Highest modifiers (total number of hits) since they can't be directed at a particular target. I balance them around having only one target available to take all the hits.
Here's some sample abilities to give an idea:
  • Area Attack: 9x modifier, hits all enemies, damage not split between targets. Best vs multiple foes
  • Single Attack: 12x modifier, hits a single target. If used as an AoE, 6x vs 2 targets, 4x vs 3, 3x vs 4, etc. Best vs a single foe in a pack that needs to be taken out quickly.
  • Random Attack: 3x modifier, hits 5 times, so 15x total modifier. While comparable to Single Attack in that damage is somewhat split across multiple targets, it deserves a higher base modifier since these attacks cannot be directed against just one specific foe. Best when only one foe remains.
I guess my point is that you don't need any fancy diminishing returns to balance these things out.
 

bgillisp

Global Moderators
Global Mod
Joined
Jul 2, 2014
Messages
13,116
Reaction score
13,615
First Language
English
Primarily Uses
RMVXA
Right. Devil Survivor didn't do dimishing returns, they just went single < AOE < multi-target in terms of cost and overall damage, and no one seemed to complain about it.
 

D-D-D-Dan

Veteran
Veteran
Joined
Mar 30, 2019
Messages
52
Reaction score
5
First Language
English
Primarily Uses
RMMV
Okay, ill give all suggestions a go and see which results satisfy the most :D thanks y'all really appreciate the help!
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Kitchen counters! I am on my second version of counters. It is slow going and I always see little details that could be done better. Have to force myself to say that's good enough for now and continue on.
I always thought I was just really, really bad at communication, then the internet proceeds to say "lol no".
Almost 100,000 Threads! We should make a celebration. Make a 100K logo? :p
Cursed problem: Multiple language switches. Say, you want to switch to EN language from JP but you have no idea where the language switch in JP menu language.
Tonight I'm finally going to start putting the dungeons my team has made on grid paper into the engine. That's the final step of making the game world.

Forum statistics

Threads
99,435
Messages
965,254
Members
131,051
Latest member
JohannBecker
Top