The objective of this post is to show a small study carried out in order to know the extension (area) that the biomes of Minecraft Java occupy in version 1.16.1, using a methodology different from others used such as that of GammaMicroscopii in MinecraftForums for Biome Rarity, which you can find here.
Unlike that study where 12,000 different seeds were evaluated, noting the biome corresponding to the point of appearance, in this study Amidst was used to generate 125 images of 5000 * 5000 blocks or pixels, 5 per seed in random locations, in such a way that With a small program developed in Python, you could count the pixels of each one of the images and their corresponding color to later transfer it to a biome type and save those data in an Excel .CSV file. In this way, it ended up encompassing a final extension of 3 billion 125 million pixels or blocks among the 125 images, 25 million each.
Despite being a large number of pixels or blocks analyzed, this sample is not statistically significant since it is not a high amount compared to all the seeds that exist in Minecraft and the number of extension blocks of the biomes in each one of them. Although, due to Minecraft's generation patterns, some results may be closer to reality or useful when compared to other studies.
Without further mention, please feel free to take this study for future study or analysis, if there are any comments or feedback feel free to provide them. In addition, I provide a link where you can find a general information file, the CSV file of the 125 samples, the images of the samples generated in Amidst and the Python program in case you want to do your own tests or collaborate in this study, however , It is a study that possibly will not cover more on my own in a long time because with each version of Minecraft it will be necessary to replace it and because my computer is very slow, it usually takes more than two hours for every 25 images, between generating and saving them; in addition to the time spent on this report.
The slowness is mostly due to how badly the game is coded, for comparison, my own biome mapping tool can analyze a total area of more than 4 billion blocks (1000 randomly chosen 2048x2048 areas from 1000 different seeds centered at least 16384 blocks from the origin*), within 10 seconds, using either vanilla 1.6.4 or my own custom version which has more complex biome generation than the latest vanilla version, yet it is only slightly slower than 1.6.4:
This was also done by directly copying the biome generator from the game, which can easily be extracted as it doesn't depend on other Minecraft code (at least, the 1.6.4 version doesn't), not using AMIDST, which also doesn't work with modded biomes (it either displays wrong biomes or crashes), which also helps speed things up but the game itself is the main issue (according to this report the biome generator became 35 times slower during the development of 1.13; by one estimate it is currently around 180 times slower than my own code, which averages 2.4 ns per block while 1.13 takes 445 ns, if not the same hardware but no computer would be that much slower). An additional efficiency gain may result from the fact I generate the entire area as a single unit and all the memory required is allocated only once (1.6.4/my code caches the arrays used while this was removed in 1.13 since Mojang thinks there is no penalty to allocating and discarding objects like no tomorrow, "good coding practices" or not)
Note that I do not have anything for newer versions as I don't play on them and/or the code is impossible to access, or at least not easily (I used MCP, which has been discontinued since 1.12, to decompile and deobfuscate the game), and in any case I did rewrite the 1.6.4 code (including vanilla) for efficiency, which would need a lot more work for 1.13+ (it could result in far larger gains though).
*This distance is due to the fact that the game is programmed to force a landmass to generate near the origin, which may affect areas up to several thousand blocks out; there is only about 1/3 as much ocean if all the areas are centered around 0,0. This also applies to newer versions as the code for 1.7+, with no changes to the land/ocean mask since then, still has the same initial continent generation (much of the oceans are later filled in but this still introduces a bias towards more land near the origin, if not as significant as in 1.6.4).
Thank you very much for your comment, it is really useful. When I visited the previous post about the rarity of biomes and saw your comment in it I knew that I could get interesting information so I checked your profile and I can saw that you really are an overly experienced Minecraft scientist.
Having said that, I understand that you have a quite different vision of what Minecraft should be or you just like more and therefore you have not abandoned version 1.6.4 but you have adapted it to your own conceptions, which is really great.
Even with your information from 1.6.4, we now have three registers or studies about Biome Generation, yours, GammaMicroscopii's and mine, each one is useful for its respective version and they allow us to appreciate that the generation of biomes has changed in these three different versions.
The fact about Amidst I really did not know, much less that of Mojang, it is a pity that currently both go so badly for that type of programming practice. I am not a professional in the field of programming, I studied Java for a semester and after that I spent more time on web programming so I do not know many things and I have never studied the internal code of Minecraft, however, having read many posts and seen little code snippets that really show very strange things in the way Mojang works, I want to believe that although it is somewhat unfortunate there was a time when they changed certain things and never solved them, therefore the code that was added was accumulating in bad practices as if it were a snowball that grows more and more.
Regarding the 16384 blocks of distance, I'm glad to know that data, because of the 125 images only 25 refer to 0.0, all the others are further away from the number of blocks you comment.
Again, thanks for the comment, it was really interesting and educational.
The objective of this post is to show a small study carried out in order to know the extension (area) that the biomes of Minecraft Java occupy in version 1.16.1, using a methodology different from others used such as that of GammaMicroscopii in MinecraftForums for Biome Rarity, which you can find here.
Unlike that study where 12,000 different seeds were evaluated, noting the biome corresponding to the point of appearance, in this study Amidst was used to generate 125 images of 5000 * 5000 blocks or pixels, 5 per seed in random locations, in such a way that With a small program developed in Python, you could count the pixels of each one of the images and their corresponding color to later transfer it to a biome type and save those data in an Excel .CSV file. In this way, it ended up encompassing a final extension of 3 billion 125 million pixels or blocks among the 125 images, 25 million each.
Despite being a large number of pixels or blocks analyzed, this sample is not statistically significant since it is not a high amount compared to all the seeds that exist in Minecraft and the number of extension blocks of the biomes in each one of them. Although, due to Minecraft's generation patterns, some results may be closer to reality or useful when compared to other studies.
Without further mention, please feel free to take this study for future study or analysis, if there are any comments or feedback feel free to provide them. In addition, I provide a link where you can find a general information file, the CSV file of the 125 samples, the images of the samples generated in Amidst and the Python program in case you want to do your own tests or collaborate in this study, however , It is a study that possibly will not cover more on my own in a long time because with each version of Minecraft it will be necessary to replace it and because my computer is very slow, it usually takes more than two hours for every 25 images, between generating and saving them; in addition to the time spent on this report.
Link to see all the useful documents here.
On the documents you can find more accurate information about this percentages below.
Biome extension estimation.
- Plains 8.3497%
- Forest 8.3492%
- Deep Ocean 8.1843%
- Ocean 7.9335%
- Mountains 6.2303%
- Taiga 4.1825%
- Desert 4.0952%
- River 3.9280%
- Cold Ocean 3.8977%
- Lukewarm Ocean 3.4137%
- Beach 3.3132%
- Swamp 3.1675%
- Deep Cold Ocean 3.0360%
- Snowy Tundra 2.9102%
- Deep Lukewarm Ocean 2.6518%
- Savanna 2.4260%
- Dark Forest 2.3159%
- Birch Forest 2.3086%
- Wooded Hills 2.2097%
- Wooded Mountains 1.4505%
- Jungle 1.1837%
- Warm Ocean 1.1694%
- Desert Hills 1.1135%
- Snowy Mountains 0.9784%
- Snowy Taiga 0.9562%
- Deep Frozen Ocean 0.9315%
- Taiga Hills 0.9042%
- Giant Tree Taiga 0.7352%
- Frozen Ocean 0.6704%
- Birch Forest Hills 0.6652%
- Savanna Plateau 0.5816%
- Sunflower Plains 0.5365%
- Flower Forest 0.4884%
- Badlands 0.4609%
- Stone Shore 0.4512%
- Jungle Hills 0.4130%
- Gigant Tree Taiga Hills 0.3428%
- Wooded Badlands Plateau 0.2523%
- Gravelly Mountains 0.2502%
- Snowy Beach 0.2269%
- Snowy Taiga Hills 0.2236%
- Taiga Mountains 0.2160%
- Gravelly Mountains+ 0.1812%
- Frozen River 0.1665%
- Ice Spikes 0.1489%
- Desert Lakes 0.1411%
- Tall Birch Forest 0.1278%
- Dark Forest Hills 0.1211%
- Bamboo Jungle 0.1183%
- Jungle Edge 0.1046%
- Shattered Savanna 0.1027%
- Badlands Plateau 0.1024%
- Swamp Hills 0.0967%
- Tall Birch Hills 0.0795%
- Modified Jungle 0.0666%
- Shattered Savanna Plateau 0.0646%
- Mushroom Fields 0.0417%
- Bamboo Jungle Hills 0.0408%
- Erored Badlands 0.0358%
- Giant Spruce Taiga Hills 0.0352%
- Snowy Taiga Mountains 0.0327%
- Giant Spruce Taiga 0.0325%
- Mushroom Fields Shore 0.0261%
- Modified Wooded Badlands Plateau 0.0179%
- Modified Badlands Plateau 0.0071%
- Modified Jungle Edge 0.000025%
Per Core Biomes (Biomes with their subbiomes)
- Ocean 31.8887%
- Forest 11.0474%
- Plains 8.8863%
- Mountains 8.1124%
- Desert 5.3499%
- Taiga 5.3028%
- River 4.0946%
- Snowy Tundra 4.0377%
- Beach 3.9914%
- Swamp 3.2642%
- Birch Forest 3.1812%
- Savanna 3.1751%
- Dark Forest 2.4370%
- Jungle 1.9274%
- Snowy Taiga 1.2126%
- Giant Tree Taiga 1.1458%
- Badlands 0.8767%
- Mushroom Fields 0.0679%
The slowness is mostly due to how badly the game is coded, for comparison, my own biome mapping tool can analyze a total area of more than 4 billion blocks (1000 randomly chosen 2048x2048 areas from 1000 different seeds centered at least 16384 blocks from the origin*), within 10 seconds, using either vanilla 1.6.4 or my own custom version which has more complex biome generation than the latest vanilla version, yet it is only slightly slower than 1.6.4:
This was also done by directly copying the biome generator from the game, which can easily be extracted as it doesn't depend on other Minecraft code (at least, the 1.6.4 version doesn't), not using AMIDST, which also doesn't work with modded biomes (it either displays wrong biomes or crashes), which also helps speed things up but the game itself is the main issue (according to this report the biome generator became 35 times slower during the development of 1.13; by one estimate it is currently around 180 times slower than my own code, which averages 2.4 ns per block while 1.13 takes 445 ns, if not the same hardware but no computer would be that much slower). An additional efficiency gain may result from the fact I generate the entire area as a single unit and all the memory required is allocated only once (1.6.4/my code caches the arrays used while this was removed in 1.13 since Mojang thinks there is no penalty to allocating and discarding objects like no tomorrow, "good coding practices" or not)
Note that I do not have anything for newer versions as I don't play on them and/or the code is impossible to access, or at least not easily (I used MCP, which has been discontinued since 1.12, to decompile and deobfuscate the game), and in any case I did rewrite the 1.6.4 code (including vanilla) for efficiency, which would need a lot more work for 1.13+ (it could result in far larger gains though).
*This distance is due to the fact that the game is programmed to force a landmass to generate near the origin, which may affect areas up to several thousand blocks out; there is only about 1/3 as much ocean if all the areas are centered around 0,0. This also applies to newer versions as the code for 1.7+, with no changes to the land/ocean mask since then, still has the same initial continent generation (much of the oceans are later filled in but this still introduces a bias towards more land near the origin, if not as significant as in 1.6.4).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Thank you very much for your comment, it is really useful. When I visited the previous post about the rarity of biomes and saw your comment in it I knew that I could get interesting information so I checked your profile and I can saw that you really are an overly experienced Minecraft scientist.
Having said that, I understand that you have a quite different vision of what Minecraft should be or you just like more and therefore you have not abandoned version 1.6.4 but you have adapted it to your own conceptions, which is really great.
Even with your information from 1.6.4, we now have three registers or studies about Biome Generation, yours, GammaMicroscopii's and mine, each one is useful for its respective version and they allow us to appreciate that the generation of biomes has changed in these three different versions.
The fact about Amidst I really did not know, much less that of Mojang, it is a pity that currently both go so badly for that type of programming practice. I am not a professional in the field of programming, I studied Java for a semester and after that I spent more time on web programming so I do not know many things and I have never studied the internal code of Minecraft, however, having read many posts and seen little code snippets that really show very strange things in the way Mojang works, I want to believe that although it is somewhat unfortunate there was a time when they changed certain things and never solved them, therefore the code that was added was accumulating in bad practices as if it were a snowball that grows more and more.
Regarding the 16384 blocks of distance, I'm glad to know that data, because of the 125 images only 25 refer to 0.0, all the others are further away from the number of blocks you comment.
Again, thanks for the comment, it was really interesting and educational.