Hacker News new | past | comments | ask | show | jobs | submit login
Luck in Wesnoth: Rationale (2008) (wesnoth.org)
54 points by tosh 7 days ago | hide | past | favorite | 38 comments

I've played this game a bunch, mostly in the player-vs-computer mode. Maybe removing luck would work for player-vs-player mode, but against the computer it would just reduce the game to feeling like a puzzle. Planning contingencies and managing risk is the main skill the game tests, and what gives it the 'battle game' feeling.

There's an observation to be made in these game -- people wouldn't complain about the dice, if their plans didn't fall apart when they missed a roll. The problem is in the fragility of the plans.

Personally I prefer fudged dice (I forget the proper term) where expected damage is maintained, but low rolls and high rolls are dampened on repeats, to avoid low-chance sequences of misses/crits.

In fact, I’d go further to say it’s fundamentally correct — repeat bad/great swings of the sword is too rare to really account for, has no real basis in “reality” and is purely an artifact of the simplified simulation. Their occurrence adds no value to the strategy, by either arbitrarily trivializing or exploding risk as to be untenable.

It’s removal also eliminates the majority of the “unfairness” of the dice — 80% feels like 80%.

Fire Emblem feels "less random" because it is.

Most FE games roll two dice and average them together. Ex: its not a single-dice roll of 0 to 100%. So when it says 60% chance to hit in FE, they roll two dice and average it.

A 60% chance to hit (displayed) is instead 68% true-hit.

A 80% chance to hit (displayed) is instead 92% true-hit.

I was thinking more like LoL, which as I recall implements a dynamic crit system — as crits occur, your % chance of a crit drops (possibly below your stated %), and as crits fail, your % chance of a crit increases (possibly above).

Your effective value stays the same (by whatever algorithm deciding drop/raise rates), but the possibility of sequences reduces — because 1-1000 chance to kill near-instantly is fairly ridiculous, in a game where a single kill can decide a match.

Although the exact method must be more involved because what I’m describing could be trivially abused (you could actually execute on the gamblers fallacy — a miss-streak will likely be followed by a hit-streak)

Guidelines Tetris has a pretty fun one: the "Bag Randomizer" means that all 7 pieces come before they repeat. So all 7 Tetris pieces (named IJLSZTO) will always drop in equal proportions, but in random orders.

