Minecraft – How does biome generation work in 1.8 snapshots

minecraft-java-edition

My friends and I were planning on starting a survival server for ourselves once 1.8 is officially released, and the possibility of having the nearest ice-based or mesa biome being 20 km away from 0,0 has become a bit of a concern. I understand that things like AMIDST and seed lists exist, but I'm looking for the actual algorithm that Minecraft uses so that I would be able to write a program which would, in some sense, automate seed-searching for particular patterns or features by generating just the biomes from random seeds.

As far as I understand, the biome patterns are entirely deterministic from the seed and are generated via some Perlin noise-based algorithm, but I can't seem to find any specific information anywhere on how the algorithm specifically works besides very high-level descriptions or explanations for outdated versions. However, I know something like this has already been done at least once since the Mindcrack server had its survival server reset semi-recently and specifically picked a seed with extremely varied biomes within a few kilometers of 0,0 due to distance limitations imposed by a worldborder.

In short, what are all the nitty-gritty details behind the algorithm which determines Minecraft's biomes, and how would I go about generating just the biomes from a seed if I intended to?

Best Answer

Your question is how to find a seed that fits a criteria?

If this is essentially your question then TheCodeRaider has already produced a brute-force script that will test a range of seeds against set criteria.

https://www.youtube.com/watch?v=7-BF0kez8fE

He was looking for sets of 4 witch huts within the spawnable sphere of a player. You're looking for criteria that are far more likely to be found, but to get that changed in his source code would require you to understand what he's written well enough to modify it.

If you can get that done, then this tool would be the closest possible starting point to solving your complicated problem.

http://www.mediafire.com/?axrdw4yazv27mot