Blood Bowl 2's RNG
Community Manager

Hi guys,

Questions about the RNG in Blood Bowl 2 are quite frequent and we worked with Dode and VodooMike to have a post explaining how it works in the game.

You can find it here: https://forums.focus-home.com/topic/1111/rng-some-questions-answered

Don't hesitate if you need any explainations about the post.

last edited by Netheos

I think he's missed the most important Q&As:

Q: Why does the AI cheat?
A: It doesn't.

Q: But it cheats on the random dice rolls.
A: It doesn't.

😉

BB2 Champion Ladder Admin Team

That's covered by the last question, surely?

Humour bypass perhaps? 🙄

Thanks @dode74, @Netheos, and everyone who worked on that explanation.

I saw it on Steam and hope it'll ease our suffering, even slightly (I know it won't).

But I would like to offer a criticism, I believe it'll be too difficult for most people to decipher
I'm afraid those who keep asking these silly questions about RNG without taking a second to look around won't be satisfied with dode's post or will simply be turned-off by it's technical aspects.

I'm advocating for the KISS principle to be applied here.
Perhaps with a short video of in-game repeated failure and subsequent defeat from some well-known streamer (or whomever) as an example of how being unlucky doesn't mean the RNG is skewed.

@Naissun said in Blood Bowl 2's RNG:

I'm afraid those who keep asking these silly questions about RNG without taking a second to look around won't be satisfied with dode's post or will simply be turned-off by it's technical aspects.

From a lot of talking with different guys disliking RNG aspects of BB, I've learned it's not even the "rigged dices" they dislike, but the very fact dices mean that much in BB, in general. It turns out there are a lot of people, for whom the only "fair, good" turn-based system is a chess-like system where outcome of the match depends only on how well you can move your figurines around and pre-calculate moves as far in the future as possible. To them some dices ruining their brilliant plans is sort of personal insult. They want to control their "ingame fate" completely, so to say 🙂 Not all of them understand it themselves, and keep saying that they only don't like unfairness of dices.

@Naissun said in Blood Bowl 2's RNG:

Perhaps with a short video of in-game repeated failure and subsequent defeat from some well-known streamer (or whomever) as an example of how being unlucky doesn't mean the RNG is skewed.

That would actually empower the dragon with which @dode74 has been fighting for all this time, as it tries to prove your point with just one selected ("cherry-picking") match - specifically selected in a way that will prove your point. The only solid way is to provide a good, solid representation of matches with different statistics on it, but then it again will scare most of the whiner off.

last edited by Mori-Mori

@Naissun:
I think @the-Sage has several videos posted on his channel, showing both "<insert race> bullshit" lucky rolls and "getting diced" with some amusing fail rolls.

It was a very thorough explanation - which is exactly what is needed to kill the idiotic "RNG-cheating" speculation threads.
and as a plus, it's interesting to know the server is written in Python 🙂

@JustWilward said in Blood Bowl 2's RNG:

and as a plus, it's interesting to know the server is written in Python

Not sure if @dode74 meant server here, actually. The client is definitely written in it, though. He could mean that that's how RNG works when you play with AI (I doubt they would still draw RNG values for soloplay from servers, creating unneeded load, those are most likely generated locally). Though it's very likely they used the same language everywhere, to make things more uniform. In the end World Of Tanks as well written in Python, and deal with enormous network load.

BB2 Champion Ladder Admin Team

Yes, I meant server. Cyanide checked the post before it was made public.

BB2 Champion Ladder Admin Team

@Naissun said in Blood Bowl 2's RNG:

Thanks @dode74, @Netheos, and everyone who worked on that explanation.

You're welcome. @VoodooMike should also be in that list. We discussed the questions, he double checked my answers, and he provided the source code link. He's also done a lot of specific testing of replays themselves (which you may have seen the results of on the Steam forums).

@Mori-Mori said in Blood Bowl 2's RNG:

as it tries to prove your point with just one selected ("cherry-picking") match - specifically selected in a way that will prove your point.

That's not what I was talking about. The proof and explanations are already treated by the technical parts of dode's post but for those "dragons" I believe a video as an example would help.

Something introduced as: "This is an example of some legitimate die rolls resulting in repeated failure from an experienced coach. Bad luck doesn't necessarily means broken RNG. In BB2, it has yet to mean anything more than bad luck.".

@JustWilward I'll have a look when I have the time.

@dode74 I wasn't sure but I expected Mike to be involved. Well, thanks @VoodooMike too then 😉

last edited by Naissun

@Naissun said in Blood Bowl 2's RNG:

I believe a video as an example would help.

