I generated a world in Minecraft Infdev and converted it through the versions to simulate a legacy world being gradually updated with time and eventually being converted to the latest snapshot, the result (besides the incorrect level of water, of course) were these huge empty shafts in the newly generated layers of Deepslate and Bedrock below the Infdev map. The rest of the world looks fine, the transition between infdev and 21W43A terrain also looks fairly smooth.
Linked issues
is duplicated by 4
relates to 2
Attachments
Comments 7
Also happens in worlds first generated in early alpha versions.
From my comment from the duplicate report:
Steps to Reproduce:
Load Minecraft Alpha 1.0.4 and create a world
Upgrade to Minecraft Beta 1.6.6 and load the world
Upgrade to Minecraft 1.6.4 and load the world
Upgrade to Minecraft 21w44a and load the world
Use "Open to LAN" to enable cheats
Go to spectator mode and fly downwards below y=0
You may also use different versions but I believe this is the minimum amount of conversions needed.
The fix to this bug makes it so new terrain will generate underneat old terrain everywhere, except where there is no y0 bedrock in the entire chunk. I suggest this be reversed as this does not affect any worlds that have been generated in the last 10 years or so, and it would cause irreversible damage to all void holes that are not full chunks.
The only bug this relates to was patched 11 years ago, this is only a consequence that if anyone wanted to fix they would have done themselves in their own worlds already.
This could be marked as "working as intended" as before it was fixed, the game generated new terrain under old terrain only where there was bedrock, as it should have. The fact that these old worlds didn't have bedrock in certain blocks shouldn't matter, that was a separate bug that has already been fixed.
This could easily be fixed without annoying everyone by letting us select whether the world was created in minecraft alpha. If we select yes the world would be upgraded with this fix enabled if no then it would use the pre1 system. This choice doesn't even need to appear when upgrading every world since only the veterans and more technical players are gonna have worlds that old, just hide it somewhere in the settings
Or select if the generation should be done chunk wise or column wise, basically choosing if to use pre2 or pre1 method
A fix for alpha holes is you can place below 0 caves if there is a block that isn't equal to air blocks or other invisible blocks like barriers too or glass. But if there is stone, bedrock or something it will fill below 0.
Edit: After testing around I noticed the thing I sent above is the case now as I saw it only has the columns down to 0 if the block is air as there was lava with no columns of air below it, so this should be kept marked to fixed
I just tested this in 1.18prerelease5. There are now only occasional holes where the old alpha-generated terrain had gravel instead of stone in a bedrock "hole". The gravel fell out into the void and left behind a proper 1x1 or 1x2 air hole in the bedrock. This hole is then converted to a hollow 1x1 or 1x2 shaft by prerelease5.
Maybe the algorithm could check that the bedrock hole is bigger than 1x2, and only then generate a hollow shaft? Maybe a minimum size of 2x2?
Relates to MC-239888