Super easy enemy balance method

Oriceles

0 + a.atk * 4 - b.def * 2
Veteran
Joined
Apr 4, 2012
Messages
384
Reaction score
71
First Language
English
Primarily Uses
N/A
Introduction


One of the hardest parts for me on RPG Maker have been how to balance the enemies, I'm not fond of having same monster of different color being harder than the previous. We have Yanfly Enemy Levels as solution for this, but when I came to a practical use of it,  it was hard because it involved a lot of stat checks of base+ratio, in the end the enemies turned out too OP or pretty underwhelming because of low bases. I suck at math, really, FlyingDreams created a calculator for that script but I was still struggling with it.


Monster stats theory





Monsters to human size comparison


 


That is why I went Google and stumbled with this tutorial from Garler at Rpg Maker Central where he points out how enemies should be based around the player stats, and it make sense, we know that a giant could be 10x stronger and bigger than a normal human, but then we come to the power levels, is this giant 10x stronger than a Lv.50 character or just 10x stronger than a Lv.1 character?, the giant will turn a meaningless kill as the player progress, but is that really what we want?, I don't like when in a game the first boss ends up less challenging than a high level mob. Why not make it always 10x stronger stat wise but giving the player the proper tools to make it weak and kill it on a reasonable amount of time?. Strategy, tactics and overpowered Arch Magic from the 8th rank is what we need to introduce to the player.


The Method


If you read the external tutorial I linked you will see that Garler compares database Class levels with Enemy stats. Doing that with Yanfly Enemy Levels will be hard so I decided to combine it with Hime Enemy Classes. That way I could get a built-in way to see how a Lv.1 Kobold and a Lv.50 Kobold would turn out, control the stats with built-in tools based on average player. So now I'm going step by step clearing doubts and explaining my method on how make the enemy progression way easier.


Things that you need for this tutorial:

  1. Basic knowledge on how to add scripts
  2. Basic knowledge of the database tools
  3. Yanfly Enemy Levels plugin
  4. Hime Enemy Classes plugin
  5. Coffee (optional)
  6. Patience



Step 1 - Inserting the plugins


You will need to add the scripts mentioned above to your project in the following order:





Step 2 - Setting up YEP - Enemy Levels for this method


As I've mentioned Yanfly way of setting up the enemy stats requires dedication and can be annoying so we are going to simplify the script by changing the Flat and Rate growth values from all stats except gold and exp to zero. In the following image there is a example:




Possible question: Why are you using Yanfly Enemy Levels instead of Hime Enemy Levels?


— Tsukihime levels script is too basic and doesn't have a way to set a default level type without having to add a notetag to all the enemies in the database. Yanfly also provides control for minimum, maximum and static levels for enemies.


Step 3 - Creating Enemy Class Templates





We have been talking about making the enemies relative to the player on stats, this doesn't mean that every enemy needs a class, in fact you could do just 2 or 3 different templates and control the stat difference for each enemy with just traits. So here is what I did, just 2 templates, Warrior type enemies and Wizard type enemies, the first one usually are going to be the melee fighters (Kobolds, Lizardmans, Goblins, Giants, Werewolf, etc) and the second one are the squishy casters that deal lots of damage with spells (Rogue Wizards, Specters, Lich, Witches, etc). For Warrior Template stats I took reference from the default Swordman job with some minor modifications.


As for skills, you can add basic skills for every class, or you can add the skills on the enemy, that is up to you, according to Tsukihime, both will be used.


Step 4 - Creating the Enemies


In the next image you can see I've highlighted 3 parts, on the general settings the stats are set to 1 and 0, that is because those are ignored and the stats from the class specified in the note tag will overwrite them, Enemy class 25 is my Warrior template, but for a Goblin those default stats might be too high right? that is why on traits I went and changed the relevant stats to a 65% (that is 35% hp less than a standard Swordman for example)





So then we are going to test my Goblin on Lv3, taking in consideration that he is using the modified parameters from the class template.





We could go and test it on a higher level and it will stay dynamic. You could also change the Parameter multiplier to something different, let's say I'm fighting a Lich with the Wizard template, the Lich usually stronger than any other enemy wizard unit so I changed his multiplier to 750% on magic attack. Fighting the Lv.50 and Lv99 Goblin doesn't feel that bad either, you have to take in consideration that enemies by default don't have the bonus from your equipment so watch out when nerfing their attack.