If you had say a 10% chance to crit, a "Bag randomizer" would have "0, 0, 0, 0, 0, 0, 0, 0, 0, crit", or some permutation there-of (ex: "0, 0, 0, crit, 0, 0, 0, 0, 0, 0).

This keeps the random property, but not "too random". Of course, throw more bags in as needed (ex: two bags would be two crit chances out of 20, leading to possibilities like "crit, crit, 0, 0, 0...", but then that'd create a drought of 18-non-crits afterwards).

Increasing the bag or decreasing the bags is the game designer's control over how random the process is. The more bags, the more it plays like true random.

Or really, two-bags would have the possibility of "0, 0, 0, ... crit, crit, (new bag), crit, crit, 0, 0, 0...", so a very rare chance of 4x crits in a row still. But that'd be far more rare than normal circumstances


> Although the exact method must be more involved because what I’m describing could be trivially abused (you could actually execute on the gamblers fallacy — a miss-streak will likely be followed by a hit-streak)

Just call it a "game mechanic" and now the players think the abuse is skill. Advanced Tetris players abuse the bag-randomizer to create BT Cannon perfect clear loops (https://www.youtube.com/watch?v=qmG0NcbrLTE). So yeah, its a skill.

That's why guidelines tetris players call themselves "Guideline Tetris" players, because we practice a very specific set of random-number generators to generate our tactics. These tactics don't work on "Grandmaster Tetris" (which has a different RNG algorithm), or "Classic Tetris" (for the Gameboy fans)

Is the "abuse" of the RNG fun? Is it a skill? Do the players respect the skill? Will the opponents say "that's cheap and unfair", or will the opponents say "Wow, he managed to keep track of the RNG bags and count things out during tight play. I should practice those skills more!".

This is basically the same mechanic as some card-draw / reshuffle board games. You draw until you hit the bottom of the deck, reshuffle, etc. It is definitely a valuable tool in a game designer's toolkit.

Also why DnD has different weps that roll 1d20 vs 2d10, 2d6 vs 3d4 etc. Some things are designed to be swingier with more crits but more critical failures, where others are designed for consistancy.

I think this is fine if you don't show an '80%' there. If you show it, it skews the player's perception of what 80% means. 80% is a 1-in-5 chance of failure. 80% chance of success should mean "I should have a solid backup plan here."

The problem is accounting for the 1-25, 1-125, 1-625 possibilities that are still legal, but you can’t meaningfully do anything about (and a 1-625 crit sequence trivializes any boss fight, and a 1-625 miss sequence makes a trivial enemy impossibly powerful). It really amounts to a 1-625 chance that combat just breaks down altogether.

Another alternative is you have so many rolls individual rolls don’t matter (e.g. mass combat), or you have such cheap restarts / difficulty that a 1-625 game breakage doesn’t matter (ADnD, roguelikes).

Tail risk is probably a the least interesting type of risk, unless the game is specifically designed for it (it runs long enough that encountering a tail risk is an expected proposition)

Hmm, IMO tail risks are the most interesting type of risk - just handling a certain amount of normal variance is uninteresting, it's the tails that are memorable and create stories.

Right, but the game needs to actually build with it in mind.

In a CRPG, death is basically an illegal operation — your only option is to save scum or reset the campaign (eg on TPK. On single death, you can probably resurrect), so the tail risk of instant-death is untenable.

In ADnD and roguelikes, death is a matter of course, so tail risk is a natural function of the game — and they offer various mitigation strategies (e.g. campaigns don’t require anything to actually be dealt with — ADnD just says you need to get gold, by any means necessary. Rogue says the same, but for the necklace. So tail risk is truly an opt-in). Boss fights are optional and rewarding, but not required, and often many exist, so trivializing one by a 1-625 crit sequence isn’t nearly as damaging as in, say, baldur’s gate.

In grand strategies, there’s enough rolls, and its not sufficiently damaging, that it’s just part of your day-to-day. The same is true of tail risk running a distributed cluster.

In risk, tail risk means a group of 5 can knock down your group of 30 — which voids any strategy whatsoever. There’s not mitigation path, and there’s not much alternative except to say “such is as the gods have deigned”, as they penetrate a key area with basically nothing. You could describe it like wesnoth “good strategy, bad luck”, or you could describe it as a bad mechanic (not to comment on wesnoth’s usage).

Ultimately, it depends on whether you actually have the tools to do something about it, or a design to convince the user accept it outright. But without either, you just have bullshit.

I believe most utilize a pseudo-random system to help smooth out the swinginess of true random.

Some even utilize a fixed long set of numbers so that it doesn't have to generate a random number every call.

I first encountered it in DotA. Similar to another comment about LoL, the longer you don't Crit the higher chance your next attack with Crit, and vice versa. Higher level players would intentionally "save" a Crit (look for a string of non-Crits while hitting mobs) to ensure high burst damage on heroes. https://liquipedia.net/dota2/Pseudo_Random_Distribution

Wesnoth has a scaling problem for its difficulty curve in general.

Because level 2 (and lvl3, lvl4) units are so much better than base units (especially since they only cost 20 gold to pull out...), you often times end up in a situation where the developers had either more units than you, or fewer units than you, at particular points of a campaign.

For long campaigns with like 20 levels, it leads to innate imbalances. If you managed to keep your units alive and coming back in all levels, you'll have a much easier job at the end than another player who lost a unit once or twice.


The fact of the matter is: an Orc Warrior with 50% night attack bonus with 10 damage per swing x 3 can one-shot your tier1, and even tier2 units.

Your typical land routes have 40% evade, meaning there's a 21% chance that the Orc Warrior hits with all attacks and deals 45 damage, more than enough to kill any tier 1, and most tier2 units. And you have nothing you can do about it.

Even if you mitigated this issue to the max: say with an Elvish Sorceress in a Treeline (70% evade), there's still a 2.7% chance she dies. There's no higher evade than 70% in the game, and Sorceresses / Archers (with 70% evade) have rather low HP to boot.

So you're ultimately relying upon luck to survive the night-attacks by Orcs.

Losing that Elvish Captain or Sorceress early in the campaign very well could lead into cascading failures, an inability to complete say the 9th chapter (when things get difficult).


Sure, there's a day/night cycle. But campaigns inevitably lead to night-only scenarios (ex: caves) where you have to just deal with Orc Warriors and their 20% chance to literally one-shot any unit of yours, with no way to reasonably beat back the night-bonus. (No forests exist inside of caves, so you have no opportunity to reach 70% evasion).


Orc Warriors are among the more "fair" units as well. I recall maps with "lancers", who are daytime units and level 2, but with 12x3 attack. Except... lancers deal double-damage to all units (and all units deal double damage to lancers).

So really, lancers are 24x3 on the charge, before the daytime "sun" bonus kicks that up to crazy numbers. With a crazy 10 movement, you can't even outrun these guys or hope to fight them at the night time. They have the highest movement in the game.

As such, your only plan is to send units in, and hope that they miss. If lancers get lucky, your units die and I guess you just restart the level. There's no strategy to it: your units have 6 movement, and lancers have 10. You just gotta run in there and hope for the best.


Strangely enough: I think luck in the PvP world is a bit more fair. I'm well accustomed to games of chance (Pokemon, Backgammon, Poker) in the competitive world. Furthermore: the PvP world in Wesnoth is mainly played with tier1 units (so no "luck factor" in determining if your tier2 units survive: because you simply don't have any tier2 units in battle). The games end up more fair. Maybe the enemy gets lucky and kills my tier1 elf fighter due to luck. Oh well, it was only 14 gold, and I can build another.

The campaign is where stupid lancers feel like you're just playing vs a slot machine however. A line of enemy lancers just isn't fun to go up against. There's no strategy involved in fighting vs it (and it also would never come up in a PvP setting, since Knights are often times a superior unit over lancers and are the preferred promotion path)

The Orc infantry line has big attacks and pays for it with high damage variance (and also a total lack of ranged attacks until T3, which can leave them quite vulnerable). The solution is to avoid fighting them full powered at night with your valuable units -- sacrifice some T1 units if you have to, hit the orc with a bunch of archers, slow them with a Shaman to reduce their damage.

Caves are particular challenges, and of course there's a map editor so somebody can just design a really poorly balanced campaign. But the Wose fairs not too bad in a cave because, well, they weren't really planning on evading anyway.

E: Regarding this lancer issue -- sounds like a bad map, but even the biggest attack can only kill one unit per turn. Set your T1's up to block your good units. Then, get revenge on your turn. Plus, as a bonus, Charge works both ways -- some of your T1's might get some big hits in or even some kills.

Orc Warriors aren't even the highest variance in the game though! That's just... typical Wesnoth. Really, Orc Warriors don't have much more variance than Elvish Heroes.

When we start talking Horsemen, Lancers, Thunderguards, Ulfserkers, Griffons, Wraiths... these are the real "high variance" units of Wesnoth. (Wraiths have self-healing on their hits. So its very "sharp" when they hit. If they "get lucky", a Wraith may be at full health after killing 3 units, because they self-healed). EDIT: Oh yeah, and Trolls too have way more variance.

That's the thing: the default level of variance in Wesnoth is really damn high. Far more variance in this game than pretty much everything else I've ever played. And when we get into the lol "variance as a strategy units" (aka: lancers/wraiths), its pretty much like playing against a slot machine.

> The solution is to avoid fighting them full powered at night with your valuable units -- sacrifice some T1 units if you have to, hit the orc with a bunch of archers, slow them with a Shaman to reduce their damage.

2x attacks from the Shaman is pretty low accuracy. Assuming your typical 40% evade chance, there's a 16% chance that your shaman misses both slow-attacks. If the Orc is standing on its advantaged hill or mountain terrain, you're basically screwed (slow probably will miss more often than hit).

No T1 unit has a chance of killing an Orc Warrior. None at all. Slow is probably your best bet (-50% damage), but its really not that reliable of a strategy.

Well, it is possible that this just isn't the game for you.

I don't really think it is an issue that there aren't any T1 units that can easily beat this T2 one. Depending on where in the campaign you are, a T2 unit might be a set-piece encounter that you have to spend multiple turns wearing down. Of course the map designer can do a bad job and throw too much at you, but that's the cost of having mostly community designed maps I guess.

I enjoy the game.

But I also think that reducing the variance significantly would help the game severely. I fully disagree with the forum post here.

There's room for luck in strategy games. But I'm not sure if some units (see the Lancer) have a role in this game aside from forcing the player to hit the "restart from last save" button over and over. When the luck-engine is unavoidable (due to high movement), you simply can't "plan" around it. Your best plan is the restart from save button if you get unlucky.

A good game shouldn't have situations like that, where the best strategy is just hoping for the best and rolling with the luck.

I haven't encountered too many Lancers lately, although I guess it could just be a campaign design issue. I've mostly been playing the World Conquest map lately, maybe they just avoid them because of this. It is a difficult campaign -- I haven't managed to beat it yet -- but I dunno. I enjoy rogue-likes and rolling with the punches, so if a run gets impacted by RNG it doesn't really bug me too much.

> E: Regarding this lancer issue -- sounds like a bad map, but even the biggest attack can only kill one unit per turn. Set your T1's up to block your good units. Then, get revenge on your turn. Plus, as a bonus, Charge works both ways -- some of your T1's might get some big hits in or even some kills.

No. One unit can kill one unit per turn.

One good lancer charge means my Elvish Champion (Tier3 highest HP infantry for the Elves) is dead, and the backline is now exposed. That is a cascading failure where my line is fully eaten up and I lose. When I place a unit in 60% evasion with 70+ HP (very high in Wesnoth), I'm doing so because I need the line to hold in that location.

What's the chance that the lancer is in range? Well, 100%. Lancers have the highest movement in the game.

Champions highest evasion is 60% in the forests. Cool, I put him there. Well, woops. The lancer hit three times (6% chance of happening). Champion is dead. That's not even that low of a chance.

This is why you create lines using the zone of control feature to stop units killing your champion.

Then when it's your turn. Move in a way that you can attack with your champions without leaving them exposed.

If a 70 HP champion (which you spawned for 20 gold) cannot hold the zone of control, why do you think a 33 HP Elvish Fighter can hold that zone of control for 14 gold?



The fact of the matter is: you have to put the Champion in risk. Its the best unit to do so, from any reasonable gold analysis into the scenario.

Any scenario where you're talking "multiple Tier 1 units holding the line" is simply less gold efficient than the use of a retained Tier3 Champion.

There are T2 units (ie: the Lancer) who can one-shot your champion. That's just how the game is played. You recognize the risk, you put the Champion into 60% evasion zones and hope for the best. If you need to "sac" a unit, the Champion with 70 HP is the best unit, because it survives most hits, and then your Druids heal them next turn.

A 33 HP Fighter will simply fold and die. They can't hold a line in any late stage Wesnoth campaign.

In the campaign you are expected to maintain a conveyour of promotion where you will hire some t1s, move t1s to t2s and t2s to t3s in every scenario but the last.

Playing with a select few of t2+t3 units is fragile and not very economical since they're expensive in upkeep. Sure you can recall their lot but then you run out of money quickly.

Loyal units are aplenty and don't have any upkeep costs.

The main campaign absolutely encourages you to abuse your loyal units and promote them to tier3 or tier4. Losing a loyal unit is devastating however, because you pretty much only get one of each type ever (except the mermen: IIRC you get like 6 loyal mermen in the default campaign).

I remember playing Northern Rebirth just yet, I think I had a few loyal dwarves but that's all. Of course you also have a core band of units which come up in every scenario. They are often irreplenishable, such as there's being only one wizard in the whole campaign.

You need to be extra careful to keep loyal/special units from harm, and for the most important ones it's an explicit scenario requirement. And that means regular career units doing the heavy lifting.

Loyal units need experience too.

Experience is only offered upon killing units, or in battles. Either way, it means moving a Loyal unit to the frontlines to "feed" them experience.

The risk is inevitable. If the loyal unit misses, and you have a bad turn (Ex: Elf Shaman missed the slow attempt), then you just hope the AI also has a bad turn on the counter-attack. If anything, you need to do this earlier rather than later (so that your Loyal units reach Tier3 or Tier4 at a faster rate, so you really take advantage of the Loyalty bonus).

Your slow will eventually miss. Wraiths and other undead will "luckily" self-heal themselves to max HP. Orc Warriors (A common Tier2 Orc) will "luckily" one-shot your (lower-HP) Tier2 units, and royally mess up your line. Your opponent will get breakthroughs as a result, and your loyal units will die. Even if you optimized your unit placement on the highest evasion tiles (70%), with the highest HP values with the maximum support across the line (ie: positioned in such a way that only 2 units can ever attack one unit), these events will happen.

Whether you choose to restart-from-last-save at this point is up to you, but the next chapter will only be more difficult.

Luck is part of Wesnoth. Period. I can complain about it, but the devs have made it clear that this is exactly how they want the game to be.

Great analysis.

I used to play a fair bit, and ultimately gave up due to the chained-campaigns, where if you "succeed" early, but not with enough high level units, you end up losing 8 missions later, leading to many hours of backtracking save files to consider when the last "good enough" point was.

Combined with some missions that just seem focused on taking out my army, it was frustrating to never know if you are actually progressing or not.

That said, my playing was about 2010 or so, I do not know if such issues have been addressed since.

orc warriors are t2 and won't oneshot ever it's own t2 equivalent elvish hero, sure, line infantry will kill lot of t1 specialists, but that's expected: wesnoth has a lot of attrition by design, as it's a necessity, because just piling units leads to long, boring turns

anyway, elves have piles of slow, which is the natural counter to high damage low attack units.

Elvish Hero is the highest HP Tier2 unit of the elves.

If you go down the list: Orc Warrior has a high chance of killing Elvish Marksman, Elvish Ranger, Elvish Sorceress, and other incredibly valuable units. And remember: this is a hex-grid system. That means every unit in a line will fight against 2-units per opponent's turn.

The Orc Warrior by itself already has a high chance (~20% chance) of killing T2 units under typical circumstances (equal flat terrain at night: advantage to Orcs for sure but its not that uncommon a situation). If you're dealing with two of them, that's pretty much GGs. You're basically hoping for misses.

And that's optimal placement: you can't get any "better" than 2-units fighting vs your frontline units. With bad positioning, you might have 3-enemies or 4-enemies fight a unit (especially if those enemies have Zone-of-Control immunity, like Fencers)

This is why I like games with an execution element as well as a decision-making element. If the execution is challenging, you get dynamism and unpredictability for free, without taking anything out of the player's hands.

People do seem to detest the concept of random number generators in games. They feel like the "luck" is completely out of their control.

Yet if you give a player a set of dice to give them perceived control over the random number generator, they are much more happy.

Dungeons and Dragons and other dice-based RPGs are a great example. If they roll a 20, they are overjoyed with the results and feel incredibly lucky. If they roll a 1 they are sad or mad, but chalk it up to bad luck.

But if it's a random number generator that they have no control over, they feel it's "random" and there is no luck. And they blame the random number generator for bad results. Even if it's just the same as using dice, without the physical interaction.

I've always thought that even if you just let the player click a button to activate the random number generator, you give them a sense of control. Perhaps you let them hold the button down for a while just like how players rattle the dice for longer hoping for "luck" in the results.

> I've always thought that even if you just let the player click a button to activate the random number generator, you give them a sense of control. Perhaps you let them hold the button down for a while just like how players rattle the dice for longer hoping for "luck" in the results.

That's the whole concept of these slot machines in Las Vegas. For some reason it seems vital to have the player his "go".

You could make a spinning color-wheel circle that the player places their mouse into whose x & y coordinates on click are multiplied by the hex value of the color that happens to be under the mouse pointer on click to generate the seed for the random number generator or you could just make a button that says, "Click here when you feel lucky". No one would be able to tell the difference.

Oh totally. It's all theater really. Random number generators wrapped up in theater and superstition.

That said, you can't ignore it since it's about perception not fact usually.

And at the same time, sometimes the "it's so random!" complaints are real. I remember finding a bug in Valve's shot pattern code based on players complaining about how our FPS shots were "off". It should have done a concentrated shot pattern, with more shots in the center of the aiming circle than the edges. But it wasn't, and ended up being a total random distribution. Changing it to have a greater weighted chance in the middle greatly improved the "feel" of the guns.

Even then when firing a real gun, nobody ever complains about "random number generators" when they don't hit their target. That's because they really feel like their ability to aim and hold a target in the sites is a critical part of the process of obtaining accurate results.

Again like dice, a situation where the participant feels like they can actually influence the outcome - and in the case of a real gun, they actually can.

I love analyzing game mechanics. I haven’t played Wesnoth, but other games that handle luck well are Darkest Dungeon and Faster Than Light. The article makes a good point about how a lot of the challenge is in distinguishing bad luck + good strategy vs normal luck + bad strategy

Yeah, I feel that. Some weeks ago, I was playing Battle Brothers and I lost a game because I failed three 80% checks in a row. It was incredible bad luck, but the decision to "all in" in these three checks was mine. Maybe I could've found a strategy that wouldn't ruin me in case a check fails, regardless of how high its probability is.

I adore this game, big nostalgia trip for me, and the luck system is what makes it great. Really feels like a D&D campaign.

Someone I play with got really frustrated at getting perpetually bad rolls in Settlers of Catan, to the point of no longer wanting to play. So I wrote down two copies of all possible rolls (such that they end up weighted appropriately) on small pieces of paper, and we cycle through them all. For that game, at least, it feels much better and feels more "fair". (It does add an element of "card" counting, but none of us are serious enough to pay that much attention. At most, we remember whether the 2 or 12 has come up yet.)

There's an interesting "mod" for games involving die rolls where you replace each dice with a set of numbers that the player can just pick, with the limitation that each "die" must use each number once before reusing any.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact