The Globe world type is a new world type that changes how biomes and structures are generated.
World Size
You can customize this world type just as you can customize a superflat world. You are able to select the size, which is the length and width of the world; You can choose 1,000 blocks wide or anything greater. Instead of the normal world border, each edge of the world ends with ocean, with the "border" being extremely dense fog.
At least one of every biome* and structure will generate in this world.
* By this I mean general biomes; there will always be a jungle biome, but not necessarily a jungle edge biome.
Biome Generation
With this world type enabled, biomes are generated in a specific order based on their temperatures. The hottest biomes are always at the middle (between north edge and south edge) of the world, and the coldest biomes are always at the northernmost and southernmost parts rows of the world. The biomes that generate in between, while abiding by temperature rules, are still pretty random like in vanilla.
Expanding the World
When you click the world and select "edit" there is a new option: expand. Clicking this will allow you to enter a new size that is greater than the original size. After doing this, the world edges will be expanded the next time you play.
Conclusion
With this new world type, you have the option of having finite worlds, which allow you to have easier access to every structure and biome (i.e. you don't have to travel 10,000 blocks to one, unless you make the world that large) and a more predictable order of biomes.
At least one of every biome* and structure will generate in this world.
Pretty sure this is already the case in default worlgen. Also, doesn't JungleEdge always spawn where Jungle meets something else (besides River, which are probably generated differently to allow them to cut through terrestrial biomes), as in the game manually changes the result? I don't recall seeing a Jungle pop up that wasn't bordered by JungleEdge, but Minecraft worlds are big and numerous so maybe I just didn't notice.
With this world type enabled, biomes are generated in a specific order based on their temperatures. The hottest biomes are always at the middle (between north edge and south edge) of the world, and the coldest biomes are always at the northernmost and southernmost parts rows of the world. The biomes that generate in between, while abiding by temperature rules, are still pretty random like in vanilla.
Why fix the poles in this orientation? Seems like you should be able to choose between at least north-south and east-west, if not also the diagonals or even doing something impossible (ie, north-west). The only reason biome generation seems so random in default gen is that the Minecraft world has no polarity to it.
Expanding the world
Why would you expand it? You've already guaranteed at least one of every structure would appear. Also, for world size, 1000 blocks as a minimum is freakishly small...to the point that it would directly and probably catastrophically fall into contradiction with the guarantee of at least one structure appearing. Probably should be a minimum of 3000-5000. Also, is there any maximum other than the traditional 60 million?
Spheres in Minecraft are verboten
What happens at the world border, given your characterization of this world as globular? Do you simply turn around and go to the opposite edge of the map, or would it be like a dimension change where you teleport to the other side of the map?
Pretty sure this is already the case in default worlgen. Also, doesn't JungleEdge always spawn where Jungle meets something else (besides River, which are probably generated differently to allow them to cut through terrestrial biomes), as in the game manually changes the result? I don't recall seeing a Jungle pop up that wasn't bordered by JungleEdge, but Minecraft worlds are big and numerous so maybe I just didn't notice.
I meant the Jungle Edge M, which is very rare and requires very specific conditions to spawn.
Why fix the poles in this orientation? Seems like you should be able to choose between at least north-south and east-west, if not also the diagonals or even doing something impossible (ie, north-west). The only reason biome generation seems so random in default gen is that the Minecraft world has no polarity to it.
The diagonals are an interesting idea, but going east-west would not have any difference from going north-south considering it's a square world.
Why would you expand it? You've already guaranteed at least one of every structure would appear. Also, for world size, 1000 blocks as a minimum is freakishly small...to the point that it would directly and probably catastrophically fall into contradiction with the guarantee of at least one structure appearing. Probably should be a minimum of 3000-5000. Also, is there any maximum other than the traditional 60 million?
You would expand it if a new update came out and you wanted to have new biomes, structures, or ores in your world. One thousand blocks has worked perfectly fine on the Console Edition— and do keep in mind that that's the minimum and not the recommended size. It's certainly possible to generate all structures and biomes in it; the biomes would just have to be small.
What happens at the world border, given your characterization of this world as globular? Do you simply turn around and go to the opposite edge of the map, or would it be like a dimension change where you teleport to the other side of the map? I described this at the beginning of the post: "Instead of the normal world border, each edge of the world ends with ocean, with the "border" being extremely dense fog." It's a normal world border, but the world is always surrounded by an ocean.
With the way biomes are placed it isn't possible to guarantee that every biome (or at least the main variants) will generate, and structures are even harder to guarantee, especially rarer ones (e.g. woodland mansions use a 80x80 chunk (1280x1280 blocks) grid with a single point chosen within each region, which only generates a mansion if it happens to be roofed forest within a 32 block radius). Console editions did attempt to compensate for limited world sizes by making biomes smaller and structures more common, to the point where it was possible to find two mansions within sight, or multiple villages overlapping (on Java you can reduce their spacing in Superflat to a minimum of 9, which makes them 12.6 times more common than the default spacing of 32; I set it to 24, or about 1.8 times more common, in TMCW to offset their biomes being rarer).
One way this could be solved would be to generate a biome map in memory and check to see if every biome is present, recreating the map until it succeeds, with the "magic number" (a value based on the world seed, which modifies the RNG used to generate the biome map) saved so the game doesn't need to do this every time it loads the world; the same thing could be done for structures, as I do in my own mod to ensure that the rarest types of caves generate within 1056 blocks of the origin (even such a small area takes me about half a year of caving for several hours per day to explore):
I do not save the "seedModifier" values since the time needed to find successful values, even at the maximum of 100 attempts, is negligible, though it could take a lot longer if the features were biome-dependent and the biomes were only a small fraction of the map (in this case they are excluded from near the origin but the area remaining is still about 2/3 of the total area):
// Ensures that at least one colossal cave system and giant cave region exist within 66 chunks or
// 1056 blocks of the origin by incrementing seedModifiers until it is successful (100 attempts is
// far more than should ever be needed). Range * 2 should be a multiple of 12.
int range = 66;
long[] seedModifiers = this.rand.getSeedModifiers();
colossalCaveCheck:
for (int i = 0; i < 100; ++i)
{
this.colossalCaveRNG.setSeedModifiers(seedModifiers);
for (int z = -range; z <= range; ++z)
{
for (int x = -range; x <= range; ++x)
{
if (this.validColossalCaveLocation(x, z, x * x + z * z))
{
break colossalCaveCheck;
}
}
}
++seedModifiers[i & 1];
}
seedModifiers = this.rand.getSeedModifiers();
giantCaveRegionCheck:
for (int i = 0; i < 100; ++i)
{
this.regionalCaveRNG.setSeedModifiers(seedModifiers);
// Only checks once every 12 chunks as regional caves are 12x12 chunks in size
for (int z = -range; z <= range; z += 12)
{
for (int x = -range; x <= range; x += 12)
{
if (this.validRegionalCaveLocation(x, z, x * x + z * z) && this.isGiantCaveRegion(x, z))
{
break giantCaveRegionCheck;
}
}
}
++seedModifiers[i & 1];
}
For perspective, this is a 2048x2048 block area centered around 0,0; it does have at least one of every underground feature with the possible exception of "jungle caves", which only generate within at least a 3x3 chunk area of jungle, and biomes aren't included here (the way biomes are placed in TMCW virtually guarantees at least one jungle biome in this area though, I found several within a similar area in my last world). There are also no strongholds, despite a closer minimum distance of 640 blocks (similar to before 1.9, but they generate in unlimited numbers and not in rings), but this would be easy to fix for limited-size worlds:
Also, I'd prefer a world type where biomes could be placed anywhere, not just within large zones of the same few biomes, which would greatly increase the chances of having every biome; for example, there are 31 different main biome variants here, as well as at least one of every surface and underground structure, although many biomes are still missing (an area of roughly one level 4 map will have an average of 64 biomes, as their scale is 256x256 blocks. Vanilla 1.7+ makes several biomes much larger, and there are oceans to consider); even across 4 separate worlds I still haven't found a couple biomes that have been present since the first version (I generally explore no more than 1500 blocks from spawn and about one level 4 map overall):
An in-game map wall of the world made with level 3 maps (1024x1024) to show its size; I spent 121 play sessions caving, with the only exploration otherwise being to find a stronghold (the extension off to the northwest seen above, which was mapped out on a separate level 4 map; otherwise, I stop exploring when I move off the edge of the maps I carry while caving, which are copies of the maps used here):
I meant the Jungle Edge M, which is very rare and requires very specific conditions to spawn.
The part in red is a biome. The part in blue is not a biome, it's a flag set based on a random value, which can probably vary within different iterations of the same seed.
The part in red is a biome. The part in blue is not a biome, it's a flag set based on a random value, which can probably vary within different iterations of the same seed.
That is incorrect; "M" biomes are just as much of a biome as their regular counterparts, with their own biome ID and everything, and they are not randomized within different instances of the same seed - how would the game even know how to consistently generate them across chunk borders if it didn't used a constant coordinate-based seed? You'd just get a random jumbled mess, like cave systems prior to Beta 1.8 (the game didn't properly set a seed value so tunnels would change across chunk borders; the same bug affected the Nether until 1.5. Even then, the generation was consistent from seed to seed).
Here is the code that places "M" biomes", with a 1 in 29 chance per "area", which is the size of a "hills" sub-biome (1/4 the scale or 1/16 the area of a full-sized biome) - note the very first line, which is done in every "GenLayer" class to set the chunk seed - if there were an error here "hills" sub-biomes would also be messed up and they are most definitely not, nor does AMIDST/Chunkbase/etc show changes across iterations of the same seed (1.13 did cause some changes in the positions of "M" biomes, as well as some other changes, as seen in this example):
this.initChunkSeed((long)(j + areaX), (long)(i + areaY));
int k = aint[j + 1 + (i + 1) * (areaWidth + 2)];
int l = aint1[j + 1 + (i + 1) * (areaWidth + 2)];
boolean flag = (l - 2) % 29 == 0;
Biome biome = Biome.getBiomeForId(k);
boolean flag1 = biome != null && biome.isMutation();
if (k != 0 && l >= 2 && (l - 2) % 29 == 1 && !flag1)
{
// Places "M" variants of biomes
Biome biome3 = Biome.getMutationForBiome(biome);
aint2[j + i * areaWidth] = biome3 == null ? k : Biome.getIdForBiome(biome3);
}
else
{
// Code that places "hills" sub-biomes, like Desert Hills (1/3 chance per "area")
}
// Presumably places "M" variants of "hills" sub-biomes (the first part takes priority over "hills" entirely)
int j2 = Biome.getIdForBiome(biome1);
if (flag && j2 != k)
{
Biome biome2 = Biome.getMutationForBiome(biome1);
j2 = biome2 == null ? k : Biome.getIdForBiome(biome2);
}
https://github.com/ObelouixServer/Minecraft-1.12/blob/master/src/minecraft/net/minecraft/world/gen/layer/GenLayerHills.java
The Globe world type is a new world type that changes how biomes and structures are generated.
World Size
You can customize this world type just as you can customize a superflat world. You are able to select the size, which is the length and width of the world; You can choose 1,000 blocks wide or anything greater. Instead of the normal world border, each edge of the world ends with ocean, with the "border" being extremely dense fog.
At least one of every biome* and structure will generate in this world.
* By this I mean general biomes; there will always be a jungle biome, but not necessarily a jungle edge biome.
Biome Generation
With this world type enabled, biomes are generated in a specific order based on their temperatures. The hottest biomes are always at the middle (between north edge and south edge) of the world, and the coldest biomes are always at the northernmost and southernmost parts rows of the world. The biomes that generate in between, while abiding by temperature rules, are still pretty random like in vanilla.
Expanding the World
When you click the world and select "edit" there is a new option: expand. Clicking this will allow you to enter a new size that is greater than the original size. After doing this, the world edges will be expanded the next time you play.
Conclusion
With this new world type, you have the option of having finite worlds, which allow you to have easier access to every structure and biome (i.e. you don't have to travel 10,000 blocks to one, unless you make the world that large) and a more predictable order of biomes.
Check out my suggestions! Here is one of them:
Pretty sure this is already the case in default worlgen. Also, doesn't JungleEdge always spawn where Jungle meets something else (besides River, which are probably generated differently to allow them to cut through terrestrial biomes), as in the game manually changes the result? I don't recall seeing a Jungle pop up that wasn't bordered by JungleEdge, but Minecraft worlds are big and numerous so maybe I just didn't notice.
Why fix the poles in this orientation? Seems like you should be able to choose between at least north-south and east-west, if not also the diagonals or even doing something impossible (ie, north-west). The only reason biome generation seems so random in default gen is that the Minecraft world has no polarity to it.
Why would you expand it? You've already guaranteed at least one of every structure would appear. Also, for world size, 1000 blocks as a minimum is freakishly small...to the point that it would directly and probably catastrophically fall into contradiction with the guarantee of at least one structure appearing. Probably should be a minimum of 3000-5000. Also, is there any maximum other than the traditional 60 million?
What happens at the world border, given your characterization of this world as globular? Do you simply turn around and go to the opposite edge of the map, or would it be like a dimension change where you teleport to the other side of the map?
I can understand wanting all biomes within some distance of spawn but what's the reason for limiting the size?
Just testing.
Responses in bold.
The size limit determines how far apart the structures are and how large the biomes will generate.
Check out my suggestions! Here is one of them:
Why would this be needed?
Why do we even need this?
My suggestions: Enhancements - Throwable Fire Charges - On Phantoms and Elytra. Also check out The Minecraftian Language. This signature is not here to waste your space.
With the way biomes are placed it isn't possible to guarantee that every biome (or at least the main variants) will generate, and structures are even harder to guarantee, especially rarer ones (e.g. woodland mansions use a 80x80 chunk (1280x1280 blocks) grid with a single point chosen within each region, which only generates a mansion if it happens to be roofed forest within a 32 block radius). Console editions did attempt to compensate for limited world sizes by making biomes smaller and structures more common, to the point where it was possible to find two mansions within sight, or multiple villages overlapping (on Java you can reduce their spacing in Superflat to a minimum of 9, which makes them 12.6 times more common than the default spacing of 32; I set it to 24, or about 1.8 times more common, in TMCW to offset their biomes being rarer).
One way this could be solved would be to generate a biome map in memory and check to see if every biome is present, recreating the map until it succeeds, with the "magic number" (a value based on the world seed, which modifies the RNG used to generate the biome map) saved so the game doesn't need to do this every time it loads the world; the same thing could be done for structures, as I do in my own mod to ensure that the rarest types of caves generate within 1056 blocks of the origin (even such a small area takes me about half a year of caving for several hours per day to explore):
For perspective, this is a 2048x2048 block area centered around 0,0; it does have at least one of every underground feature with the possible exception of "jungle caves", which only generate within at least a 3x3 chunk area of jungle, and biomes aren't included here (the way biomes are placed in TMCW virtually guarantees at least one jungle biome in this area though, I found several within a similar area in my last world). There are also no strongholds, despite a closer minimum distance of 640 blocks (similar to before 1.9, but they generate in unlimited numbers and not in rings), but this would be easy to fix for limited-size worlds:
Also, I'd prefer a world type where biomes could be placed anywhere, not just within large zones of the same few biomes, which would greatly increase the chances of having every biome; for example, there are 31 different main biome variants here, as well as at least one of every surface and underground structure, although many biomes are still missing (an area of roughly one level 4 map will have an average of 64 biomes, as their scale is 256x256 blocks. Vanilla 1.7+ makes several biomes much larger, and there are oceans to consider); even across 4 separate worlds I still haven't found a couple biomes that have been present since the first version (I generally explore no more than 1500 blocks from spawn and about one level 4 map overall):
An in-game map wall of the world made with level 3 maps (1024x1024) to show its size; I spent 121 play sessions caving, with the only exploration otherwise being to find a stronghold (the extension off to the northwest seen above, which was mapped out on a separate level 4 map; otherwise, I stop exploring when I move off the edge of the maps I carry while caving, which are copies of the maps used here):
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?
The part in red is a biome. The part in blue is not a biome, it's a flag set based on a random value, which can probably vary within different iterations of the same seed.
That is incorrect; "M" biomes are just as much of a biome as their regular counterparts, with their own biome ID and everything, and they are not randomized within different instances of the same seed - how would the game even know how to consistently generate them across chunk borders if it didn't used a constant coordinate-based seed? You'd just get a random jumbled mess, like cave systems prior to Beta 1.8 (the game didn't properly set a seed value so tunnels would change across chunk borders; the same bug affected the Nether until 1.5. Even then, the generation was consistent from seed to seed).
Here is the code that places "M" biomes", with a 1 in 29 chance per "area", which is the size of a "hills" sub-biome (1/4 the scale or 1/16 the area of a full-sized biome) - note the very first line, which is done in every "GenLayer" class to set the chunk seed - if there were an error here "hills" sub-biomes would also be messed up and they are most definitely not, nor does AMIDST/Chunkbase/etc show changes across iterations of the same seed (1.13 did cause some changes in the positions of "M" biomes, as well as some other changes, as seen in this example):
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?