I plan on making a video to expand on the post, though it may take some time. The main reason for it being that people can sit through a lot more "stuff" in video format than they can in text format... people tend to just not read long posts, and this is a topic that we could write pages on.

@Naissun said in Blood Bowl 2's RNG:

This is an example of some legitimate die rolls resulting in repeated failure from an experienced coach.

The real problem with BB "celebrity endorsement" is that there's nobody out there that everybody knows and considers to be an awesome coach. In fact, we see some of the highest profile coaches pushing viewpoints that are patently false (such as the idea that halflings should play as though they're 300 TV higher than they are.... or that the Bret roster is OP). I'm not convinced those are people likely to sway the masses on any technical or intellectual concepts. Hell, I'm not even sure we can, but it's better to have the raw information available for people to link to in all the future "RNG iz Br0k3n" threads.

@JustWilward I do, yeah. There are examples of silly lucky and unlucky dice from both myself and my opponent in this playlist. They're meant as highlights, to show how amazingly silly this game can be, and they have no relation to the quality of the RNG (which I have no reason to doubt, but also no ability to say is good, other than a 'gut feeling' that it doesn't seem any more or less flaky than fumbbl or tabletop).

@VoodooMike said in Blood Bowl 2's RNG:

we see some of the highest profile coaches pushing viewpoints that are patently false (such as the idea that halflings should play as though they're 300 TV higher than they are....)

citation needed.

last edited by the Sage

Mersenne Twister uses a seed, when a game gets disconnected, where both clients disconnect, does it instantiate a new sequence from a different seed? I guess not as the game state is probably still unchanged.

Does the server host 2 sequences, one for each player, or just one sequence for both players?

Also are all dice coming from the same sequence, that is d6's, scatter and block dice? If so, how do block dice translate into d6's ? 1= attacker down etc.

last edited by majorbyte

@VoodooMike said in Blood Bowl 2's RNG:

I plan on making a video to expand on the post, though it may take some time. The main reason for it being that people can sit through a lot more "stuff" in video format than they can in text format... people tend to just not read long posts, and this is a topic that we could write pages on.

Exactly.
Good to know that's planned.

The real problem with BB "celebrity endorsement" is that there's nobody out there that everybody knows and considers to be an awesome coach. In fact, we see some of the highest profile coaches pushing viewpoints that are patently false (such as the idea that halflings should play as though they're 300 TV higher than they are.... or that the Bret roster is OP). I'm not convinced those are people likely to sway the masses on any technical or intellectual concepts. Hell, I'm not even sure we can, but it's better to have the raw information available for people to link to in all the future "RNG iz Br0k3n" threads.

Sure, but does it really matter if the coach is famous enough or understand how RNG works?
I'm not asking for that person to sway the masses by popularity or by explaining things.

What's needed IMO is a short clip from a normal match showing how an experienced coach with usually good results in BB2 can be as unlucky as a random schmuck.

You could even detail how the rolls in that short video are within the norm of what one can get, going technical and everything.

I believe that would help some people to understand their awful rolls are not an abnormality. That they will have bad days. That their "Cyanide hates me and makes me lose on purpose" match is in no way special and could happen again because that's what random means.

Or, as you said, it could at least be used as an answer to all those "BB2 broken RNG killed my mother" threads we keep getting.

@the-Sage said in Blood Bowl 2's RNG:

citation needed.

@ 6:37, cKnoor declares, for those of us who don't already know, that halflings only work if you have a certain amount of inducement money, meaning they need to play at a TV disadvantage. The data says that's bullshit.

https://www.youtube.com/watch?v=HHs-99wub9A&t=6m37s

@ 3:02, you say people want to either play 100 or 400 TV down. Again, the data says that's bullshit, at least if what we're talking about is winning games.

https://www.youtube.com/watch?v=YG9jfbninjI

last edited by VoodooMike

@majorbyte said in Blood Bowl 2's RNG:

Mersenne Twister uses a seed, when a game gets disconnected, where both clients disconnect, does it instantiate a new sequence from a different seed? I guess not as the game state is probably still unchanged.

Each match has its own instance of the Random class, and matches only last (meaning can be reconnected to) while they are still active on the server, so the RNG state will remain the same. The seed is almost certainly just based on the system's own timer, which is pretty standard.

@majorbyte said in Blood Bowl 2's RNG:

Does the server host 2 sequences, one for each player, or just one sequence for both players?

There would be no reason to make two instances of the random class for a match.

@majorbyte said in Blood Bowl 2's RNG:

Also are all dice coming from the same sequence, that is d6's, scatter and block dice? If so, how do block dice translate into d6's ? 1= attacker down etc.

