Gaussian RNG issue in PoE (both games)

@GGG I am, with relative confidence, sure you are using Gaussian RNG generation and would like to request you don’t and why you shouldn’t.
Below is a stack of 100 Gaussian RNG numbers that are supposed to be 50 +-10, as you can see there are a lot of outliers and some but a considerable margin (up to the same percent of margin as the variance, in this case +-10 and 10% worst outliers). Changing to, for example a ‘white noise’ RNG generator with an outliers filter (or tbh staying Gaussian with the same outliers filtration) would help the games ‘fairness’ a lot.
I know you are all software developers and not mathematicians, hence this post.

"
66 39 38 53 44 44 50 41 39 57 40 43 27 44 48 47 48 52 53 45 44 58 35 47 38 50 63 50 47 67 61 51 47 46 42 45 37 30 67 54 40 33 52 45 44 56 45 46 41 69 36 37 53 50 40 46 50 46 57 53 32 57 60 27 38 54 36 35 48 45 49 56 45 52 46 43 47 45 33 54 44 47 50 53 52 44 51 56 45 53 45 72 34 48 75 58 64 51 50 39


Edit #1 - I have converted the floating point results to integer ones to make reading easier, and the site I used to generate them is

https://number-generator.com/number-generators/gaussian-number-generator/

So anyone else that cares can verify my work

Edit #2 - as you can see in the list of 100 numbers there are 27 outliers, so 27% errors. The worst outliers are 75 and 27 which is a huge outlier margin on a 40-60 range and explains why some players get disgustingly good or bad rng.
(ALL typos lack of caps, punctuation and general errors are copyright Timbo Industries - Laziness Division)
Last edited by Timbo Zero#8289 on Mar 3, 2025, 4:41:55 AM
Last bumped on Mar 5, 2025, 2:05:49 PM
You must understand that RNG system in games must not be a REAL RNG.
The reason for that is, if you will have real RNG you will get "odd behavior" and sometime awkward results. This can lead to annoying mechanics for gamers.
That's why coders influence RNG by manual controlling like clamps, exceptions, remove repeating numbers, etc.

For example 1% chance (Example from Diablo 3) it is not 1% but 5-10%, but from other side 25% chance can be like 15-20% ( Diablo 4, tempering)

Everything depends from ...business plan :)

In horrible example from Diablo 4, tempering is so much visible controlled by developers that people get outrageous (25% is a joke there because is less than 20%). Reason for that why the screw so much RNG is the business purposes - just to keep people to play this game.

Sometimes developers clamps chances, for example to avoid 25% repeating chance (which is correct in probability measurements) they add small code which forbid RNG repeat 25% chance after 2-3 attempts in raw.

RNG is very difficult developing part when we speak about gaming.
"
You must understand that RNG system in games must not be a REAL RNG.
The reason for that is, if you will have real RNG you will get "odd behavior" and sometime awkward results. This can lead to annoying mechanics for gamers.
That's why coders influence RNG by manual controlling like clamps, exceptions, remove repeating numbers, etc.

For example 1% chance (Example from Diablo 3) it is not 1% but 5-10%, but from other side 25% chance can be like 15-20% ( Diablo 4, tempering)

Everything depends from ...business plan :)

In horrible example from Diablo 4, tempering is so much visible controlled by developers that people get outrageous (25% is a joke there because is less than 20%). Reason for that why the screw so much RNG is the business purposes - just to keep people to play this game.

Sometimes developers clamps chances, for example to avoid 25% repeating chance (which is correct in probability measurements) they add small code which forbid RNG repeat 25% chance after 2-3 attempts in raw.

RNG is very difficult developing part when we speak about gaming.


I have, shall we say as I am 58 and highly educated, a very good grasp of real and pseudo rng (we use in code).
You last sentence is very important (why I made this post) and very correct.
Using Visual C (at my age that is the most modern code I am used to), to make an rng number as above would be done like this…
"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
// Seed the random number generator
srand(time(NULL));

