This is a guest article by Khel, an Underworlds player from Barcelona, who has also written a previous guest article for Well of power on the glory flow of common objective cards here. This time, he has created a tool that be used to measure the luck of both players in a Warhammer Underworlds game!
I think we all know that luck isn't everything in underworlds, and that focusing on it isn't usually the most fruitful way to improve at the game, but I think having a way to measure the luck in a specific game is very cool, and something that could be used to analyze specific matches in your personal games if you keep track of the dice data, or perhaps breakdown the luck in recorded games from large tournaments.
Sometimes I leave the table after a specially gruesome UW loss thinking that there was not much I could have done to overcome my opponent’s rolls along the game. Similarly, sometimes it seems I could have played randomly and won anyway, as my dice seemed to roll only crits (hi Juannan!). One day, I began to wonder how one should assess the luck in attack rolls along an UW game. These are the requirements I came up with:
We should take into account the actual odds of each attack made. Then, we could consider what would be the “expected” number of successful attacks per player, just averaging their respective odds.
We should take into account the density function of attacks landed at player level. This is, for any player, we should know the odds of the player rolling X successful attacks, for any X between 0 and the total number of attacks made.
With the previous info, we should derive:
The odds of each player rolling better or worse than they actually did in the game.
The odds of the combined rolls of both players being more favorable to any specific player than they have actually been in the game.
Previous information would indeed be a good starting point, but it also had shortcomings. In particular:
It gives no insight on when players were lucky. If I roll exceptionally well in the first half of the game, it is possible that I get an unsurmountable lead which cannot be really overcome. However, if my rolls in the second, inconsequential half of the game are poor, results above could end up showing an even game luck-wise. This feels wrong.
It gives no insight on the relevance of each attack. Landing one key hit can be worth much more than landing two relatively inconsequential attacks.
With this, I thought about the following Player-Centric plots:
This plot is formed by the following information:
The X-Axis represents the activation of the game, e.g Turn 3 is 2st activation of the player going first in the first round, and Turn 7 is in fact the 3rd activation of the player who acted second during the first round.
The Y-Axis represents successful attacks made by the player.
The solid green line represents successful attacks actually landed by the player up to any given turn. Key attacks have double weight–that is, the line goes up two ticks if a key attack lands, and just 1 for non-key attacks.
The solid red line represents the average of successful attacks which the player should have landed up to any given turn, according to the odds of the attacks performed. It is derived by adding the odds of each attack carried out, so it is not an integer. As before, key attacks have double weight.
The dotted blue line represents the perfect outcome if the player landed every attack they attempted. Again, key attacks have double weight.
This kind of plot gives the following insight:
When the green line is above the red line, the player is being lucky: they have landed more attacks than the expected amount according to the odds. This is represented by coloring the space between the green and the red curves in green.
When the red line is above the green line, the player is being unlucky: they have landed less attacks than the expected amount according to the odds. This is represented by coloring the space between the green and the red curves in red.
The closer the red line to the blue line, the more accurate the attacks of a player – as the odds of their attacks are closer to 1.
This type of plot gives us the way to overcome the shortcomings mentioned before. Indeed, in the example above, we see how the player the plot refers to rolled well in the first half of the game (green area) and badly in the endgame. Moreover, the plot gives also an easy way to give more weight to the attacks which we deem more relevant: if a key attack lands, the relevant curve moves above twice the amount it would have increased if the attack has been non-key.
The plot above also allows us to give intuitive coefficients for two concepts: Accuracy and Luck. Indeed:
The quotient between the area below the red line (expected outcome) and the blue line (perfect outcome) is by construction a number between 0 and 1. The closer to 1, the closer the expected number of attacks landing is to the event “all attacks landing”, i.e. the more accurate player’s attacks have been. We will call this Player Accuracy Coefficient.
The quotient between the area below the green line (actual outcome) and the red line (expected outcome) will be close to 1 if player dice have been “fair” to them along the game. If it is significantly above 1, the player has been lucky –realized odds above expected results in a significant way- and the opposite holds if the quotient is below 1. We will call this Player Luck Coefficient.
As these coefficients can be derived at player level, they can be compared, giving insight on how players combined luck and accuracy have behaved along the game:
Game Luck Coefficient := (Player 1 Luck Coefficient) / (Player 2 Luck Coefficient)
Game Acc. Coefficient := (Player 1 Acc. Coefficient) / (Player 2 Acc. Coefficient)
If a coefficient is significantly above 1, Player 1 has been more favored by the segment analyzed (either their attacks have been significantly more accurate, or the player has had significantly more lucky rolls than the opponent). If the coefficient is significantly below 1, the opposite holds.
Previous results check all the boxes of the requirements set at the beginning. However, there seems that we could do a bit more. Specifically, given that Player-Centric plots would be drawn at player level, they do not tell anything on how overall luck has favored any player at any point of the game. They tell the story of a player rolls, but nothing on the combined rolls of both players at any given point in the game.
Trying to overcome this issue, I come up to the following Game-Centric Plot:
The plot is formed by the following information:
X-Axis represent the turn of the game, e.g Turn 7 is in fact the 3rd activation of the player who acted second during the first round.
Y-Axis represents the luck bias at any point of the game. This is calculated by computing, for each turn t, the difference of green and red lines for each player. The luck bias at point t is the difference between both figures.
All in all, the line being above the 0-Axis (area colored in orange) implies that Player 1 is being lucky at that portion of the game, and the other way round. The farther from 0 the line, the more significantly luck is favoring the player. So, in the example above, Player 1 was more lucky up until turn 10 of the game by a significant margin, while Player 2 was the lucky one at the second half of the game. The yellow area is larger than the orange one, so we can conclude that, overall, Player 2 was more lucky when it comes to the attack rolls made in the game, even if not by an extreme margin.
Nice ranting, but…
Now you can compute all the previous information for any UW game you choose to! Indeed, you do only need to go to the following web:
In order to analyze a game, you should go to tab “Luck” and provide an excel (xlsx.) with data of all the attack rolls made in the game. You can download a template of the excel sheet in tab “ReadMe” of the same web.
The excel sheet must have the column header as in the template (any changes and the app won’t run well). First column (Round) must be always filled, and will typically contain numbers from 1 to 24 (the amount of turns in a game). The only exception is that there can be various rows with the same number if various attacks have been made in the same turn (e.g. rippa + bite). Regarding the other fields:
If no attack has been made in a turn, all of them need to be empty.
If an attack has been made in a turn:
Type_attack must be either Hammer, Sword, Channel, or Focus. The spelling must be exactly this (case-sensitive).
Type_defense must be either Dodge, or Shield. The spelling must be exactly this (case-sensitive).
Dice_attack, dice_defense, innate_attack, and innate_defense must be any positive number. Obviously, innates can (and in most cases will) be 0.
Reroll_attack and reroll_defense must be any number between 0 and the amount of dice rolled.
Attack_support and defense_support must be 0, 1, or 2. However, they do not interact with each other, which means that you need to give the “net” result. E.g. if attacker has 2 supporting fighter and defender has 1 supporting fighter, attack_support = 1 and defense_support = 0.
Guard, cleave, esnare, trapped must be 0 (if the condition does not hold) or 1 (if it does).
Success: 0 if the attack failed, 1 if it landed.
Player: 1 or 2, depending on the player who made the attack.
Key: 1 if the attack was crucial, 0 otherwise. My typical rule of thumb: if the attack would kill a unit, I set it to 1, otherwise I set it as 0. This is correct most often than not, and has the advantage of being fair to your opponent (sometimes an attack could be crucial for your rival due to glory cards, and if the attack fails there is no way for you to know that).
Repeat: 1 if the attack was repeated upon initial failure (e.g. due to Oathsworn), 0 otherwise.
Anguished: 1 if the attack was made by an inspired Anguished One, 0 otherwise.
This is the typical appearance of an excel used to feed the app:
If you want to give it a go before gathering data from your own games, you can download the excel above here.
Once you load the data (and wait for 10 secs. approx.) tab “Luck” will display all the information discussed in the first section of this article. You can even download it as a simple pdf report if you want!
I hope you find the math breakdown on luck interesting. I know I do, and hope to see this tool used in the future to analyze some games in the future! If you have any comments, suggestions, or questions about the tool, feel free to let us know in the comments.
Thanks for reading!