Jump to content

Technical question: Type of randomness for shinies.


Recommended Posts

On 12/31/2023 at 4:57 AM, KiritoHakz said:

Hi people, someone knows or it is stated somewhere, which kind of randomness its using PokeMMO for shinies?
https://statisticsblog.com/2012/02/23/a-classification-scheme-for-types-of-randomness/

Some forum users will mock or ignore any idea that seems strange to them or that they disagree with, no matter how well they understand the issue. That's why you should instead make a suggestion in this section of the forum. I think the developers are open to new ideas because improving the game is in everyone's interest. Good luck.

Link to comment
11 hours ago, Damian said:

By way of clarification, I am a software industry professional with a degree in computing and software systems from a world leading university.

 

Patterns of unlikely statistically independent events are exactly what one would expect from a random system. Humans are notoriously bad at distinguishing (effectively) truly random behaviour from patterned or distributed behaviour.  For example, consider the following two images:

image.png.2f8dc66a725191260eae24c2cbf401f4.png

 

Which image do you think represents a random distribution of dots, and which represents an ordered pattern being generated?

 

The image on the left is randomly generated; the image on the right is not random.

Notice that the left image contains clusters of dots together. If we are to imagine that a dot represents a shiny encounter, if the system being used is effectively truly random (i.e. provably psuedorandom by definition), we would expect clusters of shiny encounters close together, and long runs in between shinies, which is what you're describing. If you encountered a shiny exactly every 30,000 encounters, this would not be random at all, in fact it would be extremely ordered.

 

In practice it is effectively impossible for a computer system (which is deterministic by nature) to be truly random, and there is some debate as to whether "true" randomness even exists in the universe.

