Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (117)
games submitted by our members
Games in WIP (564)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Balancing of a strategy game (RTS)  (Read 7213 times)
0 Members and 1 Guest are viewing this topic.
Offline beni

Senior Newbie





« Posted 2009-04-27 06:20:12 »

Hello everybody,
i wonder how strategy games are balanced and designed in respect of their units, weapons etc.
There are so many different things that need to be considered, like speed of units, price, speed of attack, inflicted damage, special abilities etc...
Is there a general guideline how one should approach this without getting lost in the jungle?

For example, we plan to have tree races, A, B and C. A and B as well as B and C always form an alliance.
There should be things like paralizing damage and poison damage, which would make all that even more difficult.
At the end, we want to have an balanced game where no fraction has an general advantage but serve some unique advantage that helpd the ally-counterpart to win the game (eg. A does complement B so together they may have an advantage over the other ally fraction).
Offline zoto

Senior Member


Medals: 4



« Reply #1 - Posted 2009-04-27 10:48:48 »

One way to do this is a weighted system where each statistic has a certain weight and you spend the same total points designing each team.
perhaps each starting clan would have 10 points spent and each point could be 5 average damage, 2 armor, +1 class poison, or etc.
The same system can  be applied to unit cost according to the influx of currency.
Offline Darrin

Junior Member


Projects: 1



« Reply #2 - Posted 2009-04-28 02:56:58 »

The same solution applies to magic items in rpgs.

Build a spreadsheet with all the variables, then build a weighted formula to calculate their value.  The formula will change over time but will give you a nice start.

For example,

move    2 per point
armor   3 per point
shields  2 per point
short range  5 points
medium range  = 10 points
long range 15 points
Health 0.5 per hit point
fire rate  6 per second


in your spread sheet you can see an approximate balance.   

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline pjt33
« Reply #3 - Posted 2009-04-28 10:07:46 »

The only way to really get this right is play-testing it with a few thousand people - otherwise there's always a chance that you miss the strategy which dominates all others.
Offline beni

Senior Newbie





« Reply #4 - Posted 2009-04-28 11:26:48 »

Thank you for the input given so far!
Offline Json

Junior Member


Exp: 7 years



« Reply #5 - Posted 2009-04-28 11:38:36 »

I would agree that the only way to find balance issues is to play A LOT. Get some other people in to test for you as well as they might see things from another perspective.

Tweak and test. Rinse and repeat.

// Json
Offline Mr_Light

Senior Member


Medals: 1


shiny.


« Reply #6 - Posted 2009-04-28 14:18:18 »

The only way to really get this right is play-testing it with a few thousand people - otherwise there's always a chance that you miss the strategy which dominates all others.

If you miss something like that it's not a reason to throw your system overboard - simply adapt the intrinsic values to accommodate this. But most of the time it's due to a 'killer combination' for which there are even simple solutions.

It's harder to read code than to write it. - it's even harder to write readable code.

The gospel of brother Riven: "The guarantee that all bugs are in *your* code is worth gold." Amen brother a-m-e-n.
Offline bobjob

JGO Knight


Medals: 10
Projects: 4


David Aaron Muhar


« Reply #7 - Posted 2009-04-28 14:23:30 »

The only way to really get this right is play-testing it with a few thousand people - otherwise there's always a chance that you miss the strategy which dominates all others.
+1

Beni is you plan to do Real Time Strategy, then movement speed changes the game around heeps, you cant balance strength/damage with movement speed without testing. As well as bullet movement speeds, will change the game balancing alot.

One thing to consider is to have a "base" version of everything (damage,movement, hp). Then make stats related to the base depending on the units level.

My Projects
Games, Webcam chat, Video screencast, PDF tools.

Javagaming.org with chat room
Offline Mr_Light

Senior Member


Medals: 1


shiny.


« Reply #8 - Posted 2009-04-28 14:42:24 »

+1

Beni is you plan to do Real Time Strategy, then movement speed changes the game around heeps, you cant balance strength/damage with movement speed without testing. As well as bullet movement speeds, will change the game balancing alot.

One thing to consider is to have a "base" version of everything (damage,movement, hp). Then make stats related to the base depending on the units level.


Then assign values to those aspects as well and factor them in. If your model doesn't work because of outside influences simply expand your model to include them.

It's harder to read code than to write it. - it's even harder to write readable code.

The gospel of brother Riven: "The guarantee that all bugs are in *your* code is worth gold." Amen brother a-m-e-n.
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #9 - Posted 2009-04-28 14:44:25 »

