Simulating Conflict

This is the companion thread to Simulating Duel of Wits thread, but for Mouse Guard Conflict.

  1. What am I trying to do? Learn which scripting strategies are the best, with the ultimate aim of providing rules of thumb that humans can use.

  2. What do I mean by “best”? The scripting strategies that win with the smallest compromise given to the enemy, or lose while exacting the heaviest toll on the enemy.

Specifically, I’m judging scripts on the basis of their ‘compromise score’. A compromise score of 1.0 for a given fight means you won without losing any dispo, while a score of -1.0 means you lost without inflicting any damage. A score of 0.0 means a tie (both sides were reduced to zero, or more rarely, the fight went crazy long and was canned).

Over many fights, I look for the highest average compromise score.

  1. What have I simulated?

I don’t have complete rules for mouse guard built. What I do have is:

[li]Attack, Defend, Feint and Maneuver* work correctly[/li][li]All fights are one-on-one[/li][li]A given player has the same skill rating for every action[/li][li]There are no weapons (*So Maneuver never uses its Disarm effect)[/li][/ul]

The choice of action is deferred to various scripting strategy. I run ‘cage matches’ (where every strategy fights every other, as well as itself), usually with hundreds or thousands of fights per pairing.

The strategies I have in play so far are:

AAA - Always Attack!
DDD - Always Defend!

AAF, AAM, DDA, DDM - Action-mix strategies. Always script the actions as shown, but in a shuffled order. AAM for example could script Maneuver/Attack/Attack - or Attack/Maneuver/Attack, etc.

Turtle - courtesy of Countercheck. It scripts AAA, but when its dispo gets low, it mixes in Defends according to a simple formula.

TurtleHammer - an evolution of Turtle. If it has skill parity or disadvantage, it always scripts AAA. If it has an advantage, then it will mix in Defends accourding to the same formula as Turtle. The remainder of its actions will be Attack, unless the enemy has a huge incentive to Defend (a low remaining dispo in proportion to their skill), in which case it fill up the volley with a 50/50 mix of Feint and Attacks. The actions are played in a shuffled order.

SunMouseTzu is an earlier attempt at a TurtleHammer-like strategy from Countercheck, and so isn’t as evolved.

Simon - Simon works out every pair of actions for a given volley, and work out the expected net dispo change using capped binomial distributions. (e.g. if you’re short 2 dispo, but you Defend with 4D and the enemy attacks with 3D, what will happen to your dispo, on average?) This is very clever! It then does something apparently very dumb, which is assumes that you have an equal probability of scripting all four actions, averages the outcomes, and picks the action that looks best. It assumes its opponent does the same. (Simon is an idiot savant, occasionally scripting Defend even when it thinks your best option is Feint.)

Simon then works out the expected change in dispos as a result of these best choices. It then works out what to script for volley 2 using this new, hypothetical situation as the basis.

Nash - a refinement of Simon. It does the same calculations, but instead of assuming that you have equal preference for all actions, it reacts to what it thinks your best action is. It assumes you know this, however, and that you will pick on the basis of what it will pick. This process is repeated a random number of times. Sometimes the pattern stabilizes (usually on Attack/Attack), and other times, there’s a rock paper scissors effect and it chases itself around the mulberry bush.

Some Findings

Attack/Attack/Attack vs. Defend/Defend/Defend

At Luke’s request, I had a look at AAA vs. DDD. Defend all but neutralizes Attack, and unlike DoW’s Avoid, you can regain your lost dispo. You can never win by Defending, however, so a win by the Attacker is assured, but it can take eons unless the Attacker has a big skill advantage.

A 1D advantage in favor of the attacker strings the battle out until an average of volley 17. Tied competitors will take 44 volleys, on average, and this is assuming the fights are cancelled after 120 volleys. AAA vs. DDD sucks. :slight_smile:

Big Cage Match

In a big cage match of 242,000 fights, the following rankings prevail:

Strategy Avg. Compromise
Simon 0.18
AAA 0.15
TurtleHammer 0.15
Turtle 0.15
SunMouseTzu 0.15
AAM 0.10
AAF 0.08
Nash 0.08
DDA -0.04
DDD -0.49
DDM -0.50

SunTzu, Attack/Attack/Attack, TurtleHammer and Turtle are all tied. Simon comes out slightly ahead of the pack.

AAM, AAF, and Nash (which performed much worse than I expected) are decidedly in the second tier.

DDA treads water for a while, but the other defend-heavy scripts are annihilated.

But there’s a curious effect here, scripts only score points against one another, so the particular mix of scripts can make the others look good or bad. DDD, for example, didn’t look this decidedly bad against AAA, but against scripts that bring in a few Feints, it gets eaten alive.

