Back in 1.11, some players were grumbling about having to create a new world, or explore ridiculously far out to the "virgin chunks" to have hope of finding a woodland mansion. (They're pretty rare anyway).
Similar things have happened with any big update, the most iconic is probably the adventure update, 1.8 Beta, which introduced generated structures. Villages, ravines, and abandoned mineshafts all came in this one update, in case you've forgotten. And while many players call forfeit to these updates and create new worlds, some go on and deal with having to journey to more and more distant chunks.
I'm calling these types of worlds, which have had multiple types of terrain generation infused within it through Minecraft history, polyworlds. You can call it whatever you want, but it's the word I just happened to pick.
As we've seen with polyworlds, when the borders of the old and new chunks meet, the game makes no hesitation to switch over to the new form of terrain generation. Many times this creates the effect of dramatic walls or sudden cliffs. And this can happen many more times than just once, if you play on a world long enough.
But what if, I thought, the world borders cut off on a generated structure?
I carried out an experiment then, figured out how far Steve's render distance was on an old version of Minecraft, found a village on 1.11, went to that same seed on 1.8 Beta (a version from ages ago) and walked close enough to load half of the village's chunks.
Then I converted to 1.11, and walked to the results and was pleased all-the-while perplexed. Firstly, the operation was a success. Through Polyworld-based mechanics, we can find half-structures. Like I said, arguably these are then the most rare structures one can find, as the conditions for one to generate are so scarce.
Although I didn't want to ramble on and on too much in the video, I want to bring up one thing that caught my interest. The village that was "cut off" with the borders of old and new chunks, actually slightly leaked over into the old chunks. Not only did it slightly leak over, but what would be the grass road actually adapted to the surrounding water and became a wooden dock. That's crazy! When I did this with the Woodland Mansion as shown later in the video, it was a completely clean cut, so it leads me to wonder if not all structures are generated equally.
In summary, we tackled the basic mechanics of polyworlds, and also found out half-structures can be done.
But now I'm dying to know, what's the densest possible polyworld as mentioned in the video? And what causes some structures to adapt to old chunks like the lingering village? While others just go with the flow of the new borders?
I've actually started a new series based on this idea to find out. It's called Minecraft Polyworld Creation. If you enjoyed the first video then I'm sure you'll enjoy this next analytical series too.
Anyway I hope you enjoyed my spiel and the discoveries I made. Perhaps you guys can help me figure out some of these later questions that stemmed from this initial investigation!
The reason why structures cross over into old chunks has to do with the fact that the game does not actually populate whole chunks but "offset chunks", which are offset by half a chunk so they are at the center of a 2x2 chunk area, which is done so features can cross chunk boundaries without worrying about accidentally going into unloaded chunks or having to check for whether a 3x3 chunk area is loaded (either of two things can happen if a feature went outside of loaded chunks; either they would be cut off or the game loads those chunks so it can be fully generated, the latter being what the game actually does if an unloaded chunk is accessed for any reason - potentially causing runaway world generation, a common cause of performance issues in mods as many modders do not know that the game doesn't actually decorate whole chunks).
Large structures like villages are placed using the current 16x16 area being populated as a mask so only blocks that intersect it are placed (that is, the game creates the whole structure in memory but only places it in chunk-sized sections at a time). Because of this, they will always cut off 8 blocks from the edge of generated chunks, which can easily be seen with a mapping utility.
Also, the fact that a feature (except for structures) can extend across up to a 32x32 block area accounts for additional quirks like trees that seemingly generated on sand or in midair over lakes even though that is not allowed (they can only generate on grass and dirt); despite the fact that trees generate after they do within each 16x16 region sand/lakes (and most other features) are not a single block in size so they can spill out of the 16x16 area their center is located in (this is actually listed as a bug but I really doubt it will ever be fixed, which would require major changes to how the game populates chunks, and in most cases it only causes minor aesthetic issues, many of which fix themselves, such as grass popping off when sand generates under it).
The exception to this is caves (including ravines, which are a modified form of cave and are more related to circular rooms than villages, etc), which are generated as part of the terrain before the chunk is actually created (using the terrain data to initialize it), and are generated within whole chunks using the same mask system as structures. This also means that caves can't actually cut through anything other than the terrain itself; structures like strongholds don't replace air when generating walls to give the appearance that they do (by changing a single line of code I was able to prevent this in my mod).
Polyworlds have amazed me so much. Back in 1.5, I started my first real survival world, and as updates came and went, I was building towns, and exploring land. It soon came to me that some stuff had changed; structures in the new chunks were weirded out, and I couldn't find any new structures without them being half generated. Of course, I found some eventually but they were all morphed in some way; dark oak forests generated in a preloaded birch forest; and ocean monuments being located so very far away. I still play the world today, and I only wonder how far it will take me to reach the 1.13 oceans.
That's really neat Deltachu, I'm trying to simulate that experience starting with infdev Minecraft in my YouTube series "Polyworld Creation".
I was wondering though which versions of Minecraft change terrain generation specifically, is there a list out there of all the Minecraft versions that changed terrain generation? Or will I have to dig a little bit myself haha.
The reason why structures cross over into old chunks has to do with the fact that the game does not actually populate whole chunks but "offset chunks", which are offset by half a chunk so they are at the center of a 2x2 chunk area, which is done so features can cross chunk boundaries without worrying about accidentally going into unloaded chunks or having to check for whether a 3x3 chunk area is loaded (either of two things can happen if a feature went outside of loaded chunks; either they would be cut off or the game loads those chunks so it can be fully generated, the latter being what the game actually does if an unloaded chunk is accessed for any reason - potentially causing runaway world generation, a common cause of performance issues in mods as many modders do not know that the game doesn't actually decorate whole chunks).
Large structures like villages are placed using the current 16x16 area being populated as a mask so only blocks that intersect it are placed (that is, the game creates the whole structure in memory but only places it in chunk-sized sections at a time). Because of this, they will always cut off 8 blocks from the edge of generated chunks, which can easily be seen with a mapping utility.
Also, the fact that a feature (except for structures) can extend across up to a 32x32 block area accounts for additional quirks like trees that seemingly generated on sand or in midair over lakes even though that is not allowed (they can only generate on grass and dirt); despite the fact that trees generate after they do within each 16x16 region sand/lakes (and most other features) are not a single block in size so they can spill out of the 16x16 area their center is located in (this is actually listed as a bug but I really doubt it will ever be fixed, which would require major changes to how the game populates chunks, and in most cases it only causes minor aesthetic issues, many of which fix themselves, such as grass popping off when sand generates under it).
The exception to this is caves (including ravines, which are a modified form of cave and are more related to circular rooms than villages, etc), which are generated as part of the terrain before the chunk is actually created (using the terrain data to initialize it), and are generated within whole chunks using the same mask system as structures. This also means that caves can't actually cut through anything other than the terrain itself; structures like strongholds don't replace air when generating walls to give the appearance that they do (by changing a single line of code I was able to prevent this in my mod).
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?
Polyworlds have amazed me so much. Back in 1.5, I started my first real survival world, and as updates came and went, I was building towns, and exploring land. It soon came to me that some stuff had changed; structures in the new chunks were weirded out, and I couldn't find any new structures without them being half generated. Of course, I found some eventually but they were all morphed in some way; dark oak forests generated in a preloaded birch forest; and ocean monuments being located so very far away. I still play the world today, and I only wonder how far it will take me to reach the 1.13 oceans.
That's really neat Deltachu, I'm trying to simulate that experience starting with infdev Minecraft in my YouTube series "Polyworld Creation".
I was wondering though which versions of Minecraft change terrain generation specifically, is there a list out there of all the Minecraft versions that changed terrain generation? Or will I have to dig a little bit myself haha.