ThisTestUser / FarLandsChronicles

A documentation of a journey into the far lands
5 stars 1 forks source link

The Fringe Lands #15

Open allamassal opened 1 year ago

allamassal commented 1 year ago

If you think the "Farthest" Lands are the farthest, you're in for a surprise. There is actually one more set of Far Lands that would appear far beyond the 64-bit integer limit that has already been seen in Bedrock Edition and that can be found in Java Edition as well by setting coordinateScale to extremely large values. This is in fact the degrading phenomenon from Bedrock Edition, which I refer to as the "Fringe Lands".

The Fringe Lands are caused by floating-point overflows related to the polynomial equation that Minecraft uses to calculate certain terms for interpolation, and begin at a staggering 8.1751x10^48 blocks on the X axis (12559913 in Bedrock) and about 9x10^48 blocks on the Z axis. On the X axis, there are four distinct stages (caused by the lerp functions performed on the noise fraction values), with the terrain really breaking down at 9.17624x10^48 on the X axis and thinning out to one-block lines at X = 1.029998x10^49. The true equivalent of 12,758,545 in BE is 1.8283327x10^59 in JE, although additional octaves' Fringe Lands cause the terrain to fizzle out well before this. On the Z axis, the Edge Far Lands dissipate into a skygrid, which begins to noticeably thin out after around 4x10^49 blocks, with some dotted lines having a rare chance to generate as far as Z = 2.359x10^51.

The further the other axis is past 12550824, the sooner the Fringe Lands will appear, as the interpolation terms on both axes are multiplied. At 1004065920 on the other axis, they appear at "just" 3x10^39 blocks, and when travelling along both axes, the Fringe Lands appear at around 4.4x10^25 blocks on both axes. On most worlds, the Corner Fringe Lands will appear as a skygrid, however, some worlds have thin layers. For whatever reason, the skygrid/comb artifacts generate in Beta 1.7.3 but not in 1.12.2.

Bedrock Edition uses 32-bit floats, which are capped at 2^128, for just about everything (including values used in noise generation), which explained basically all of the oddities of its Far Lands, including the Fringe Lands appearing early on. However, Java Edition uses doubles for these values, which are capped at 2^1024.

2021-10-15_10 07 18 2021-10-23_10 26 07