If you miss something like that it's not a reason to throw your system overboard - simply adapt the intrinsic values to accommodate this. But most of the time it's due to a 'killer combination' for which there are even simple solutions.
You can pull some core gameplay values from a server at the start of the game to allow simple post-launch tweaking. Halo does this IIRC, things like weapon damage, range, movement speed etc. are all retrieved before the start of every online match so that they could fine tune things after launch without having to patch.

You can also gather telemetry like <a href="http://www.bungie.net/Online/Heatmaps.aspx">heatmaps</a> which can show up bottlenecks and other problems with map design, for a rts it might make sense to gather stats on number of kills each unit type inflicts (both as a whole and against other unit types). That should help you see if any units are particularly underpowered or overpowered.

You can do both of these either during development as you and friends play the game, or after release when other people are playing (who are probably better at finding holes in your game balance). If your AI is good you can even just make it play itself and gather stats from that (or you might just find that your AI is bad at certain maps or certain units, which is still useful).

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline shatterblast

Senior Newbie




Noobier Than Thou


« Reply #10 - Posted 2009-04-28 15:23:49 »

Something else you might consider would be creating a list of army-specific abilities.  For instance, does a 10% chance of taking no damage at all equal a 10% reduction to all damage taken?  What about a modifier in an object's "attack" that causes its target to react 10% slower?  All these achieve the same effect over all, but the play style changes dramatically.

Depending on a game, a 10% dodge chance is a 10% chance to not die in a single hit.  A 10% resistance to everything means effectively that a health total is 10% greater than what it really shows.  While relative to a player's perspective, an opponent that reacts 10% slower might mean that the player's unit stills dies in a single hit, and thus, a unit that causes a slower reaction usually serves much better as support for something that survives better through other means.

Combining a comparatively long distance attack range with a slow modifier and an escape ability can totally change a situation.

Offline Mr_Light

Senior Member


Medals: 1


shiny.


« Reply #11 - Posted 2009-04-28 16:02:44 »

You can pull some core gameplay values from a server at the start of the game to allow simple post-launch tweaking. Halo does this IIRC, things like weapon damage, range, movement speed etc. are all retrieved before the start of every online match so that they could fine tune things after launch without having to patch.

You can also gather telemetry like <a href="http://www.bungie.net/Online/Heatmaps.aspx">heatmaps</a> which can show up bottlenecks and other problems with map design, for a rts it might make sense to gather stats on number of kills each unit type inflicts (both as a whole and against other unit types). That should help you see if any units are particularly underpowered or overpowered.

You can do both of these either during development as you and friends play the game, or after release when other people are playing (who are probably better at finding holes in your game balance). If your AI is good you can even just make it play itself and gather stats from that (or you might just find that your AI is bad at certain maps or certain units, which is still useful).

If you take rock paper scissors and apply those types of techniques you'll end up with with either 3 scissors or 3 papers or 3 rocks or 3 rock paper scissors for every side. That isn't balancing imo. Choke points have strategic value they add to the game - they don't bring it down. If your looking to make a real time tactics game then I suppose it makes more sense... The paper paper paper game becomes a nice http://en.wikipedia.org/wiki/Three_way_duel_(puzzle) depending on how well you wield the paper - mind you there is little sense in adding different races as they just end up being the same thing but just look different.

Offcourse I suppose you could take the determining factor outside combat - kinda ala warcraft 3 where races are mostly different not so much because of thier unique abilities but on the resources they need to build their army Undeath leans heavily on gold night elf on wood. depending on who your fighting against it is of more or less value to attack or hold that goldmine.

That all doesn't mean those stats are useless, I just wouldn't take them as your primary form of measurement. Or you will have the serious risk of ending up with just another generic RTS.

//edit

Quote
A 10% resistance to everything means effectively that a health total is 10% greater than what it really shows.
I don't think that's true.
100 - 9*10 = 10
110 - 10*10 = 10

now try taking another hit :p

I got the point you where trying to make though Smiley

It's harder to read code than to write it. - it's even harder to write readable code.

The gospel of brother Riven: "The guarantee that all bugs are in *your* code is worth gold." Amen brother a-m-e-n.
Offline Darrin

Junior Member


Projects: 1



« Reply #12 - Posted 2009-04-28 23:17:19 »

well said mr_light.

While balance is quite important, game play is more interesting.   Probably the two best rts games I've ever played are