Final Notes


I really think that using templates and % based enemies save a lot of time if your database is around 100+ enemies, having minimum and maximum levels can also restrict the player from staying or advancing so this is an important part to consider. I hope you guys find this helpful. I'm making this for my friends that are picking up RPG Maker now and need start points like this.
 

bgillisp

Global Moderators
Global Mod
Joined
Jul 2, 2014
Messages
13,367
Reaction score
14,072
First Language
English
Primarily Uses
RMVXA
I've actually done something similar in my project using Yanfly's passive states script to let me notetag all of the modifiers easily. That way you can quickly change the stats for all monsters of one type if you learn they are consistently too hard.


Though...I have to say I do disagree about having enemies level up with you being a good way to balance, but that is a thought for another thread.
 

Oriceles

0 + a.atk * 4 - b.def * 2
Veteran
Joined
Apr 4, 2012
Messages
384
Reaction score
71
First Language
English
Primarily Uses
N/A
I think it depends on the liking, also you can always set a limit for their growth if you find it necessary :p  
 

bgillisp

Global Moderators
Global Mod
Joined
Jul 2, 2014
Messages
13,367
Reaction score
14,072
First Language
English
Primarily Uses
RMVXA
I suppose. I just don't like it as a player when I face level 99 god-like rats because the developer was too lazy to actually balance their monsters and instead relied on enemy scaling to 'balance' it. Believe me, I've seen too many games do that now that I get leery whenever I hear of level scaling enemies at all.


Though...I will say assigning them levels, but not scaling them can work well (or keeping the range small, like say 1 - 2 levels in variance). In fact, some of the old D and D games did it. For example, Curse of the Azure bonds rated monsters were rated on a scale of 1 - 10, and that scale usually meant the level you should be to have a chance to win the fight. So it can work as long as you use it well.
 

Oriceles

0 + a.atk * 4 - b.def * 2
Veteran
Joined
Apr 4, 2012
Messages
384
Reaction score
71
First Language
English
Primarily Uses
N/A
It depends on how this lv.99 rats stats are handled, in my project they would be a fraction of what a small monster template is at that lvl, so they are not being a threat after all. (Not like I'm letting lv 99 rats to be a thing anyway lulz).


I don't like monsters with static stats because revisiting areas feels boring when I can kill everything in one shot. Yet we don't have to reach the "grindy korean rpg" either.
 

hadecynn

Dreams Circle
Veteran
Joined
Dec 4, 2015
Messages
326
Reaction score
1,036
First Language
English
Primarily Uses
RMMV
While I recognize the good-intentions and effort you've put into writing this up, I don't think your work here warrants the title "super easy enemy balance method". You've done a great job presenting percentage-based modifications as a tool or method to save time from manual adjustments, but you didn't touch on actual balancing at all.


1. For example, you proposed making the Goblin's stats to be 65% of your standard Warrior class. My immediate questions would be: How did you come up with this 65%? Why not 70%? Why not 55%? What is the consideration and significance of using 65%? Is it the threshold between surviving one versus two hits from the player character? Is it the Agility threshold of the enemy being able to get its turn before and after a character, prior or following a character leveling up to the next level?


2. Without context and insight into the kind of damage formula you (or your readers) are using, it's impractical to say that percentage reduction (or any other one-size-fit-all method) is a sure-fire way to make all your balancing problems go away. Reducing Attack by 35% when the damage formula is "a.atk * 4 - b.def * 2" is very different from reducing Attack by 35% when the damage formula is "a.atk ^ 2 / b.def", for example.


3. This method cannot accommodate a change in the number of party members in the player's party, nor help in balancing an entire troop (that consists of more than 1 enemy).


Let's say you made an enemy that hits hard and is able to kill any one character within 2 hits, and for simplicity's sake, let's say you give the player a party of 2, with a healer and a fighter. In a 1 vs 2 situation, assuming the player characters always go first, the player can win 100% of the time by having the healer heal the character who was damaged in the previous turn. But what happens if you have a 2 vs 4 situation, where there are now 2 of these same enemies, and the party has 2 of the same healers and fighters? You might think that because you've doubled both sides, the two scenarios should be the same; they are not. There is now the possibility that both enemies will choose and target the same character on the same turn, effectively killing that character without the player able to do anything about it. This is completely luck based and will be a point of frustration for players.


How do you resolve this kind of issue by merely controlling stats through percentage changes?


Again, my intention isn't to discredit your efforts or intentions, but I would hesitate in recommending this method to novices getting their feet wet with game development. You mentioned that you suck at math, and I'm afraid the reality is that if you really want the degree of control and balancing that you find good games to have, math is something you'll need to feel comfortable with and to make your ally.
 

Oriceles

0 + a.atk * 4 - b.def * 2
Veteran
Joined
Apr 4, 2012
Messages
384
Reaction score
71
First Language
English
Primarily Uses
N/A
Yeah I went pretty shallow on the examples, but is mostly rule of thumb of what I felt that work for me. And yeah I did this with the basic project formulas, so that is totally something to keep in consideration. I'm not saying that this method is reliable or ideal, but is a quick solution if you are not planning to do something too complicated.


i might edit this soon to add those considerations you have mentioned.
 

Traveling Bard

The Bard
Veteran
Joined
Jul 4, 2012
Messages
564
Reaction score
484
First Language
English
Primarily Uses
I am a huge fan of templates. :)  design smarter not harder ;)  


