• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0

What techniques do you use to balance your game?

7 posts in this topic

I'm working on a couple different sister projects ([url="http://www.allacrost.org"]Hero of Allacrost[/url] and [url="http://valyriatear.blogspot.com/"]Valyria Tear[/url], 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.

[b]1) Produce data spreadsheets[/b]

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.

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

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.

[b]3) Add an accelerated battle simulatior into the game[/b]

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.

[i](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).[/i]

Share this post

Link to post
Share on other sites
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.

Share this post

Link to post
Share on other sites
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.

Share this post

Link to post
Share on other sites
[quote name='Roots' timestamp='1352408901' post='4999025']
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). Edited by Orymus3

Share this post

Link to post
Share on other sites
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

Share this post

Link to post
Share on other sites
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 [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img] 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. Edited by Acharis

Share this post

Link to post
Share on other sites
This might be interesting for you:


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
Followers 0