What techniques do you use to balance your game?

Started by
6 comments, last by cronocr 11 years, 5 months ago
I'm working on a couple different sister projects (Hero of Allacrost and Valyria Tear, both Japanese-style RPGs) and the latter has a release coming up soon which still needs a fair amount of balancing. I've done balancing of releases in the past, but I've always done it in a sloppy, ad-hoc manner as we were trying to rush a release out the door. I want to invest some time and effort now to do balancing right (or at least better) for this upcoming release, and I was hoping that others here could share the techniques and tools that they employed to balance their games.

I want to make it clear that I'm not looking for mathematical formulas or anything technical like that. I'm more interested in the balancing of stats and numbers, such as experience awarded by defeating enemies or attack rating. The main balance issue that I'm trying to address is with regard to experience level gains with the playable characters (we want them to feel stronger to the player with each level, but not become overwhelmingly powerful).



With that in mind, here are some ideas that I have thought of thus far.

1) Produce data spreadsheets

This would entail something like putting all of the character data for each experience level into a spreadsheet application along with a sample of enemies, use some simplified equations to calculate average DPT (damage-per-turn) and how much damage we can expect a character party to take, determining how "hard" a battle is based on the amount of hit points likely to be lost before the battle is over.

2) Write a stand-alone script that does number crunching on character/enemy stats

Similar to the first one, but instead of putting it into a spreadsheet (which can be time consuming to do), a script will process all of the data and spit out the same type of results. Probably easier, plus we can pass the script parameters (character and enemy party composition along with XP levels) and get an idea of how "hard" the battle will be.

3) Add an accelerated battle simulatior into the game

Same idea as #2, only this time the battle is actually simulated instead of only performing some simplified numerical calculations. Again we could input any party configurations we want to the simulator, then the AI would take over and run the battle to it's conclusion. This would be difficult to do because it requires us to develop AI to run the characters (we only have a very very basic AI for enemy characters at the moment). Probably too large of a task for us to work on right now (limited developer resources and higher priority tasks elsewhere).



Of course none of this is a subsitute for actually sitting down and playing through the game to see how it really feels. But playing through a game multiple times is a time intensive process, and we don't have any dedicated play testers (unless someone would like to volunteer?), so I'd like to minimize the number of times that we would need to do that by utilizing some of these other techniques.

So, what have you tried in your games? What worked for you, and what didn't? I'm eager to hear about other's experiences in this design problem.

(Note to moderator: this topic doesn't seem to fit into any of the other forums so I put it here. Feel free to move it elsewhere if needed).

Hero of Allacrost - A free, open-source 2D RPG in development.
Latest release June, 2015 - GameDev annoucement

Advertisement
It's been a while but I've used Excel to balance weapons with damage, ROF, etc. I think that would be the easiest way to get set up so you can then run through play testing, which there isn't really a substitute for. I wouldn't kill yourself writing scripts or simulators since actual play testing is going to find problems regardless.

-Mark the Artist

Digital Art and Technical Design
Developer Journal

My four steps to balancing a game:
1. Accept, that balancing is too complex to be simulated in a satisfying way.
2. Make some budget balancing tools or sheets, this will help you to fix half of your balancing issues. Investing more time and money will have only little effect or no benefits at all.
3. Playtest and tweak.
4. Accept that your game is unbalanced, life is too, so you have made a very realistic game in this sense, congratulation!
If it is a deceloped game looking at statistics is often good. From there you can have an algorithm that adjusts the prices of items ect so the prices/damge settles after some games.

1) Produce data spreadsheets

This would entail something like putting all of the character data for each experience level into a spreadsheet application along with a sample of enemies, use some simplified equations to calculate average DPT (damage-per-turn) and how much damage we can expect a character party to take, determining how "hard" a battle is based on the amount of hit points likely to be lost before the battle is over.


I think you need to set yourself some guidelines beforehand and use the spreadsheet to verify and adjust accordingly.

For experience, for example, you would like to know:
- How many "fights of my level" do I need to complete for a levelup (followup questions can help identify this)
-- How much attrition do I suffer on average during one of those fights (see damages)
--- How many trips back to town does it entail (is this acceptable (to review damages))

Let's assume the answer is 5, for any given reason. Then, I'm going to take the experience I need for the next levelup and divide it by roughly 5. This is my "pool" which, essentially is a base reference.
Looking at individual encounters of this area (it is important to look at encounters as a whole rather than single monsters that form them) I need to define which I think are "appropriate level". Then, individually, I need to see which ones are slightly on the tough side, and which are slightly on the easy side, and adjust my baseline accordingly to each of these encounters.
Identifying which monster within the encounter is generally the culprit for making the encounter easier or harder will allow to decrease or increase their individual score.

Now the challenge is, how do I define what encounter is "appropriate level". That is actually tricky, but for the most part, it is entirely up to you. In most jRPGs, you have arbitrary increase in difficulty. This serves several purposes but generally allows you to influence the narrative. For example, if there is a steep increase in difficulty, it may be because you're about to enter an important chunk of the story. I won't go into the details of my understanding of this, but basically, a jRPG balancing really required to be fine-tuned with the narrative you intend on following. It is acceptable to have arbitrary difficulty levels here and there.

With that said, your spreadsheet should contain a "likely path" of the player across the game, level by level, fight by fight, and it will let you know roughly what level the player may be when entering a new area. For the most part, this is ok, but like I said, the jRPG difficulty curve is not linear, and this is not a balancing error.

- How uneffective do I want lower level fights to be
This question helps you establish the range between levels. How do you want the XP curve to scale, and as such, how much more experience should one monster give when it is stronger than another monster. If you want grinding to be a viable strategy in your game (which you may want to help casual gamers get up to speed) you'll likely want to make lower level fights relevant in terms of experience. If you're going for the hardcore experience, a tougher monster will probably yield a lot more XP than the tough monster from the previous areas.
That's entirely up to you and the flow/game experience you want to set.


For battle damage:
- How many rounds to I want a "fight of my level" to last?
This is the critical stat that you need to define. Do you want a fast-paced jrpg where everything lasts 1-2 younds if you are at the right level?
Do you want to add more strategic depth at the cost of flow and make fights 3-4 rounds?
Are you more into mid-term tactics and fewer fights such that your average fight will last 5+ rounds?
Once you have that number, you have your base to determine player Attack and monster HP/Def.

- How much attrition do I suffer on average during one of those fights (see damages)
This is the counterpart to the previous question. Here you want to define the relationship between Character HP and monster Attack.
In brief the question could also be "how many fights can I sustain before requiring to recover?". Consumable items and resting at an inn are two different ways to achieve this, but basically, this is the measure of attrition of your game.


The two first questions will help you set two basic coefficients.

- How easily do you want to slice through under-leveled encounters?
Much like experience, you need to determine how shorter fights will be when against weaker foes, and how attrition will be diminished as a result.
Personally, I like to reduce XP gain "a lot" but attrition "a bit". The idea is that the player gets to understand there isn't much gain in fighting these weaklings, but they will still cost his resources.
My recommandation would be to increase the character's attacks so that the fight is much shorter, but not so much the defense so that they still suffer attrition.

These three questions together will set a baseline. You should be able to generate your formulae from these resulting 4 coefficients and end up with a fairly functional system.

- Further Utilities
I haven't touched on that subject, but you will need to handle utilities. By utilities, I mean everything that does not radically fall in the attack-attack scenario.
These include:
*Healers: Monsters with abilities that heal or powerup are harder to gauge. It will be hard to determine how many rounds a fight will last when they are on the battlefield. As a general rule of thumb, you'll want them to be tankers, so that they can last long enough to cope for the fact they won't be dealing damage directly, but will indirectly help out their allies. If you do have such enemies in your game(s), it will be interesting to discuss this further, but I don't want to try and chart everything that is possible.
*Magic attacks/resources: A lot of enemies and characters will probably have access to more efficient attacks that cost resources. Don't forget to factor this when you check for attrition. While MPs aren't life, they still require a refresh once in a while, and this might need a standalone factor in your spreadsheet. Monsters with such options might be considered harder, and should yield more exp. Monsters that are less affected by regular attacks and require magical attacks to defeat them should also be worth more.

If you have more concrete examples of what you're trying to balance exactly, I'll be more than happy to lend a hand.

EDIT: I've built a quick spreadsheet to display this example.
My parameters are:
- Fights per level
- Attrition per fight (% of HP loss)
- XP Leap Multiplier (a value that I gauge to align the numbers: the ratio of everything remains the same)
- Growth Factor HP (The rate at which HP increases, so as to make previous enemies less of an attrition threat)
- Growth Factor STR (The rate at which STR increases, so as to make previous enemies faster to kill off)

I've input original arbitrary values and established a list of per encounter level and stats. Now I need to allocated the "per encounter" as described above.
Everything else is tweaking and manual manipulations (and a lot of testing it in-game).
Much as Ashaman said:

1) Make some spreadsheets so you can model the equations you're using and predict some of the effects of your tweaks.
2) Make above-mentioned tweaks through trial and error.
3) Repeat Step #2 until the balance isn't completely laughable

I Create Games to Help Tell Stories

I think balance is overrated, or at least overworried.

There are 2 cases, one is singleplayer (in which case you really rarely need to sweat over it, the "unbalanced" parts simply change the flow of the game or make a few weapons useless, no real harm done) one is multiplayer (which is harder, you need to assure that all races are at least nearly equal). But when it comes to multiplayer it's an easy trick to make it perfectly balanced. You have access to all player data, so just check which races were selected by players too often and... nerf these biggrin.png It's just effort and time required, no advanced design techniquies.

Generally, release a playable version of the game as soon as possible and listen to players, they will tell you what is unbalanced much better than any spreadsheets and other heavy and troublesome technique. Note that nowadays we don't release games as hardcopies burned on CDs for eternity, everything can be patched/updated later. Use that advantage. Striving to make it perfectly balanced on the first iteration is a mistake in my opinion, it's the player's feedback that is supposed to "fix" it, not our smart planning.

Stellar Monarch (4X, turn based, released): GDN forum topic - Twitter - Facebook - YouTube

This might be interesting for you:

http://www.gamasutra.com/view/news/181326/Richard_Garfields_strategies_for_game_balancing.php

This topic is closed to new replies.

Advertisement