I'm writing this wiki article to talk about some things that came up as I was balancing a couple of the scenarios in the South Guard Campaign. I'm going to respond to something that PDF wrote but that I think is a pretty common idea. I don't mean to single him out:
The PDF wrote:
"Adding a difficulty level does not necessarily requires much balancing; you can, for example, just add or remove gold."
I'm going to argue that that is fundamentally a flawed way to balance campaigns, and should only be used in conjunction with other balancing methods.
1. A Wesnoth scenario as a tactical problem
Each scenario in Wesnoth presents a tactical problem. The problem is generally phrased something like this: "Kill the enemy leader in so much time while keeping your leader alive," and its most common variation being: "Move your leader to this hex in said amount time with out letting him die." Of course, there are subtleties to these tactical problems. Because of the bonus gold at the end you want to finish in less then the stated time. And since you can recall experienced units for harder scenarios you may not want your vetrans to die, and of course there might be other units that you have or want to keep alive. There may also be certain units you must kill in order to succeed. At its core however, each scenario is a relatively simple tactical problem.
2. Factors that influence the difficulty of a tactical problem in Wesnoth
I am going to briefly list the factors (that I perceive) which affect the difficulty of a tactical problem in Wesnoth. This list is probably not exhaustive, so if there's something I've missed, post it and I'll add it to the list. They are in no particular order:
a) Terrain b) Player's starting gold c) AI's starting gold d) Player's recriutment list e) AI's recriutment list f) Player's recall list g) Time limitations h) Size of player's keep i) Size of AI's keep j) AI Parameters (more on this in a minute) k) Distribution of villages l) Unexpected reinforcements m) Time of day
Note that the AI's starting gold is one factor among many.
3. Varying the difficulty of a tactical problem presented to the player in a scenario
Considering the above factors, it is easy (if time consuming for the designer) to present tactical problems of differing difficulty in a single scenario. For most of the above factors, I'll give and example and explain in a sentence how if affects the tactical problem:
a) If the map is predominantly a terrain that favors either the player's forces or the ai's forces, it will have a huge effect on the difficulty of the battle. For example, a player whose units are broadly loyalists will have a disasterous time trying to root Elves out of woods. The terrain is, however, generally fixed by the nature of the scenario (i.e. the designer can't really make a whole new map for each difficulty level). I would submit, however, that 80% of the actual fighting in a typical scenario occurs in less than 10% of the hexes. It is possible to change only one or two hexes and have a dramatic effect on the outcome of the battle if you can identify those "chokepoint" hexes.
This can either be done my having three different maps (which I suspect is more work) or by using the WML tag [terrain]. For example, the code:
#ifdef EASY [terrain] x=4 y=5 letter=Ce [/terrain] #endif
will turn the hex at (4,5) into an encampment.
b) If the player has a lot of gold he can make more tactical mistakes because he can recruit more troops to replace the ones he's lost. Additionally, quantity has a quality all of its own, so if the player's starting gold is much higher that the AI's starting gold he can employ a swarm of cheap units. Note that this does not simplify the tactical problem, it only allows more mistakes to be made.
c) If the AI's starting gold is much higher than the players, the player will be unable to make any tactical mistakes and still win the scenario. I'll talk more about this in a moment.
d) If the player can only recruit units that will be effective against the enemy's forces, then the tactical problem is simplified. If I can only recruit heavy infantry to face a force of skeleton archers, then I have a less difficult tactical decision to make than if I can recruit heavy infantry and spearmen. Especially if I don't know the game well.
e) Restricting the enemy to a certain class of units (i.e. melee-only, ranged-only, impact-attacks-only) can simplify the tactical problem immensely. Consider an enemy who can only recruit thieves and thugs facing a predominantly loyalist force, who can recruit Bowmen and Spearmen. Bowmen are very good against thugs and thieves because they have a strong ranged attack. If the enemy can also recruit poachers and footpads, the tactical problem becomes more difficult because the player must balance the effectiveness of the Bowmen against the thieves and thugs with their (relative) weakness against footpads and poachers.
g) The turn limit controls to what extent the player is allowed to waste turns not directly accomplishing his mission. In the most difficult case scenario, a player must move his leader across the map and only enough turns are allotted such that if he ever moves in any other direction, time will run out. Elongating the turn limit allows an inexperienced player to turn-costing make mistakes and still be victorious.
h&i) The size of a player's keep determines at what rate he can recruit troops. The size of the enemy's keep determines at what rate he can recruit troops. Divide one by the other and you get a relative-recruitment-rate (assuming both have lots of gold). If the relative recruitment rate favors the player, the tactical problem should be easier because he can replenish losses more easily than the AI player. If the AI player's keep is larger, then any losses by the human player will be that much more difficult to replace.
j) The AI parameters are perhaps the best way to alter a tactical problem. AiWML is a particularly important read for a scenario designer. I'd draw attention to aggression and [target] in particular. attack_depth is also very nice. These parameters are especially important for building scenarios with tactical problems that are fundamentally different from the basic kill-his-leader ones.
k) Using the [terrain] WML tag you can easily alter the distribution of villages in a scenario. Move the distribution towards the player, and things get easier. Move it towards the enemy, and they get harder.
l) Enemy reinforcements complicate the tactical problem. They are a surprise that you have to figure out how to deal with after you've deployed your troops. (Which should be possible so the player doesn't just re-play the scenario with knowledge of the reinforcements.)
m) Time of day is an interesting factor. While you are normally not free to change the cycle, changing when the cycle starts can be a significant influence, timing when (by ToD) the battle begins. On a large or open battlefield, the player has more control over that, depending on their skill.