Balancing units' abilities

Brainstorm ideas of possible additions to the game. Read this before posting!

Moderators: Forum Moderators, Developers

Forum rules
Before posting a new idea, you must read the following:
Glowing Fish
Posts: 855
Joined: October 3rd, 2004, 4:52 am
Location: Portland, OR
Contact:

Balancing units' abilities

As many people in the forums have mentioned before, some units in Wesnoth seem to be overpowered. I seem to have this feeling too, so I started trying to think it out systematically.

This here, is just a simple brief system I worked out to try to figure out how units should be balanced.

One of my axioms (I don't know if this is something the designers put in on purpose, but it seems like it would be a design principle, and the game bears it out) is that, theoretically, given a map with a mixture of terrain, any given factions Level 1 units should be roughly equivalent to another factions Level 1 units. On a map of mixed terrain, a group of elvish first level units will probably fare pretty well against a group of orcish first level units.

I tried to systemize it into pros and cons: An elvish fighter has average hit points, but has a good melee and ranged attack, as well as having great defense in the forest. It basically has a score of "2" then. The orcish grunt has higher hit points, a somewhat more powerful attack (9-2 vs 4-5), but no ranged attack. The elvish fighter is almost two gold more expensive, so the units come out roughly balanced.

After thinking about the units for a while, I realized it would be pretty easy to define them all in terms of pro and con, although the exact mathematics of it (if it could even be summed up mathematically) would be quite hard.

For example, the pros a unit can have are, magical, skirmisher, healer, high defense, high resistance, good melee attack, good ranged attack, backstab, flying ,regenerating, ambush, etc. The negatives are low resistance, low hitpoints, no ranged attack, no melee attack, and slow movement.

All of this should be obvious. The question is, is there any good way to determine which one of these is more valuable than the others? For example, a Saurian Tribalist has skirmish, heals and a magical attack, but low hit points? How does this compare with the Wose, which has ambushes, high hit points, regenerates but is slow and doesn't regenerate? There is three good characteristics and one bad one for the Tribalist, while there are three good and two bad for the Wose.

Another issue is that some advantages are much more favorable for the AI. Regenerating units are much more important for the AI, that can't figure out how to use the Halo effect of healers, and doesn't cycle its units as well as a human player might.

I am not at all suggesting this as a "rule", or suggesting someone should try to discover a magical formula for determing the "True" worth of units. But it might be able to detect rather glaring discrepancies in units. For example, vampire bats are a Level 0 unit with no upkeep, flying, and a special attack, and with low hit points. This is quite a distorted profile for a Level 0 unit to have, IMO.

SaintDust
Posts: 310
Joined: May 12th, 2004, 2:49 pm

i think pricing a unit shows its strength.
but when i think of gryphons i rething that.

they should come up with a pricing table.

for instances.

for every hp **.1 gold**
special ability **2 gold**
low exp **2 gold**
high exp **1 gold**
each attack type 2 gold mellee or ranged)
for each attack count **.5 gold**
move 1-4 **1gold**
move 5-6 **2 gold**
move 6 or up **3 gold**

this is just a rough idea of what im talking about..

Glowing Fish
Posts: 855
Joined: October 3rd, 2004, 4:52 am
Location: Portland, OR
Contact:
The thing is, the units abilities are cumulative, but exponential. A unit that could move 10 squares a turn, skirmish, and poison would be worth much more than the sum of its abilities.

Circon
Posts: 1200
Joined: November 17th, 2003, 4:26 am
Location: Right behind Gwiti, coding
This was posted some time ago. Use the Search function. The exponentiality and resistances/defense/movement tables made people give up.

autolycus
Posts: 481
Joined: July 5th, 2004, 2:58 am
Location: 1Ã‚Âº16'N, 103Ã‚Âº51'E
Contact:
I don't think that multiple abilities necessarily give exponential increase in value. It depends on how many can be deployed at once, and over what area.