Simon’s Not All That

As I successively removed the worst scripts from the mix, something became clear: Simon looks awesome because he does unusually well against the Defend-heavy scripts. Once those are out of the mix, he falls from the lead position, and quickly drops to fifth place of the best five.

The others follow Simon, one by one, until only two remain: Attack/Attack/Attack and TurtleHammer.

Best of the Best

In a trial of 50,000 fights, AAA and TurtleHammer is an extremely close race. TurtleHammer defaults to AAA when he doesn’t have a skill advantage, so this isn’t that surprising - they’re the same script. TurtleHammer’s special clauses take effect


So, so far, if you care about compromise, and you expect your opponent to script optimally, Attack/Attack/Attack is the best advice I have to offer. :frowning:

If you modify your script to give a matrix of results instead, like “Simon versus Turtle: avg compromise 0.5. Simon versus TurtleHammer: avg compromise 0.49.” or whatever, then you can feed the results into e.g. to find out which scripts would be voted best by legit voting algorithms.

For example, if you ran 6 trials, 2 each for each pairing of Simon, Turtle, and TurtleHammer, and the results were
Simon vs Turtle: 0.5
Simon vs Turtle: 0.2
Simon vs TurtleHammer: 0.4
Simon vs TurtleHammer: -0.1
Turtle vs TurtleHammer: -0.3
Turtle vs TurtleHammer: -0.2

Then you could enter the following in the calculator:

and check a bunch of boxes and click calculate and get winners.

Very cool, I’ll look into that. The output actually looks more like this:

Contender A	Contender B	A Skill	B Skill	A Dispo	B Dispo	Win Ratio	Win-Loss Ratio	Avg. Dispo Remaining	Win Avg. Dispo Remaining	Avg. Net Dispo	Total Dispo Remaining	Skill Adv.	Dispo Adv.	Compromise	Fights	Turns
SunMouseTzu	AAA	5	3	7	4	0.9732	0.957	3.985	4.094739005343198	3.9646	0.5641857142857157	2	3	0.5641857142857157	5000	2.0662
SunMouseTzu	AAA	5	5	7	7	0.3002	-0.0962	0.624	2.078614257161892	-0.1814	-0.02591428571428579	0	0	-0.02591428571428579	5000	2.8718

…and I use an Excel pivot table to summarize it.

Converting compromise to ballots had a weird effect, and it tried to tell me that AAF won. (I may have done something incorrectly.)

When I ran it without using compromise levels as ballots, it tells me TurtleHammer wins, which is a bit more convincing.

Why didn’t you put this in a MG forum?

Want to PM me a results set so I can try to replicate the weird AAF effect?

Partly to net more eyes, since I figured the chance of netting an idle passer by with time to contribute a script or an opinion was higher here. Ds&Ds not being MG was a flimsy rationalization in my mind.

My thinking at the moment is that weapons are instrumental in pulling the optimal script away from AAA. Bows, shields, and hooks & line provide huge incentives to Defend and Maneuver.

Maneuver is also a fairly badass action that usually blocks Attack and sets up a dice advantage for you/dice disadvantage for you opponent on the next action.

Okay, I did an interesting calculation last night - when is it worth maneuvering?

Naively, maneuver looked kinda underpowered - using a 2D advantage to generate one extra success to dock my enemy a single die next volley, which saves me from half a point of dispo damage. But a) maneuver is versus against Attack, so a failure isn’t totally wasted, and b) the thing that matters is damage ratio, not absolute damage.

After farting around with some algebra, I decided to instead do a direct calculation:

Against someone who has scripted Attack/Attack, how much better is it for me if I Maneuver/Attack rather than Attack/Attack?

(The enemy scripting Attack/Attack seems reasonable, since AAA is such a solid strategy. MA is not nearly as good if your enemy might Feint.)

This chart shows how much better it is to script MA than AA. The value in the chart is the ( ( My MA Damage / Your AA Damage) / (My AA Damage / Your AA Damage) ). In other words, it shows what to multiply my damage ratio by if I were to switch from AA to MA.

Enemy Skill
My Skill 3D 4D 5D 6D 7D
3D 0.87 0.77 0.71 0.66 0.64
4D 1.03 0.89 0.80 0.74 0.70
5D 1.17 1.00 0.89 0.82 0.76
6D 1.29 1.11 0.99 0.90 0.83
7D 1.39 1.20 1.08 0.98 0.91
8D 1.47 1.28 1.15 1.05 0.98