Coming from a working environment where our applications are largely template-based in order to address the custom needs of many clients, I think instead of seeing this as a "balancing" tool, it should be seen as a way to be consistent in design across many monsters you will be creating and tweaking constantly. Even across multiple titles in your development work. For example, if you know what your monsters are at their core the only difference is degrees thereof & individual skills/spells... then most of your work is already done. This method of thinking could also be used one step further to accommodate general fighting styles by creating templates under troops to reference. For example, YEP Battle A.I. Core or even YEP Base Troop Events could aid in this. It's quite a beautiful way to think about development that I never made the connection with until now.


Might not make sense if your titles are small & only have a few monsters, but would definitely be nice to build as a template engine which you can then translate across all of your future games quickly. If you wanted to go "small numbers", for example, a la Dungeons & Dragons or Dragon Quest, doing so would be rather simple with this in place. Simply change the base templates for your enemies and players accordingly... boom, done. Thanks for this eye-opening tutorial! 
 

Radis3D

Just a Devilz
Veteran
Joined
Nov 1, 2015
Messages
172
Reaction score
33
First Language
Indonesian
Primarily Uses
RMVXA
just looking to another way to balancing enemy, and found it..
very very handy for me... :')

*sorry if it be necropost...
 

Nechigawara

Certamen Promus
Veteran
Joined
Oct 24, 2015
Messages
54
Reaction score
36
First Language
Thai/English
Primarily Uses
N/A
Thanks!! With Yanfly's Enemy Base Parameters, this setting is a bit more easier.
 

Tea's Jams

I'm human
Global Mod
Joined
Mar 28, 2017
Messages
1,020
Reaction score
2,522
First Language
English
Primarily Uses
RMMZ
Having the enemy level up with the character makes for an endlessly grindy world. I've played a game that did that and didn't feel a crucial element in player enjoyment, progression. It's hard to achieve that feeling of character progression if the enemies progress in step with them, imo.
 

Henryetha

Veteran
Veteran
Joined
Jan 14, 2016
Messages
388
Reaction score
206
First Language
german
Primarily Uses
I think it highly depends on the game.
One shouldn't implement it because he is lazy, but rather seen as game mechanic.

With enemy levels I'd for example refrain from putting random encounters on the world map or other paths, the player frequently has to pass through (or deactivate the lvling for those enemies, which can be done via note tag).
Also I would give levels in general less of importance (just for making available certain skills or even equips).

This also needs to change, how the hero, the character is playing, is being looked at.
When levels are somewhat important, the hero usually start as a normalo, growing into a strong powerful guy.
Buuut what if the hero already is a strong powerful guy? Then it seems kind of unrealistic, that he got such a boost in power after slaying just a few bats. So here for example I would use enemy levels, adapt how they scale AND also set the starting level of the hero accordingly.

Also it depends how you set up your battles.
Clicking through random encounter battles as a high level player is repetive and boring.
Clicking through a lvled up enemy as a high level player is even more boring.
So..
- either remove/replace certain battles at some lvl completely
- or highly reduce them

