I want to write a multiplayer game on iOS platform. The game relied on random numbers that generated dynamically in order to decide what happen next. But it is a multiplayer game so this "random number" should be the same for all device for every player in order to have a consistent game play.
Therefor I need a good reliable pseudorandom number generator that if I seed it a same number first than it will keep generate same sequences of random number on all device (iPad/iPhone/iPodTouch) and all OS version.
Looks like srand
and rand
will do the job for me but I am not sure does rand
guarantee to generate same number on all device across all OS version? Otherwise is any good pseudorandom number generate algorithm?
If you provide a seed value to rand then it should consistently provide the same sequence of pseudorandom numbers. You can also try arc4random().
From the C standard (and Objective C is a thin layer on top of C so this should still hold):
There's no guarantee that different implementations (or even different versions of the same implementation) will give a consistent sequence based on the seed. If you really want to guarantee that, you can code up your own linear congruential generator, such as the example one in the standard itself:
And, despite the fact that there are better generators around, the simple linear congruential one is generally more than adequate, unless you're a statistician or cryptographer.