Probably. They are just using the standard Python random routines which include functions to produce a random integer in a range you give it. The method by which it turns the RNG output into such an integer can be viewed in the source to the Python random module. Which integer maps to which block dice is sort'v immaterial... in fact, it could simply be done using one of the other built in functions that picks from a supplied array of values which need not be numeric at all.

It should be noted that any of the normal "attacks" that can be made on random number generators to ascertain the seed or state enough to duplicate that state require a certain number of sequential RNG outputs... and that's different from values that are derived from that output. There's no reason for the server to transmit the actual RNG output rather than the roll values it derives from them.

There is a d6, 1 through 6, equivalence used in the challenges. If you want to work out what the game uses you should be able to work that out from that. My off hand guess would be 1=Attacker Down, 2=Both Down, 3,4=Defender Pushed, 5=Defender Stumbles, 6=Defender Down, since that's the order that the Block Dice results have always been listed in.

EDIT: I ran some of the challenges and 3&4 are definitely mapped to "Push". The puzzles in the ones I did actually relied on that fact.

last edited by mrinku

@VoodooMike said in Blood Bowl 2's RNG:

The method by which it turns the RNG output into such an integer can be viewed in the source to the Python random module. Which integer maps to which block dice is sort'v immaterial...

Why would the mapping be immaterial? The method is not important but the outcome? If my opponent rolled 12 block dice none of which were Attacker Down dice (assuming those are mapped to a 1), wouldn't that increase the odds for me rolling a 1 first thing I do in my turn?

BB2 Champion Ladder Admin Team

@majorbyte said in Blood Bowl 2's RNG:

If my opponent rolled 12 block dice none of which were Attacker Down dice (assuming those are mapped to a 1), wouldn't that increase the odds for me rolling a 1 first thing I do in my turn?

No. The odds are 1 in 6 regardless of which dice came before. Dice have no memory.

@majorbyte said in Blood Bowl 2's RNG:

wouldn't that increase the odds for me rolling a 1 first thing I do in my turn?

Absolutely... not!
Random means random. Even if you rolled a thousand 1 or 6, you'd still have 1/6 chance of rolling a 1 next time.

last edited by Naissun

@dode74 said in Blood Bowl 2's RNG:

@majorbyte said in Blood Bowl 2's RNG:

If my opponent rolled 12 block dice none of which were Attacker Down dice (assuming those are mapped to a 1), wouldn't that increase the odds for me rolling a 1 first thing I do in my turn?

No. The odds are 1 in 6 regardless of which dice came before. Dice have no memory.

These aren't dice though.
2^19937 numbers are generated right?
Surely not rolling a one 12 times in a row would affect things? But the effect would be so miniscule as to never be worth mentioning.

@Naissun said in Blood Bowl 2's RNG:

Random means random. Even if you rolled a thousand 1 or 6, you'd still have 1/6 chance of rolling a 1 next time.

If you were rolling dice.... chances are you have a weighted dice and it isn't 1/6 🙂
Very very few dice give a 1/6 chance of any result. Casino dice for a short time when rolled fairly, and that's it.
So when rolling actual dice, if you roll a lot of ones get new dice or roll them better!

last edited by JimmyFantastic
BB2 Champion Ladder Admin Team

@JimmyFantastic said in Blood Bowl 2's RNG:

These aren't dice though.
2^19937 numbers are generated right?
Surely not rolling a one 12 times in a row would affect things? But the effect would be so miniscule as to never be worth mentioning.

Any sequence of 623+ results is equally probable. So a roll of 12 not-1s is one of those sequences of length 623. Since all possible combinations up to 623 rolls are equally possible then all possible combinations up to length 623 with 12 not-1s are equally possible. That means there are n sequences where the last-but-one 12 rolls are not-1 and the last roll will be anything from 1 to 6, and those last rolls are equally distributed. That means the probability of the next roll being a 1 is still 1 in 6 even if it's the very last roll of the match.

@dode74 said in Blood Bowl 2's RNG:

@JimmyFantastic said in Blood Bowl 2's RNG:

These aren't dice though.
2^19937 numbers are generated right?
Surely not rolling a one 12 times in a row would affect things? But the effect would be so miniscule as to never be worth mentioning.

Any sequence of 623+ results is equally probable. So a roll of 12 not-1s is one of those sequences of length 623. Since all possible combinations up to 623 rolls are equally possible then all possible combinations up to length 623 with 12 not-1s are equally possible. That means there are n sequences where the last-but-one 12 rolls are not-1 and the last roll will be anything from 1 to 6, and those last rolls are equally distributed. That means the probability of the next roll being a 1 is still 1 in 6 even if it's the very last roll of the match.