For example, suppose you had a unit that was 48 hp and 16-2 to attack, and two similar units except that they were half price and 24 hp. The 24 hp units would be worth more because they are more able to obstruct the enemy, occupy villages and scout terrain, simply because there are two of them.

This is why a single expensive unit with everything is probably worth less than the equivalent in other units with those abilities, but not all of them at once. The only real bonus such a single unit gives is flexibility of use - compared to other units, it has more uses.

That's why it is possible to assign a cost to a unit, but at the same time realise that this is the 'mean' cost - the likely value of the unit after considering all the possible terrains and opponents it has to negotiate. Gold still provides a good way to tweak things - if all MP gamers decide the unit is too expensive, it probably is. Subtract 2 gold and try again. And so on.
as kingfishers catch fire
so dragonflies draw flame
-GMH

fmunoz
Founding Artist
Posts: 1469
Joined: August 17th, 2003, 10:04 am
Location: Spain
Contact:
[Old_math_geek_mode]
You can use some kind of Multivariate Analisys of Variance (MANOVA) to find the theorical value of each stat and after that check wha units have stats or abilities with an bigger or smaller value than spected.
[/Old_math_geek_mode]

Darth Fool
Retired Developer
Posts: 2633
Joined: March 22nd, 2004, 11:22 pm
The "simplest" method is to have a multiplayer era where all level 1 units are purchasable and then have the server record what units get recruited. Units that have a high number of recruits probably need to be made more expensive, whereas units with a low number of recruits should probably be made cheaper.

ott
Inactive Developer
Posts: 838
Joined: September 28th, 2004, 10:20 am
If you want to use server side stats, you need to take into account cost of the units. Instead of number of units recruited, rather use the amount of gold spent on a given type of unit: someone recruiting 200 Walking Corpses at 5gp each does not necessarily mean they should be made more expensive compared to, say, someone recruiting 20 Paladins at 60gp each. However, if only 10 Paladins are recruited at 90gp each, then relative to Walking Corpses, Paladins may be too expensive.

This is all assuming that the results are reasonably balanced. If the 10 Paladins dominate the 200 Walking Corpses but the undead players keep hiring them, then all bets are off.

Hmm -- this sounds like a market economy...

autolycus
Posts: 481
Joined: July 5th, 2004, 2:58 am
Location: 1Ã‚Âº16'N, 103Ã‚Âº51'E
Contact:
Wonky statistics may also be the result of lazy players or of biased players - they might just like hiring huge hordes of undead because it is cool, not because it is necessary.
as kingfishers catch fire
so dragonflies draw flame
-GMH

Circon
Posts: 1200
Joined: November 17th, 2003, 4:26 am
Location: Right behind Gwiti, coding
And counter-recruitment, where A recruits horses and B recruits spears/lizards/etc.

Darth Fool
Retired Developer
Posts: 2633
Joined: March 22nd, 2004, 11:22 pm
autolycus wrote:Wonky statistics may also be the result of lazy players or of biased players - they might just like hiring huge hordes of undead because it is cool, not because it is necessary.
Fair enough, but you could keep track of the statistics of the winning vs losing sides...

autolycus
Posts: 481
Joined: July 5th, 2004, 2:58 am
Location: 1Ã‚Âº16'N, 103Ã‚Âº51'E
Contact:
That's true, and you would then have records which would show that certain factions are better against others given certain maps - which is what we know more or less already.

This variability in value of the units in each faction is dependent on map conditions and opponent type. So the first thing would be to find some sort of average value. The second thing to do would be to allow the map coding to modify that value if necessary.

For example, supposing you create a map that is all shallow water and you stipulate that one faction is Loyalists. Then a player who chooses merfolk will probably win. This is fine, and natural. However, the map designer might say, "Hey, I want it to be more of a challenge for merfolk players." He could then increase the global cost for merfolk units. The map information would show this: "Merfolk units are at 120% of typical cost" or something like that.
as kingfishers catch fire
so dragonflies draw flame
-GMH