// Generate a random number between 40 and 60
int randomNumber = (rand() % 21) + 40; // 21 is the range (60 - 40 + 1)

// Print the random number
printf("Random number between 40 and 60: %d\n", randomNumber);

return 0;
}


That used 100 times would do the first post result
(ALL typos lack of caps, punctuation and general errors are copyright Timbo Industries - Laziness Division)
Last edited by Timbo Zero#8289 on Mar 3, 2025, 7:24:35 AM
Really hard to tell what type of RNG imlementation POE uses. Most think its Uniform as far as i can tell.
Last edited by Alzucard#2422 on Mar 3, 2025, 9:01:58 AM
"
Alzucard#2422 wrote:
Really hard to tell what type of RNG imlementation POE uses. Most think its Uniform as far as i can tell.


Mathematically you are correct, 73% on average are within range of the Gaussian model but 27% are either getting up to 13% to much or too little than the average and we call those outliers. For 27% outliers to be accepted is bad coding.

Further is a very easy to fix problem with about 3 lines of code added to filter those outliers out completely so you don’t get 73% in the model but 100% by rejecting the values outside of the model.

Finally, we can be fairly confident but definitely not 100% sure they do use the Gaussian rng model as for coding it’s the quickest and easiest to implement.

(I challenge GGG support to deny that the code is Gaussian rng)
(ALL typos lack of caps, punctuation and general errors are copyright Timbo Industries - Laziness Division)
Last edited by Timbo Zero#8289 on Mar 3, 2025, 12:41:10 PM
The RNG in POE1 and POE2 is atrocious.

You will literally have far better luck gambling with real money and actually win something in a Las Vegas casino.
"
The RNG in POE1 and POE2 is atrocious.

You will literally have far better luck gambling with real money and actually win something in a Las Vegas casino.


Exactly right, and this thread is intended to point out to the developers the error of their code.
Thank you for your ‘accurate’ analogy
(ALL typos lack of caps, punctuation and general errors are copyright Timbo Industries - Laziness Division)
[double posted]
Last edited by Suchka_777#4336 on Mar 4, 2025, 2:31:19 AM
"
and why you shouldn’t.


So why they shouldn't? You wrote a lot of words explaining something about distribution, but didn't make a point why it should be different. Why you call outliers errors?

Also, distribution of what you are talking about? Item mods stats looks to be quite uniformly distributed within range allowed by its tier. Getting maximum possible number is not too uncommon, not exponentially more rare than any number from the middle.
Last edited by Suchka_777#4336 on Mar 4, 2025, 2:35:01 AM
I hate the term "RNG" as there is no such thing. Regardless of the wording it translates to "fixed odds". The gaussian model is the most easily "fixed" but the issue isn't in the "odds of" a specific drop. If so I would have no issue as everyone would have the same "luck" over a long enough time period. It doesn't work that way.

The issue is mod weightings on the gear, that is where the con is. "fair" would have equal weightings for all roles on gear and would make use of the myriad of currencies in game. Sure, make L82 gear role the max potential but do it uniformly. Even if this were the case the odds of good gear dropping is still very low due to the shear number of potential affixes and rolls.

The current odds of rolling good gear on drop is astronomically low. The odds of using currency to create good gear without thousands of divines in omens is less than that of dropping it/2/4/6 (number of affixes) hence the "tiered" system. All due to ridiculous useless affixes with max weighting, reduced requirements and thorns to name 2 with near 100% chance to roll on a chest for example.

I am not saying you CANNOT get good rolls from using currency once or twice in 2000 orbs, I am saying crafting is a lottery with an extremely high chance of a brick on the first orb, deliberately.

Currency is worthless if you cannot realistically do anything with it. Hence exalts and chaos orbs dropping in value like a meteor. I use currency for maps, outside of that I may slam a bunch of stuff because the currency is worthless otherwise.

Report Forum Post

Report Account:

Report Type

Additional Info