For example, let’s say I have 5D skill and you have 3D skill. If we both Attack all the time, I’m going to be doing damage faster than you, so I’ll have a damage ratio higher than 1.0. Call that ratio ‘r’. (r is actually 2.5/1.5 or 1.666)

But how much better would I do if I scripted MA instead of AA? Looking at the chart, the answer is 1.17 times better. That would bring my damage ratio up to 1.95. (2.5/1.5 x 1.17 = 1.95).

It seems to be a good idea to mix in Maneuvers when you have more than 5/4 as many dice as the other guy, basically.

Thanks Michael. Seems like Maneuver vs. Attack is a good time to bring in a die from a Trait or Tap Nature.

Yes, I agree.

I implemented Manny - he takes the calculation I put in the table above, and uses it to decide whether to script AAA, MAA or AMA. I also added Silkworm, which is an attempt to take what’s good about TurtleHammer and combine with the simple 5/4 heuristic for using the ‘MA’ pattern.

The results are as follows:

Strategy Avg. Compromise Avg. Volleys
Manny 3.7% 3.10
Silkworm 3.3% 2.97
AAA 3.0% 2.80
TurtleHammer 2.9% 2.81
Turtle 2.8% 2.81
SunMouseTzu 2.0% 2.87
Simon 1.1% 2.82
AAM -0.5% 3.63
Nash -1.9% 5.22
AAF -16.3% 2.90
Grand Total 0.0% 3.19

They’re slightly disappointing. Manny and Silkworm do indeed rise to the top of the pack, but by the barest margins imaginable, so tiny that you will never notice them in play.

(Notice that Simon has fallen in the rankings as I pulled the crappy Defend-heavy scripts out of the mix.)

At this point, I’m back to recommending AAA as an all purpose script. If you want more variety, use Silkworm, which works like this:

[li]Lay down two Attacks.[/li][li]If you have 5/4+ of your opponent’s skill, lay down a Maneuver.[/li][li]If you have lost more dispo than your skill, and you outskill your enemy, lay down a Defend.[/li][li]If you have fewer than 3 actions lain down so far, lay down another Attack.[/li][li]Shuffle your actions and script the first 3.[/li][/ol]

Once every six fights or so, the action will end a volley sooner, and once every 33 fights or so, you’ll be a point of dispo ahead of where you would have been otherwise. :slight_smile:

The main driver of diversity in action choices, I reckon, has got to be skill differences (and weapons).

Weapons will definitely help shift things, as they provide dice only to certain things—but are also known quantities for the enemy to take advantage of; I know you have an advantage to Maneuver, so I can anticipate you doing that.

In play, as Thor mentions, there is also going to be the moments when you manage to line up nicely against someone and you unload what you can to get more dice. Maneuver against an Attack, when you manage to get a Feint in at the right moment, or when you catch a Feint against an Attack. At those moments—especially the last two—you are more likely to blow your opponent out of the water by pouring in your resources.

All said, though, A/A/A never leaves you vulnerable to being on the wrong end of that, so if you get a weapon that helps with attack you can hammer away with impunity.

So AAA IS the best strategy despite all the talk about how it isn’t ?

AAA is nearly the best strategy if you have the same effective skill with every action, and it has the advantage of Other strategies seem to be a good idea under special circumstances, though they’re slightly riskier, and the margins seem slim.

On the other hand, uneven skills are common, and the differences can be significant. A bow-armed mouse with Fighter 4 and Nature 6 has an effective Attack of 4D and a maneuver of 8D, which is a massive difference. I haven’t done enough looking into this type of situation.

Weapons and disarm really shift the numbers around.

The value of weapons depends on the number of participants in a conflict. Anything other than a multiple of 3 is at a disadvantage due to it becoming trivial for the opposition to predict the order of fighters (due to the ordering constraint where once mouse cannot script back to back if there are any other mice)*.

Obviously at P mod 3 = 1 the opposition has a 100% chance of determining order. At P mod 3 = 2, the opposition has a 50% chance of guessing right at the start of the first round, and 100% of guessing right at the start of the second onward.

At P mod 3 = 0 the opposition has a 16% on the first round, 25% on the second and subsequent rounds†.

If you can accurately predict your opponents ordering, you can negate the advantage of weapons (as The_Tim says, they become a known quantity). I think it drastically changes how conflicts are scripted. For instance, if you have one mouse who is a super Defender (shield, high skill) and two strong attackers, some permutation of {A,A,D} becomes a very powerful strategy if you can slip the defend in. If you only have two mice, the super defender strategy becomes untenable due to feints.

*This isn’t really news; the book states this on page 100.
†with 3 participants, there are 6 permutations of mouse order. On the second round, two of those permutations are eliminated, leaving a 1/4 chance)