minutor icon indicating copy to clipboard operation
minutor copied to clipboard

Variable Biomes along Y axis resulting in reduced Biome information stored on disk

Open EtlamGit opened this issue 6 years ago • 3 comments

Starting with 19w36a Minecraft supports variable Biome along the Y Axis.

Information on disk is stored in 1024 integers instead of 256 integers like before. This is less information along X and Z axis. Now one element represents a 4x4x4 part of the Chunk. Real Biome data is interpolated inside the Minecraft Client during run-time and no longer present in the stored data on disk.

To be able to use Biome data per Block (as possible with older versions) this algorithm has to be extracted from the Minecraft source code. Also neighboring Chunks would be needed, as interpolation depends on Biome data in adjacent Chunks. This is not possible with the current Minutor architecture. -> we will support only 4x4x4 parts as Biome

EtlamGit avatar Nov 24 '19 12:11 EtlamGit

Stored data on disk: grafik

Real Biome data used in Minecraft Server and Client: grafik

EtlamGit avatar Nov 24 '19 12:11 EtlamGit

Interesting exploration, thanks. I ran into the same thing in Mineways, and am not bothering being too clever with this stuff for now. I have to admit I don't see an obvious algorithm as to how they decide what biome to use for each individual pixel - maybe there's some noise function layered on? Ugh.

erich666 avatar Dec 07 '19 18:12 erich666

I assume that the stored data is enough to let the normal Chunk generation algorithm know how to recalculate the finer resolution. So, just repeat some part of the typical Chunk generation.

Main problem for Minutor is, that it seems to be dependent on neighboring Chunks. And we are not able to look into them during Biome loading.

EtlamGit avatar Dec 08 '19 10:12 EtlamGit