Predictability Of Minecraft Seeds
In a nutshell, is there anyway to predict what kind of landscape a certain seed will generate?
I've done some research and seems like the answer is no, but is there some sort of general guideline, like seeds with just letters results in largely desert landscapes or that negative numbers as seeds result in large tundra biomes.
Thank You!
Solution 1:
As Oak has said, the seed is used to seed a pseudo random number generator, which makes it (in practice) impossible to determine. However, to make things worse, the given seed is first run through a hash function ( http://en.wikipedia.org/wiki/Hash_function ) that (should) generate wildly different values with the changing of 1 letter.
In short, there is no useful correlation between the seed input ("Gargamel" for example) and the seed used (some number). And even if there was it wouldn't get you very far.
Update (for clarification):
This does not mean that using the same seed will generate a different map (else sites like minecraftseeds.info wouldn't work), the hash function will always generate the same output given the same input and the pseudo random number generator will always create the same sequence from this number. It does mean however, that changing one bit of the seed (say, "Gargamel" versus "Gbrgamel") will create a different map, which will usually have very little in common with the first map.
Solution 2:
The short answer is 'No', as you already found out through your research. A common property of most (pseudo-)random generators, including the one used by Minecraft terrain generator, is that 'similar' seeds give wildly different results.
There is no way of predicting that e.g. negative numbers will produce certain features more often. As for the letters in the seed - if the seed contains them, the string is converted to a numerical seed using a certain calculation (String.hashCode()
to be exact).
That said, there is some difference between numerical seeds and seeds with letters, but it has almost no practical implications: numerical seeds are 64 bit numbers, while seeds with letters are hashed to a 32 bit number. This means that there are 18 quintillion possible Minecraft worlds, but if you use a seed with a letter in it, you can generate 'only' 4 billion of them.