Minecraft:Java Edition distance effects: Difference between revisions
More actions
Sync: updated from Minecraft |
Sync: updated from Minecraft |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{Italic title|Java Edition}} | |||
{{about|effects which arise due to floating-point precision loss|effects which arise due to integer limits|Java Edition hard limits|other uses|Distance effects}} | {{about|effects which arise due to floating-point precision loss|effects which arise due to integer limits|Java Edition hard limits|other uses|Distance effects}} | ||
{{Misleading}}{{Missing information| | {{Misleading}}{{Missing information| | ||
| Line 9: | Line 10: | ||
{{info needed section|{{bug|MC-308844}}}} | {{info needed section|{{bug|MC-308844}}}} | ||
<!-- This is correct, the world border is one chunk away from 30 million blocks. --> | <!-- This is correct, the world border is one chunk away from 30 million blocks. --> | ||
''This section describes distance effects that occur at X/Y/Z coordinates between ±(0 | ''This section describes distance effects that occur at X/Y/Z coordinates between ±(0 - 29,999,984).'' | ||
=== Horizontal effects === | === Horizontal effects === | ||
| Line 41: | Line 42: | ||
{{disclaimer|section=1}} | {{disclaimer|section=1}} | ||
''This section describes distance effects that occur at X/Y/Z coordinates between ±(29,999,984 | ''This section describes distance effects that occur at X/Y/Z coordinates between ±(29,999,984 - {{tooltip|{{^|2|31}} − 1|2,147,483,647}}).'' | ||
Horizontal distances beyond 30 million blocks cannot be reached without modifications to the game's code. | Horizontal distances beyond 30 million blocks cannot be reached without modifications to the game's code. | ||
| Line 91: | Line 92: | ||
{{disclaimer|section=1}} | {{disclaimer|section=1}} | ||
''This section describes distance effects that occur at X/Y/Z coordinates between ±({{tooltip|{{^|2|31}}|2,147,483,648}} | ''This section describes distance effects that occur at X/Y/Z coordinates between ±({{tooltip|{{^|2|31}}|2,147,483,648}} - {{tooltip|{{^|2|63}} − 1|9,223,372,036,854,775,807}}).'' | ||
The [[Minecraft:wikipedia:Double-precision floating-point format|standard format for doubles]] dedicates 52 bits to the fraction, as opposed to the 23 bits used by the [[Minecraft:wikipedia:Single-precision floating-point format|32-bit float]]. As a result, beyond 2{{^|30}} (1,073,741,824) blocks, the player would only be off by (2{{^|30}}) / (2{{^|52}}) = 1/2{{^|22}} = {{frac|1|4194304}} blocks, which is absolutely indistinguishable from the distance back at spawn. This is around equivalent to the precision of 2 to 4 blocks out on ''Bedrock Edition''. | The [[Minecraft:wikipedia:Double-precision floating-point format|standard format for doubles]] dedicates 52 bits to the fraction, as opposed to the 23 bits used by the [[Minecraft:wikipedia:Single-precision floating-point format|32-bit float]]. As a result, beyond 2{{^|30}} (1,073,741,824) blocks, the player would only be off by (2{{^|30}}) / (2{{^|52}}) = 1/2{{^|22}} = {{frac|1|4194304}} blocks, which is absolutely indistinguishable from the distance back at spawn. This is around equivalent to the precision of 2 to 4 blocks out on ''Bedrock Edition''. | ||
| Line 134: | Line 135: | ||
| | | | ||
* All entities are on the edges of blocks. As a result, all entities less than 1 block wide (including [[Minecraft:Player|players]]) always fall through blocks. | * All entities are on the edges of blocks. As a result, all entities less than 1 block wide (including [[Minecraft:Player|players]]) always fall through blocks. | ||
** If only 1 coordinate exceeds this value, blocks still have collision detection from the side. | |||
* The minimum movement speed is increased to 10 blocks per second. | * The minimum movement speed is increased to 10 blocks per second. | ||
|- | |- | ||
| Line 146: | Line 148: | ||
|X/Z ±18,014,398,509,481,984 (±2{{^|54}}) | |X/Z ±18,014,398,509,481,984 (±2{{^|54}}) | ||
| | | | ||
* In older versions of ''Java Edition'', horizontal block rendering stops completely, leaving only vertical block rendering in it's place, marking the start of the "Slice Lands". Blocks whose sides are "concealed" | * In older versions of ''Java Edition'', horizontal block rendering stops completely, leaving only vertical block rendering in it's place, marking the start of the "Slice Lands". Blocks whose sides are "concealed" are completely invisible without a Stripe Lands rendering fix. | ||
** At this point, the slices are 4 blocks apart, but the gaps widths double for every power of 2. | ** At this point, the slices are 4 blocks apart, but the gaps widths double for every power of 2. | ||
** It has become difficult to place blocks from this point onward. The player must look at an existing block and extend it along an axis. | ** It has become difficult to place blocks from this point onward. The player must look at an existing block and extend it along an axis. | ||
| Line 177: | Line 179: | ||
* The visual gaps are 64 blocks wide. | * The visual gaps are 64 blocks wide. | ||
* The minimum movement speed is increased to 640 blocks per second. | * The minimum movement speed is increased to 640 blocks per second. | ||
** At this point it would | ** At this point, it would require achieving speeds greater than the speed of sound to move, which is approximately 343 blocks per second. | ||
|- | |- | ||
|X/Z ±576,460,752,303,423,488 (±2<sup>59</sup>) | |X/Z ±576,460,752,303,423,488 (±2<sup>59</sup>) | ||
| Line 227: | Line 229: | ||
|Y ±4,503,599,627,370,496 (±2{{^|52}}) | |Y ±4,503,599,627,370,496 (±2{{^|52}}) | ||
| | | | ||
* | * The minimum movement speed is increased to 10 blocks per second, meaning that flying upwards or downwards in [[Minecraft:Creative]] becomes impossible.<ref name="heightvideo">{{YouTube link|SYuocMFOD6w|HOW HIGH / LOW CAN YOU GO in MINECRAFT?!|AntVenom|2017-04-23}}</ref> | ||
| | | | ||
|- | |- | ||
|Y ±36,028,797,018,963,968 (±2{{^|55}}) | |Y ±36,028,797,018,963,968 (±2{{^|55}}) | ||
| | | | ||
* | * The minimum movement speed is increased to 80 blocks per second, meaning that falling becomes impossible.<ref name="heightvideo" /> | ||
* Beyond this point, the game crashes if the player points their camera at a vertical 40-degree angle. | * Beyond this point, the game crashes if the player points their camera at a vertical 40-degree angle. | ||
| | | | ||
| Line 254: | Line 256: | ||
{{disclaimer|section=1}} | {{disclaimer|section=1}} | ||
''This section describes distance effects that occur at X/Y/Z coordinates between ±({{tooltip|{{^|2|63}}|9,223,372,036,854,775,808}} | ''This section describes distance effects that occur at X/Y/Z coordinates between ±({{tooltip|{{^|2|63}}|9,223,372,036,854,775,808}} - {{tooltip|{{^|2|1024}}|179,769,313,486,231,590,772,930,519,078,902,473,361,797,697,894,230,657,273,430,081,157,732,675,805,500,963,132,708,477,322,407,536,021,120,113,879,871,393,357,658,789,768,814,416,622,492,847,430,639,474,124,377,767,893,424,865,485,276,302,219,601,246,094,119,453,082,952,085,005,768,838,150,682,342,462,881,473,913,110,540,827,237,163,350,510,684,586,298,239,947,245,938,479,716,304,835,356,329,624,224,137,216}}).'' | ||
Beyond the 64-bit integer limit, the precision loss becomes greater by every passing exponent of two that is passed. | Beyond the 64-bit integer limit, the precision loss becomes greater by every passing exponent of two that is passed. | ||
Latest revision as of 11:19, 13 September 2026
|
For the {{{Description}}} of the same name, see [[{{{Destination}}}]]. |
Template:MisleadingTemplate:Missing informationTemplate:Exclusive
Template:IN, certain game mechanics start to break down as the player's distance from the center of the world increases.
Vanilla bounds
Template:Info needed section This section describes distance effects that occur at X/Y/Z coordinates between ±(0 - 29,999,984).
Horizontal effects
- World
- Minecraft:The End's generation is completely absent in repeating concentric rings centered on the world.<ref name=":3">Template:Bug</ref>Template:Until
- Temperature distribution breaks at high distances,<ref name="snow">Template:Bug</ref> which can be easily noticed with the creation of Minecraft:snow and Minecraft:ice in Minecraft:mountains appearing blockier due to both world generation and subsequent regeneration from snowfall or freezing.
- Sounds
- Many break down slightly.<ref name="audio">Template:Bug</ref>
- Becomes considerably more pronounced beyond vanilla bounds at 2Template:^ (268,435,456) blocks.
Vertical effects
| Coordinates | Effects | Example |
|---|---|---|
| Y ±2,048 (±2Template:^) |
|
|
| Y ±8,388,608 (±2Template:^) |
|
- Rain and snow jitter and appear distorted at large heights.<ref name="rain">Template:Bug</ref>
Beyond the vanilla world boundary
This section describes distance effects that occur at X/Y/Z coordinates between ±(29,999,984 - Template:Tooltip).
Horizontal distances beyond 30 million blocks cannot be reached without modifications to the game's code.
Vertical distances beyond 20 million blocks cannot be reached with the Template:Cmd command; they can only be reached by using external programs (e.g. Minecraft:NBT editors), or by modifying the game's code to remove this limitation.
Horizontal effects
| Coordinates | Effects | Example |
|---|---|---|
| X/Z ±33,554,432 (±2Template:^) |
|
|
| X/Z ±268,435,456 (±2Template:^) |
|
|
| X/Z ±536,870,912 (±229) |
|
|
| X/Z ±1,073,741,824 (±2Template:^) |
|
|
| X/Z ±2,147,483,647 (±2Template:^ − 1) |
|
Beyond the 32-bit limit
This section describes distance effects that occur at X/Y/Z coordinates between ±(Template:Tooltip - Template:Tooltip).
The standard format for doubles dedicates 52 bits to the fraction, as opposed to the 23 bits used by the 32-bit float. As a result, beyond 2Template:^ (1,073,741,824) blocks, the player would only be off by (2Template:^) / (2Template:^) = 1/2Template:^ = Template:Frac blocks, which is absolutely indistinguishable from the distance back at spawn. This is around equivalent to the precision of 2 to 4 blocks out on Bedrock Edition.
Each doubling, however, indeed halves the precision used, up to a point where every single element of the game ends up breaking down.
Horizontal distances beyond the 32-bit integer limit (X/Z ±2,147,483,647) cannot be reached without substantial modifications to the game's code.
64-bit precision loss
Minecraft: Java Edition uses 64-bit floating point precision for entity positions and other calculations. Several mechanics which do not break down within vanilla bounds break down at very high distances similarly to Bedrock Edition.
Horizontal effects
| Coordinates | Effects | Examples |
|---|---|---|
| X/Z ±2,147,483,648 (±2Template:^) |
| |
| X/Z: ±25,769,803,764 (±(231 − 1)×12) |
| |
| X/Z ±68,719,476,736 (±2Template:^) |
| |
| X/Z ±281,474,970,710,656 (±2Template:^) |
| |
| X/Z ±2,251,799,813,685,248 (±2Template:^) |
| |
| X/Z ±4,503,599,627,370,496 (±2Template:^) |
| |
| X/Z ±9,007,199,254,740,992 (±2Template:^) |
|
|
| X/Z ±18,014,398,509,481,984 (±2Template:^) |
| |
| X/Z ±36,028,797,018,963,968 (±255) |
| |
| X/Z ±72,057,594,037,927,936 (±256) |
| |
| X/Z ±144,115,188,075,855,872 (±2Template:^) |
| |
| X/Z ±288,230,376,151,711,744 (±258) |
| |
| X/Z ±576,460,752,303,423,488 (±259) |
| |
| X/Z ±1,152,921,504,606,846,976 (±260) |
| |
| X/Z ±2,305,843,009,213,693,952 (±261) |
| |
| X/Z ±4,611,686,018,427,387,904 (±262) |
| |
| X/Z ±9,223,372,036,854,775,807 (±2Template:^ − 1) |
|
Vertical effects
| Coordinates | Effects | Example |
|---|---|---|
| Y ±2,147,483,648 (±2Template:^) |
|
|
| Y ±281,474,970,710,656 (±2Template:^) |
|
|
| Y ±4,503,599,627,370,496 (±2Template:^) |
|
|
| Y ±36,028,797,018,963,968 (±2Template:^) |
|
|
| Y ±36,893,488,147,419,103,232 (±265) |
|
Stripe Lands
As 52 bits are dedicated to the fraction in the double format rather than 23 in the single format, after 2Template:^ or 9,007,199,254,740,992 blocks out, precision breaks to consider only every second block, and so on. The rendering breaks down in an effectively identical manner to Bedrock Edition and yields the famous Stripe Lands as a result.
Fluids break down differently from blocks; while block rendering breaks down to form the usual stripes, fluids instead stretch to the size of the precision loss, with the initiation of the Stripe Lands causing each liquid to become two blocks long, then four at the next doubling, and so on.
In older versions, beyond 2Template:^ blocks, the world would render similarly to the Slice Lands of Bedrock Edition, in newer versions (starting from around 1.12, or even earlier), the world renders stripes with a larger distance between them instead.
In modern versions of Java Edition (1.14 and later) the game freezes when the Stripe Lands are rendered, so a Stripe Lands rendering fix is required to traverse further.
Beyond the 64-bit limit
This section describes distance effects that occur at X/Y/Z coordinates between ±(Template:Tooltip - Template:Tooltip).
Beyond the 64-bit integer limit, the precision loss becomes greater by every passing exponent of two that is passed.
Vertical effects
- Entity positions lose precision when the player passes every exponent of two.
- The skybox flashing continues until 2Template:^.
- The player cannot surpass 2Template:^ on the Y axis as that is the position limit for 64-bit floats. This cannot be surpassed without a rework of the game's coordinate system.<ref name="heightvideo" />
Analysis
Due to precision loss becoming more extreme at greater distances, features affected at it behave different depending on how far out they are.
Rain/snow rendering
First affected bracket:
First affected version: Unspecified Classic
Last affected version: Indev 2010-02-14
Second affected bracket:
First affected version: Alpha v1.0.4
Last affected version: Alpha v1.1.2_01
Third affected bracket:
First affected version: Beta 1.6.5
Still affects the current release (26.2) and snapshot (Minecraft:26.3-snap1)
Suspected to affect as far back as Beta 1.5, but cannot be reasonably tested due to crashes
Note: This affects both rain and snow, but this can only be seen with rain in versions prior to 1.7.2 because temperature did not change with height in these versions.
- 16,384 - 262,143 blocks
Beyond this point on the Y axis one can start to see the first signs of snow/rain jittering. Up to 65,535 blocks. this can only be reasonably seen with snowflakes with a mainly horizontal trajectory, as vertical traveling snowflakes are moving at a speed where travel still appears mostly smooth. Beyond 65,536 and especially 131,072 blocks, the effect becomes very obvious for almost all snow.
- 262,144 - 2,147,483,647 blocks
The first signs of geometrical distortion in the snow itself can be seen. Very little non-misshapen snow is present beyond here, and most of it has transformed into either lone rectangles, or the odd paired rectangles similar in shape to a pause button.
Deformity progresses after every power of two surpassed from this point. Past 16,777,216 blocks, snow becomes a near unrecognizable pattern of suspended vertical lines.
- 2,147,483,648+ blocks
Beyond this point, snow stops rendering. The sky itself still renders correctly. When the player goes below the 32-bit integer limit, rain appears for an unknown reason.
Sound positioning errors
Become very severe beyond 2Template:^ (268,435,456) blocks, where many sounds are simply no longer audible at all.
Temperature distribution breakdown
First affected version: Minecraft:16w02a
Still affects the current release (26.2) and snapshot (Minecraft:26.3-snap1)
- 16,777,216 - 33,554,431 blocks
As snowfall/rainfall is handled on a per-block basis, the effects of precision loss here can only be seen once precision itself can no longer represent blocks (integers) individually.
Beyond this point, while perhaps not immediately obvious (especially due to the vertical variation in almost all biomes where this effect can be seen), the patterns resulting from snow landing on surfaces become much more angular than before, being commonly composed of large rectangles, thin lines and lone dots which are either filled with snow or have it completely absent. This is similarly true of water, with ice corresponding to cold blocks and water to warmer blocks.
As temperature varies with height, in order to properly see the effects of this, it is strongly recommended to build a flat plane for snow to accumulate on instead, or to generate a Minecraft:Superflat world with snow/ice set to generate with it as it would naturally. A modified Tunneler's Dream preset set to generate 94 layers of black concrete (Looking At Block should say 93 for the top concrete layer) is ideal for this case, providing a roughly 50/50 density of snowy and clear blocks, with black providing maximum contrast.
Teleporting to 16,777,216 on both axes should show four quadrants - one with normal looking snow/ice generation, and three with far more angular features due to the precision loss exceeding a full block. During times of precipitation, it can be seen that the blocky patterns of snow/ice match up with the weather directly above - snowy areas have snowfall where areas with no snow cover have rain. This is obviously true anywhere and is unrelated to precision loss, but (especially in the case of already-generated worlds) this can be used to prove that the precision loss lies with temperature calculation and is not merely a world generation issue disjoint from it.
-
An example of snow generated correctly near the spawn point.
-
An example of snow generated at high distances. Notice the differing consistency composed of squares and lines.
-
Snow generated in an extreme hills biome in 1.8, showing intended behavior.
-
The exact same area as generated in 1.9, showing the newly broken generation.
- 33,554,432+ blocks
Beyond this point, temperature calculation becomes very broken depending of the axes where this position has been exceeded. If beyond this point on one axis, the terrain has clearly visible "stripes" of snow in mountain biomes. If beyond this point on both axes, snowy areas have square shapes covering several blocks (especially beyond 67,108,864 blocks). These effects can only be seen on modded versions, since terrain does not generate beyond 30,000,000 blocks in vanilla.
Historical effects
Due to the incredibly large amount of documentation on effects in older versions of the game, all such content has been relocated to Minecraft:/Historical effects.
Gallery
Stripe Lands
References
Minecraft:ja:距離効果/Java Edition Minecraft:lzh:距離之象/爪哇版 Minecraft:pt:Efeitos de distância da Edição Java Minecraft:zh:距离现象/Java版