A pseudo-random number generator (PRNG) is a function which returns a hard-to-predict value given a seed. Normally, the seed is set so something arbitrary when a program starts (for instance, the current time in microseconds since the computer started), and each call to the pseudo-random number uses its result as the next seed. For instance, if we used a very bad PRNG,
f(x) = x + 1, and an initial seed of 42, the first call would generate the “random” value 43, and also set the seed to 43. The next call would thus result in a different value.
In the case of Oolite, a pseudo-random number generator is used to generate the same data repeatedly – for instance, the same planet appearance each time you enter a given system. To do this, Oolite starts by resetting the seed to a function of the galaxy number and planet number each time you enter the system.
In order to generate additional planets randomly in a system, a different seed value must be used for each one. This is what the seed attribute in
planetInfo.plist is for. It consists of six numbers between 1 and 255.
Since you can’t change all attributes of a planet in
planetInfo.plist (for instance, you currently can’t modify the atmosphere, and new attributes might be added in the future) it’s good practice to make up a new seed for each planet. If you don’t feel very creative, try
this amazing Web 2.0 app. Good thing I’ve been having to learn JavaScript, eh? ;-)