For most applications however, true randomness is unnecessary. It is usually sufficient, as it is in this case, that an attacker cannot analyse the output of a pseudorandom system and determine the input with any accuracy better than a guess. This is the case for the randomness in use in PokeMMO as evidenced by the link provided by Seth above (thanks Seth, I remembered Desu mentioning this but couldn't find it 🙂 ).

 

I'm sorry that you did not encounter a shiny in the amount of time that you expected, and that another player was very lucky and found many in the same day, but this does not demonstrate a "broken" system. As I mentioned, this is exactly what one would expect from a random system, and "pseudorandomness" is not any kind of knock against PokeMMO or its implementation of random monster 

Well i know more than 15 programming languages without any title and i know this should not be even a discussion. Talk about it with your friends from the u, you ignore how bad can be seudo random algorithms.

Link to comment
1 hour ago, KiritoHakz said:

Well i know more than 15 programming languages without any title and i know this should not be even a discussion. Talk about it with your friends from the u, you ignore how bad can be seudo random algorithms.

Pls friend dont embarass yourself further

Link to comment
1 hour ago, KiritoHakz said:

Well i know more than 15 programming languages without any title and i know this should not be even a discussion. Talk about it with your friends from the u, you ignore how bad can be seudo random algorithms.

01111001 01101111 01110101 00100000 01100001 01110010 01100101 00100000 01110011 01101111 00100000 01100011 01101111 01101111 01101100

Link to comment
1 hour ago, KiritoHakz said:

No this thread should be renamed as PokeMMO people discovers the difference between seudo random  and real random algorithms.

Its more like "I discovered the difference between pseudo random and real random algorithms and let everyone on PokeMMO Community know about it". 

I mean, most of the people that have ever played any game that have RNG involved have asked theyrselfs about how RNG works, and the praticability of things have show that there is no chance nor real expectancy of a game would be using real random generator numbers, even more a game that dont run around real money. 

You are not on a cassino, its just a game, beign a true random number generated game seems important only for you and i feel very curious about what other games you play that use real random number generations for their odds.

 

 

16 hours ago, KiritoHakz said:

Just test it you will see catching five shinys the same day its impossible with real random. There is no problem here. People its not complaining about shunting and its happy with thw nice event drops.

Yeah im being ironical. Event drops should be also real random.

 The pokimons asked from elfs also got problems because of using seudo random when defining pokimon for elfs, swarm and alphas.

I will just quit i guess. Im not wasting my time on seudorandom shunting . Ty anyway.

Sure, like its a praticable test to do...
But if you do it the enough times it should be happening even with RNG, here you sound like the one that dosnt know how the odds works, even with RNG or PRNG. 
 

Link to comment
1 hour ago, KiritoHakz said:

No this thread should be renamed as PokeMMO people discovers the difference between seudo random  and real random algorithms.

The fact that you don't even know it's spelt pseudorandom and the technical term is true random not "real" random. Tells you a bit about his knowledge of the subject. 
Also, these "pseudorandom" algorithms used within the game are 1. indistinguishable from true random ones to the human brain, even modern sophisticated AI would struggle to determine the difference. 2.  Impossible to reverse engineer and manipulate due to the number and complexity of variables in play. 
Even these "true random algorithms" rely on processes like thermal (the idea behind using lava lamps for encryption) or atmospheric noise which are technically predictable just significantly more complex and completely unneeded for a game like this. Even if "true" random were to be used, five shinies in 1 day isn't even that unlikely. If doing 18 hours of leppa 5 hordes, your chance of getting 5 or more shinies is about 0.4%. 

Quote

X ~ B(25200,0.000041) x=5 Pr(X=x)=0.00425 or 0.425% 

Statistically anomalous? sure. Impossible? certainly not.

Link to comment
On 12/31/2023 at 12:57 AM, KiritoHakz said:

I guess its obvious but im a dev, How i should offer my skills to MODS? Is PokeMMO willing to give some job/code proyect?

 

17 hours ago, KiritoHakz said:

I will just quit i guess. Im not wasting my time on seudorandom shunting . Ty anyway.

So KiritoHakz wanted to join the staff to tweak shiny encounter randomness. It makes me wonder: was it for his own interests or to really help out the community?

Link to comment
On 12/31/2023 at 4:57 AM, KiritoHakz said:

Also, I love the fact he's just linked a random blog post, it's an opinion piece. Not even any sort of mathematical or scientific paper. Even if he did read it properly he'd come across this quote:
 

Quote

For a data source to be Type 4 random, it must be martingale random and it must come from a sequence that is not only unknown, but priori unknowable. If Type 4 randomness exists, then God plays dice; randomness is “baked in” to the universe.
I suspect that if Type 4 randomness really does exist, then it will be impossible to prove.

He's asking the devs to implement something that isn't even provably existent.
I'd recommend he reads

Kolmogorov, Andrei N., and Vladimir A. Uspenskii. "Algorithms and randomness." Theory of Probability & Its Applications 32.3 (1988): 389-412.
Kendall, Maurice G. "A theory of randomness." Biometrika
 32.1 (1941): 1-15.
but these might be significantly above his levels of understanding.

Link to comment
Posted (edited)

The problem its not only that you are using seudo random algorithm. The big big problem its that you are using that pretty standard lib from java which its enought random for doing some hello world tests, but its not suited for games. You have to at least implement a library dedicated to the task of random generation. I can search for better one latter. Im in vacations. Not in home and dont have my pc.

 But clarifying:

1.Dont use seudo random.

2.That library its thrash. And its possible that only java devs ignore this.

Edited by KiritoHakz
Link to comment
Posted (edited)

Yeah i was wrong about seudo random. But anyway the lib used its not enought random. You should use some library more focused in security or hash for passwords. Still seudo random but better. My wrong. The downside its that it will take more cpu. Thats why you have to pregenerate pokimons. To avoid to calc while people playing.

The random generation will probably have better results if its done in the same hardware, i mean the pregeneration should happen most of the time in the same server and without much interruption.

Edited by KiritoHakz
Link to comment
Posted (edited)

As far as i see java its not very good with cryptography. The standard libs random generator its not so standarized. I knew it was thrash but i didnt knew why before. Its because of his method that its deterministic.

Using non deterministic generator will help.

In other words i suggest to use Openssl. But that will probably need to do some code in other language. That would be really nice but for example bouncycastle can be used also. I dont recommend this but its better than SecureRandom method.

Edited by KiritoHakz
Link to comment

From oracle docs:

 

Many SecureRandom implementations are in the form of a pseudo-random number generator (PRNG), which means they use a deterministic algorithm to produce a pseudo-random sequence from a true random seed. Other implementations may produce true random numbers, and yet others may use a combination of both techniques.

 

 

Link to comment
23 hours ago, KiritoHakz said:

Well i know more than 15 programming languages 

So 16? 

 

Flexing with # of programming languages while having no grasp whatsoever on basic computer science, arithmetic, probability or understanding of game mechanics is something that I keep seeing in this game's forums only. Or is it always the same person?

Edited by Sourcerer
Link to comment
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.