The remaining battles should be meaningful.. so
- spend some work on the battle system
- work on how the battle bgm is played (avoid having the same over and over again)
- do some effort on skill animations (create new animations, get custom animations, add effects as example through plugins)
- make battles rewarding
- maybe add rare encounters (stronger with special loot, variance in their sprite, with own effects (tint screen, own bgm, short dialogue, etc)

Now if the game is highly story-focused, I'd probably completely stay away from enemy levels tho + rather refrain also here from random encounters and place selected battles fix, like included into the story (incl dialogues etc).
 

Tuomo L

Oldbie
Veteran
Joined
Aug 6, 2012
Messages
2,314
Reaction score
1,282
First Language
Finnish
Primarily Uses
RMMV
Having the enemy level up with the character makes for an endlessly grindy world. I've played a game that did that and didn't feel a crucial element in player enjoyment, progression. It's hard to achieve that feeling of character progression if the enemies progress in step with them, imo.
Couldn't you just put max cap to the enemies? Like instead of lvl 50 slime, you'd fight lvl 10 slime at most?
 

Tea's Jams

I'm human
Global Mod
Joined
Mar 28, 2017
Messages
1,020
Reaction score
2,522
First Language
English
Primarily Uses
RMMZ
That might work. I think a person would also have to keep in mind that in the first hour of your game, you have to maximize player enjoyment, to get them invested, so making it super grindy at low levels would be a mistake as well imo. If you placed it right I'm sure it would be fine.
 

Mayumi

Warper
Member
Joined
Dec 19, 2016
Messages
2
Reaction score
0
First Language
Portuguese
Primarily Uses
N/A
You helped me a lot. Thank you.

I made three types of each class, wich one with differents stats (instead of adjusting the parameters manually on each monster, i changed the status of the class), like normal mobi (65% of status), semi-boss (85%) and boss (100%).
 

AnarchyFox

Warper
Member
Joined
Mar 15, 2019
Messages
1
Reaction score
1
First Language
English
Primarily Uses
RMMV
I'm not sure those who have been critical of the enemies leveling with the player fully understand it. That, or *I* could be misunderstanding it.

I don't think that the idea is that mobs keep up with the actors. Only their stats, so that encounters still feel relevant. But they won't be acquiring new skills or equipment like the actors will be, so they will get easier to defeat, just not meaninglessly so.

Personally, I like it. It means that the new skills I've picked up along a play through aren't wasted on lower tier mobs but rather validated by them because my 5' - 6' something guy with a sword still can't one shot a 10' minotaur who can toss quarter ton boulders. The fight is easier due to the new skill sets available, not some vague notion of accrued power.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,636
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
So, from what I get from the rules and the other replies here necroing is not a problem in this area as long as it is relevant to the thread.

So I'd like to add a suggestion to anyone using this method:
Limit their levels range on at least a per map or story point basis.
And if you will give them extra skills on higher levels, make sure the skill damage is still balanced properly with the new level's stats.

The idea I got from the tutorial, of just making all the enemies just get stronger with no limit as the player does and rely on the characters' better skills to make up was used on a big name game:
Square's Final Fantasy VIII.
It... did not go well. On the final product, enemies ended up becoming too strong on higher levels and the best strategy is low-level runs.
Of course, the junction system, that makes you spend hours collecting spells (as they were more like single-use items) so you can equip it on the stats, both made the player stat increases lower than the enemies', and punished the use of skills by lowering the stat that skill was junctioned to - and wouldn't you know it, the stronger the skill the better stats it gave and the more it lost at each one used.
In my opinion FF8 itself is not a bad game at all, but these two systems were flawed, and then they were put together the flaws just became clearer.
So yeah, a cautionary tale about enemy levels from the, at the time, biggest rpg developer outside Japan (where Enix and their Dragon Quest was still supreme king).
 

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

Latest Threads

Latest Posts

Latest Profile Posts

Hello guys im new here an i hope i can learn something. I am work actully on my own Plugin for a Tactical Grid Based Battle System.
Ami
--- Equipment Microtransaction ---

M.Knight: How much this item?
Merchant: 79.99 REAL Money
(After Do Transaction In Real World)
Merchant: Thanks,come back again!
(In Distand)
M.Knight: (Smile With Regret) Goodbye...My Dream Console And PC Gaming
Hello folks, I'm an old member deciding to reenter the forum. Greetings :D
When a parent (of a less than adult aged child) is like
"Oh, I'm like a friend to my child. We're friends."
I'm like
"Oh, that kid's gonna suck...."
Baby tiger gets a belly rub! ^.^

Forum statistics

Threads
103,296
Messages
998,625
Members
134,805
Latest member
fstar9688
Top