Cool.
Does the sequence repeat after 623? Do any BB matches roll that many dice?

@VoodooMike said in Blood Bowl 2's RNG:

@the-Sage said in Blood Bowl 2's RNG:

citation needed.

Wow VM, you weren't even trying with those vids.
Try this on for size, Sage confessing to being the "brains" behind two horrible new features in one post! I sceenshotted it cos I thought he would try to weasel out of it later.
alt text

last edited by JimmyFantastic

@JimmyFantastic said in Blood Bowl 2's RNG:

If you were rolling dice.... chances are you have a weighted dice and it isn't 1/6
Very very few dice give a 1/6 chance of any result. Casino dice for a short time when rolled fairly, and that's it.
So when rolling actual dice, if you roll a lot of ones get new dice or roll them better!

I'm buying some Las Vegas' dice right now!

I also need to change them twice a day, right? Better start making more money 😛

But in our present case it doesn't matter as dode just explained it.
Thank you dode by the way, I wasn't sure if it was a perfect 1/6 or just so infinitesimal it wouldn't matter.

BB2 Champion Ladder Admin Team

@JimmyFantastic said in Blood Bowl 2's RNG:

Cool.
Does the sequence repeat after 623? Do any BB matches roll that many dice?

No, it just means any one sequence of length 623 is equally likely. Some longer sequences are more likely than others (no idea which ones or how much more likely). The sequence itself doesn't repeat until after 2^19937 iterations, which is a lot.

I can't think of any matches which would use 623 dice or more. If every player rolled 2 dice every turn for a match you'd get 704 rolls, but I doubt that has ever happened. New challenge? Maximise the number of dice rolls?

@majorbyte said in Blood Bowl 2's RNG:

Why would the mapping be immaterial? The method is not important but the outcome?

It's immaterial to the discussion of randomness in BB2... we don't care which number maps to which block dice result so long as the mapping is done at an appropriate probability level for each, which analysis of replay files suggests it is. It doesn't matter if AD is 1 or 6, so long as its only one of six possible outcomes.

Now, that said, I recently started work on a library to parse replay files (rather than using onesandskulls) and I'm not sure that the block dice are mapped to a 1-6 output. For example, a three dice block that results in Push, Push, Push is listed as dice rolls of (2, 2, 2, 4, 4, 4), with the selected value being (2, 4). I don't know what any of that means yet, but I'm only an hour into the project so... we'll see 😉

@majorbyte said in Blood Bowl 2's RNG:

If my opponent rolled 12 block dice none of which were Attacker Down dice (assuming those are mapped to a 1), wouldn't that increase the odds for me rolling a 1 first thing I do in my turn?

Nope.

@JimmyFantastic said in Blood Bowl 2's RNG:

Surely not rolling a one 12 times in a row would affect things? But the effect would be so miniscule as to never be worth mentioning.

Nope.

@JimmyFantastic said in Blood Bowl 2's RNG:

Does the sequence repeat after 623? Do any BB matches roll that many dice?

They don't... the repeating aspect is the period, and that happens after 2 to the power of 19937 which is big enough that we only know it in theory, because even if your computer started generating random numbers now it wouldn't have hit the period before the heat-death of the universe.

@JimmyFantastic said in Blood Bowl 2's RNG:

Wow VM, you weren't even trying with those vids.

They were the first two I looked at 😉 Given that there's no search function on the spoken word I think I did pretty damned well in the short time I spent on the hunt!

All the above "nerd porn" is indeed interesting and I'm sure relevant- when it's implemented! Endless resources can be spent to test and analyse this and that, but what constantly fails in testing, are the simple tests, like repeating a simple situation and seeing a blatant pattern that even the most un-perceptive of people can see, and that is why the question is constantly brought up again and again. Having played dice games for well over 30 years, you get a feel for what is random and what is definitely not. If it walks like a duck, and sounds like a duck, it's more than likely a duck! I'm sure a plethora of replies defending the "100% honest dev answers" will put forward statements like "why would it not be implemented ALL the time" and in a simple answer, I'd have to point out the uniform poor quality of AI in video gaming across the whole spectrum. While I'm playing (testing) for myself and I am beyond reasonable doubt as to whether something is structured or not, a truckload of technical specs and devs vague to fancy hopscotching 'answers' will never be worth a pinch of s*#@.
That's my 10c worth.

Looks like your connection to Focus Home Interactive - Official Forums was lost, please wait while we try to reconnect.