Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
Thanks a lot for the work, Mark, and all other for feedback.
Guess I can consider that if rolls are being manipulated, it's probably not "the norm" here.
At least difficulty is not actually handling rolls, from what data we have.
I know all this about law of large numbers and confirmation bias but this is the first game things are as bad as this. I've seen this on multiple occasions too.
First off random numbers aren't random. They are generated by a pseudo random number generator. Generally speaking these generators create a sequence of numbers that, for a uniform distribution, meet the following criteria:
- Every number in the sequence is equally likely to occur.
- The probability of outcome Y following outcome X, is the same for all values of X and Y.
- The sequence generated is the same on different computers (portability).
These are the basic tests of pseudo-random numbers and I've simplified them. The result of this is you get a deterministic sequence of numbers that looks random. For most software applications the onus is on the programmer to prove that their random numbers meet these criteria. For the gaming industry, the end user has to perform these tests or accept the results. There are enough example of games with bad RNGs that I'm not content to simply dismiss anecdotal evidence as confirmation bias out of hand (most of the time it is, but I can think of several games: NWN, Mordhiem, Blackguards, etc. that had to patch the RNG).Secondly, as I mentioned the sequence is deterministic. The illusion of randomness is created by reading the sequence at a different starting point each time. The start point of the sequence is called the seed. How the game selects the seed and the conditions that it changes it for are very important for creating the illusion of randomness. Note that while an RNG may meet the criteria for randomness, the distribution of numbers created by reloading and looking at the first roll more than likely will not meet those criteria if the game reseeds on a reload. This is because the algorithm that handles reseeding more than likely is not a PRNG. I suspect that this game does reseed on reload, but I haven't bothered to test this.
Roll20 begs to differ. https://wiki.roll20.net/QuantumRoll
In the case of quantum rolls, the seed is not generated by a computer, but from an external source, the computer is just reading and manipulating the raw result. It's as if you had someone roll real dice all day, use a camera to read all the rolls and have the server send them to people that are playing at the moment.
Real computer RNG only uses its internal clock and/or current time at the core, which is always pseudo random at best, because a clock is a clock, it's predictable.
Well it doesn't look like any thing like that is going on here:
This is just making a straight call to the C# Random library function ( I assume it's C# 'cos Unity). All languages have a built in Random library function and all game devs use them as they are very fast and fit for purpose. Most library random functions use the system clock in milliseconds to seed the RNG calculation since this makes the result unpredictable in practice (although obviously predictable for any specific given value.
Some games, notably XCOM, implement an anti-savescumming scheme but grabbing a standard library random number call at the start of a level/mission to genenrate a fixed seed for the mission/level and saving it privately. This number is then fed into the first RNG call as the seed, then the output of the first call is used as seed for the second manually, then the output of the second to seed the third and so on. This can be accomplished in code becasue most language random library functions give you the option of providing your own seed as a parameter to the call if you so choose. This has the effect of creating an immutable list of rolls that don't change no matter how many times you reload.
That is not going on here (either anti-save scumming or manual seed feeding) as can be seen from the code.
Other games, again notably XCOM, fiddle the RNG results in favour of the player by smoothing out bad roll series. Except on Legendary difficulty (and possibly Commanderm I can't recall now) if you miss more than two shots you get an extra 5% To Hit, then another +5% if you miss again etc until you do hit.
Again that is not going on here as can be seen from the code.
Which means the rolls in PK are straight as a die (pun intended)
Ther are two reasons people think game die rolls are not straight:
1. Confirmation bias/loss aversion fallacies - you notice failed rolls about twice as much as you notice successful ones. Same reason you feel the loss of $10 roughly twice as bad as you feel joy at finding $10.
2. Gambler's fallacy - the belief that if something doesn't happen one time it is more likely to happen next time. In fact, if random, a series of bad rolls is exactly as likely to occur as a series of good rolls which itself is exactly as likely to occur as a series of mixed rolls. But humans perceive a series of mixed rolls as inherantly more random than a series of good or bad ones. Which is a fallacy and the source of many a gambler's fate and a casino's profit.
but that's kind of expensive and not gonna be in every PC unless we end up like "Fallout" haha :p
That code doesn't tell you if the game is being reseeded on a reload. You would actually have to check the code that executes on a reload and check if the seed function is being called for the RNG. Anyway that they are using the standard C# random function isn't good news. IIRC that would be Donald E. Knuth's subtractive random number generator algorithm. Subtractive RNGs have problems in that the lower bits are not random and there are several seed values for which it fails (It's better than a linear congruential generator, but not by much). If that's the algorithm they're using, then the game does have RNG issues.