http://en.wikipedia.org/wiki/Sacrifice_(computer_game)
And dungeon Keeper. 

Why?  they hare very different types of choices to make.  You are better focused on doing some cool new things first then tweak the balance.

For example, suicide bombers that chicken out unless one of their own team dies with them.   

Offline beni

Senior Newbie





« Reply #13 - Posted 2009-04-29 07:39:55 »

Hi, thanks for the long, enlighting post, Mr. Light!

My biggest problem currently is, how to do the first step. How to start?
We have a game design that describes the three races and how they should play differently. Now the step must been taken, that this proposed gameplay should be realized. It is clear to me, that this needs much iteration, and thats fine. But how to do the very first step?

After what i learned in the previous posts, my idea is to firstly define some basic combat rules (like "A"-Units are especially good at shooting "B"s). This basic rules must derive from the game spec, like race "R" should be played with many cheap units, while "RX" is a high technology race that should use finesse (special abilitys) instead of pure force (like some mind twisting magic that turns Rs units into believing they are rabbits or such a thing).
This would imply, that Rs units are weak and cheap but RXs are strong but expensive.
The problem is not to define those rules, but to pour that into real values to start with...
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #14 - Posted 2009-04-29 08:43:56 »

If you take rock paper scissors and apply those types of techniques you'll end up with with either 3 scissors or 3 papers or 3 rocks or 3 rock paper scissors for every side. That isn't balancing imo. Choke points have strategic value they add to the game - they don't bring it down. If your looking to make a real time tactics game then I suppose it makes more sense... The paper paper paper game becomes a nice http://en.wikipedia.org/wiki/Three_way_duel_(puzzle) depending on how well you wield the paper - mind you there is little sense in adding different races as they just end up being the same thing but just look different.

Obviously you can't just apply changes blindly, you've got to think about how the stats reflect your game design. In the same way that trying to optimise without profiling is hard, trying to balance the gameplay without stats and feedback is trickier than it should be. In the chaos of battle it's much easier to look at Before vs. After stats rather than try and make out who's actually killing who on the field.

Similarly with choke points. If you design a map to have choke points at certain points then a heatmap will tell you whether you got it right or not. Maybe you'll find that your map is skewed and one choke point is never used while the other gets all the action. Or you might find that a few stray trees have made the actual choke point slightly too far forwards/backwards to where you wanted it.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline Mr_Light

Senior Member


Medals: 1


shiny.


« Reply #15 - Posted 2009-04-30 07:59:11 »

yeah Orangy Tang, I was ranting a bit.  Sorry  Kiss

Quote
you've got to think about how the stats reflect your game design.
Which means you don't take those stats as a starting point, which was what this discussion was starting to lean against and which I wanted to steer away from.

It's harder to read code than to write it. - it's even harder to write readable code.

The gospel of brother Riven: "The guarantee that all bugs are in *your* code is worth gold." Amen brother a-m-e-n.
Offline ImNotBacon

Junior Member




Don't eat me


« Reply #16 - Posted 2009-05-06 14:46:19 »

Your game will never be balanced. If you can prove it is, the game isn't complex enough to be very interesting.

To get as close as you can, you can use design tools like charts or stat costs to make good guesses, but "proof" only comes out of exhaustive play testing. Log everything your players do, and have the ability to break down the data in a lot of different ways.

Being totally free of bias in making balance decisions is difficult. Don't lock yourself into any system of thinking. If something sucks or is overpowered, have the emotional discipline to take a step back and admit it and make necessary changes.

Either master your own game, or keep a hawk's eye on everything the players who master it do.

Be prepared to constantly update your game, even after release.

And lastly, and most importantly: be prepared to disagree with everyone.
Offline beni

Senior Newbie





« Reply #17 - Posted 2009-05-12 08:37:00 »

So, just for the record;
This weekend we sat together and talked about principles and what our three races should play like and in which situations combat will mostly occur. After defining those basic things in detail, we tried to create some basic units that reflect the gameplay. Also the goal was that every race has some possibility to overcome the other two races.

Now currently we have very few but very diversified units with huge pros and cons that should basicly balance each other.
The next step is now to implement that units and do play testing to iterate over the units attributes and to balance even further.
since we only have a basic set of units, we will most likely discover that we should invent additional ones to make the game more interesting.
This should, however, grow as we proceed.

I think this sounds like a plan, what do you think?

(Again, thanks to all your input, it helped me alot to clarify my mind)
Offline ImNotBacon

Junior Member




Don't eat me


« Reply #18 - Posted 2009-05-12 15:03:27 »

Your plan sounds great.

Keep in mind, ideas during the 0th design iteration (preproduction) suck compared to the ones you'll have after a month of playing your game.
Offline Eli Delventhal

JGO Kernel


Medals: 42
Projects: 11
Exp: 10 years


Game Engineer


« Reply #19 - Posted 2009-05-12 16:48:31 »

I think a good idea is to start small then build on it.

As in, start with a game where there is only one type of unit, they only have attack and health. When you've got that balanced (which should be pretty easy, considering there's only one unit), add another unit or another stat. When that's balanced, add something else. It will take exponentially longer to test each new step, but this might be a good jumping-off point because then at least you'll know you have a solid foundation.

See my work:
OTC Software
Offline beni

Senior Newbie





« Reply #20 - Posted 2009-05-14 07:26:51 »

While this sounds goo theoretically, it has the problem that it does not cover the very basic aspects of the so-far designed game (ie there should be three races doing different, already defined, things).
Also it does not work with our warfare model, because we certainly will have fortified bases which have a huge impact on the way they must be conquered compared to the open field combat.

But we will proceed like you proposed, we now have the small base which now must be balanced and looked closer on. If we have gained enough experience, we will move on.
Offline Mr_Light

Senior Member


Medals: 1


shiny.


« Reply #21 - Posted 2009-05-14 23:12:59 »

Your game will never be balanced. If you can prove it is, the game isn't complex enough to be very interesting.

So chess and go are not very interesting?

While you maybe be unable to prove a game is balanced but you can limit the level of uncertainty to an amount that can easily be overcome by some skill. At which the imbalance becomes insignificant.

It's harder to read code than to write it. - it's even harder to write readable code.

The gospel of brother Riven: "The guarantee that all bugs are in *your* code is worth gold." Amen brother a-m-e-n.
Offline ImNotBacon

Junior Member




Don't eat me


« Reply #22 - Posted 2009-05-15 01:34:32 »

So chess and go are not very interesting?

Aside from who plays first, the initial conditions for the two players in chess completely mirror each other, so the comparison isn't relevant.

The kind of game the OP is discussing involves unalterable differences in the initial condition, like the race choice and placement on the map.

In a game like Chess, the player begins the game with all the resources they'll ever have. Modern RTS games involve investing in distinct, divergent paths. If this content isn't relatively balanced, the "best path" will be quickly solved reducing the amount of playable competitive content to that subset. If the differences between the paths are simple enough for their balance to be provable on paper, they're not complex or divergent enough to be interesting.
Offline appel

JGO Wizard


Medals: 51
Projects: 4


I always win!


« Reply #23 - Posted 2009-06-04 15:58:35 »

It's always tricky to balance a game.

IMO all units (or structures) should have some specially designed purpose, they should all have a balancing purpose against other type of units (or structures).

When you design a unit (or structure) you need to think about what other units (or structures) it is designed to destroy, and also what other units (or structures) can destroy it.


Check out the 4K competition @ www.java4k.com
Check out GAMADU (my own site) @ http://gamadu.com/
Offline loom_weaver

JGO Coder


Medals: 17



« Reply #24 - Posted 2009-07-02 07:27:47 »

Two tips I've seen that might help with balancing.

1. It's easier to balance independent variables.  Take for example a simple damage stat versus a strength stat that affects both how much you can carry and how much damage you do.  Adjusting the former is easier than the latter.

2. a 10% tweak can make a big difference to a somewhat balanced statistic.  A 25% adjustment is enough to overpower or gut whatever you're trying to balance.
Offline SwampChicken
« Reply #25 - Posted 2009-08-31 04:45:37 »

FYI:
http://www.tentonhammer.com/node/72725
 Kiss
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Grunnt (21 views)
2014-09-23 14:38:19

radar3301 (14 views)
2014-09-21 23:33:17

BurntPizza (31 views)
2014-09-21 02:42:18

BurntPizza (22 views)
2014-09-21 01:30:30

moogie (20 views)
2014-09-21 00:26:15

UprightPath (29 views)
2014-09-20 20:14:06

BurntPizza (34 views)
2014-09-19 03:14:18

Dwinin (48 views)
2014-09-12 09:08:26

Norakomi (75 views)
2014-09-10 13:57:51

TehJavaDev (108 views)
2014-09-10 06:39:09
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!