It has often been said that the Far Lands were accidentally removed in Beta 1.8 (for example, the description on Kurt's Far Lands or Bust videos) due to terrain generation changes, which is incorrect - they were actually removed on purpose due to a bug fix. And by reverting this bug fix it is possible to get them back in current versions of the game.
The Far Lands were caused by an overflow error due to the use of 32 bit integers in the noise generator code; the odd coordinate it starts at is due to the noise generator generating noise on a scale much smaller than one block (up to 171.103 units per block, which divides the useful range by that much; 2147483647 / 171.103 = 12550824). This was fixed by dividing by 16777216 (2^24) and taking the remainder (modulo); noise repeats after only 256 steps so this has no effect on the output (256 steps doesn't sound like much but there are 16 octaves of noise, each one twice/half the frequency of the last; presumably this means that terrain, independent of biomes and landmasses/oceans, will eventually repeat if you go far enough).
Here is the code in question, located in NoiseGeneratorOctaves, and all you have to do to remove the fix is to comment out the two lines that modulo by 16777216, or change it to a much higher value; I used 4294967296 (2^32) when byte-code editing 1.8.3 since deleting bytecode in JBE doesn't properly update jump addresses (I believe the lines before and after are also be part of the fix and can also be removed, as they do nothing (subtracting, then adding the same value) without the lines between, although casting a floating point value to an int discards any fractional part):
This is also described in detail on the Wiki, which was recently updated with an explanation of exactly what caused the Far Lands, which are not due to what I thought it was (single precision floating point rounding errors).
Here is the result of removing the bug fix:
(interestingly enough, as shown here the Far Lands don't necessarily start at 12550821, the start also varies by several blocks in places)
In addition, here is a world download, created in 1.6.4 with MCEdit used to move the Far Lands chunks to the spawn point, which eliminates the odd bugs caused by floating point precision errors (e.g. gravel glitches and may not even fall, redstone doesn't render correctly, though the bugs like jittering and lag in Beta 1.7.3 aren't present; MCEdit also suffers from rendering glitches for similar reasons, which made it a bit hard to copy the chunks), as well as mods to get the Far Lands in 1.6.4 and 1.8.3:
Warning: while it also works in 1.8.3 the game had massive lag (server running behind by 200000ms) and threw errors and eventually crashed after a few minutes; this might just be my computer, which has issues even with normal vanilla worlds but 1.6.4 had no noticeable increase in lag compared to normal worlds and had no errors, aside from the odd glitches mentioned above:
[14:49:04] [Server thread/INFO]: [TheMasterCaver: Teleported TheMasterCaver to 1.25508005E7, 100.0, 1.25508005E7]
[14:49:04] [Client thread/INFO]: [CHAT] Teleported TheMasterCaver to 1.25508005E7, 100.0, 1.25508005E7
[14:49:33] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 28700ms behind, skipping 574 tick(s)
[14:50:31] [Server thread/INFO]: TheMasterCaver has just earned the achievement [Taking Inventory]
[14:50:31] [Client thread/INFO]: [CHAT] TheMasterCaver has just earned the achievement [Taking Inventory]
[14:53:00] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 207589ms behind, skipping 4151 tick(s)
[14:54:57] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 116247ms behind, skipping 2324 tick(s)
[14:56:42] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 105842ms behind, skipping 2116 tick(s)
[14:57:09] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 26135ms behind, skipping 522 tick(s)
[14:57:25] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 16229ms behind, skipping 324 tick(s)
[14:57:51] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 26079ms behind, skipping 521 tick(s)
[15:00:30] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 159057ms behind, skipping 3181 tick(s)
[15:00:38] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 8254ms behind, skipping 165 tick(s)
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: f: Exception while updating neighbours
Caused by: java.lang.StackOverflowError
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:05:20] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:05:20] [Server thread/ERROR]: Encountered an unexpected exception
f: Exception ticking world
Caused by: java.lang.RuntimeException: Already decorating
[15:05:20] [Server thread/ERROR]: This crash report has been saved to: C:\Users\\AppData\Roaming\.minecraft2\crash-reports\crash-2015-03-27_15.05.20-server.txt
(the "already decorating" errors, thrown when the biome decorator is called while it is still decorating a chunk due to generating a new chunk while an existing chunk is still being generated, suggests rounding errors when placing some feature, which must not cross over into nonexistent chunks (referencing a nonexistent chunk will cause it to be generated); using Customized to disable various features may prevent crashes)
Always remember that Jesus loves you so much that He died rather than risk spending eternity without you.
"What do you say to lunch, followed by breakfast? Because we're time travelers, and that's how we roll! Then, cocktails with Moses, and I'm going to invent a flying submarine. Why? Because no one ever has, and it's annoying!"
Interestingly enough, when you use this in 1.8, the farlands take advantage of the full height of the world, presumably because the terrain generator is able to use the full height in 1.8. This leads to some truly spectacular scenes. (Yes, that's an ice plains spikes next to a forest)
I did not experience any more lag than is usually present in 1.8, although the server is prone to fall behind a couple hundred ticks every so often. I would recommend using customized to disable gravel, as it is prone to build up falling sand entities due to precision errors. The second world I created crashed due to a stack overflow error from a sand block, leading me to also recommend disabling deserts, or at least making sure the seed doesn't have one where you're teleporting.
I also confirmed that the farlands generate exactly as they did in Beta. Here is the seed 'Glacier' and as well as looking eerily familiar at spawn, it contains the exact same farlands (in the lower half of the map) as did Beta. Here's a screenshot of a landform in 1.8.3:
and the exact same one in Beta 1.7.3:
Is there a method using the custom world type to make an entire farlands world?
You can probably get something similar, but not the same since the Far Lands are the result of a breakdown in calculations due to overflow, giving a totally different output than anything the noise generator can normally produce. This also explains why the End has terrain generating again, despite normally set to only produce terrain near the origin; I'd have thought it wouldn't work as I assumed they somehow "switched off" terrain generation beyond the island; probably they made the noise output fall off as you go further from the origin but the noise generator still produces output (land is generated when the noise value exceeds 0; when below 0 water is placed below sea level in the Overworld, lava similarly in the Nether).
Also, it isn't that surprising that Beta 1.7.3 produces the same Far Lands as current versions; the underlying noise generator is exactly the same, the only changes made afterwards is the addition of biome control of height variation, this is also why it is possible to use a customized preset to give a similar world to Beta, if not identical as Beta also had some other differences, most notably in how land and oceans were generated (i.e. the game currently decides if an area will be a continent or an ocean, using a separate noise generator, then assigns biomes based on which one they are; beyond this, oceans are only water because the "minHeight" and "maxHeight" values are set for below sea level terrain; you could mod the code so they have the values Extreme Hills uses and vice-versa and they be switched around in appearance).
One thing I didn't mention is that sand always generates sandstone underneath it provided a space of more than one block. That's why none of the sand is falling.
Neat! I never knew this! I always thought it would be extremely hard to bring back (more like re-create) the Far Lands.
I have always liked the Far Lands, but since they were removed well before I started playing, I have previously had to downgrade in order to see them, but with this, I don't have to!
If it wasn't for the lag, I might want to build something in the Edge Far Lands (a fortress built into the edge farlands, with part of it projecting out over the normal world?).
The attached picture is of the Far Lands in Release 1.7.10, showing them reaching the height limit (in a Deep Ocean biome).
Also, before I noticed TheMasterCaver had made a jar mod (for some reason I overlooked it when I first read the thread), I had mostly made a 1.7.10 forge mod that readded the Far Lands based on what he said in this thread. However, my mod also has the ability to move the Far Lands closer to spawn if you choose (however, they're still very laggy, even when set to 1000 blocks from spawn, and I haven't figured out why yet). The screenshot (note the coords) is actually taken with this mod.
"Roughly 95% of Minecraft players hate Villagers and would be very happy if they were removed. If you are one of the 5% who actually like villagers, copy this into your signature." -RainbowGirl
It has often been said that the Far Lands were accidentally removed in Beta 1.8 (for example, the description on Kurt's Far Lands or Bust videos) due to terrain generation changes, which is incorrect - they were actually removed on purpose due to a bug fix. And by reverting this bug fix it is possible to get them back in current versions of the game.
The Far Lands were caused by an overflow error due to the use of 32 bit integers in the noise generator code; the odd coordinate it starts at is due to the noise generator generating noise on a scale much smaller than one block (up to 171.103 units per block, which divides the useful range by that much; 2147483647 / 171.103 = 12550824). This was fixed by dividing by 16777216 (2^24) and taking the remainder (modulo); noise repeats after only 256 steps so this has no effect on the output (256 steps doesn't sound like much but there are 16 octaves of noise, each one twice/half the frequency of the last; presumably this means that terrain, independent of biomes and landmasses/oceans, will eventually repeat if you go far enough).
Here is the code in question, located in NoiseGeneratorOctaves, and all you have to do to remove the fix is to comment out the two lines that modulo by 16777216, or change it to a much higher value; I used 4294967296 (2^32) when byte-code editing 1.8.3 since deleting bytecode in JBE doesn't properly update jump addresses (I believe the lines before and after are also be part of the fix and can also be removed, as they do nothing (subtracting, then adding the same value) without the lines between, although casting a floating point value to an int discards any fractional part):
This is also described in detail on the Wiki, which was recently updated with an explanation of exactly what caused the Far Lands, which are not due to what I thought it was (single precision floating point rounding errors).
Here is the result of removing the bug fix:
(interestingly enough, as shown here the Far Lands don't necessarily start at 12550821, the start also varies by several blocks in places)
In addition, here is a world download, created in 1.6.4 with MCEdit used to move the Far Lands chunks to the spawn point, which eliminates the odd bugs caused by floating point precision errors (e.g. gravel glitches and may not even fall, redstone doesn't render correctly, though the bugs like jittering and lag in Beta 1.7.3 aren't present; MCEdit also suffers from rendering glitches for similar reasons, which made it a bit hard to copy the chunks), as well as mods to get the Far Lands in 1.6.4 and 1.8.3:
World download (7.68 MB): https://www.dropbox.com/s/xoevxo8ngt3srjt/Far%20Lands.zip
Mod (extract and install the appropriate class using the instructions here): https://www.dropbox.com/s/xkmupm2spdkmnzp/Far%20Lands%20Mod.zip
Warning: while it also works in 1.8.3 the game had massive lag (server running behind by 200000ms) and threw errors and eventually crashed after a few minutes; this might just be my computer, which has issues even with normal vanilla worlds but 1.6.4 had no noticeable increase in lag compared to normal worlds and had no errors, aside from the odd glitches mentioned above:
[14:49:04] [Client thread/INFO]: [CHAT] Teleported TheMasterCaver to 1.25508005E7, 100.0, 1.25508005E7
[14:49:33] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 28700ms behind, skipping 574 tick(s)
[14:50:31] [Server thread/INFO]: TheMasterCaver has just earned the achievement [Taking Inventory]
[14:50:31] [Client thread/INFO]: [CHAT] TheMasterCaver has just earned the achievement [Taking Inventory]
[14:53:00] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 207589ms behind, skipping 4151 tick(s)
[14:54:57] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 116247ms behind, skipping 2324 tick(s)
[14:56:42] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 105842ms behind, skipping 2116 tick(s)
[14:57:09] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 26135ms behind, skipping 522 tick(s)
[14:57:25] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 16229ms behind, skipping 324 tick(s)
[14:57:51] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 26079ms behind, skipping 521 tick(s)
[15:00:30] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 159057ms behind, skipping 3181 tick(s)
[15:00:38] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 8254ms behind, skipping 165 tick(s)
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: f: Exception while updating neighbours
Caused by: java.lang.StackOverflowError
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:57] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:02:58] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:05:20] [Server thread/FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already decorating
[15:05:20] [Server thread/ERROR]: Encountered an unexpected exception
f: Exception ticking world
Caused by: java.lang.RuntimeException: Already decorating
[15:05:20] [Server thread/ERROR]: This crash report has been saved to: C:\Users\\AppData\Roaming\.minecraft2\crash-reports\crash-2015-03-27_15.05.20-server.txt
(the "already decorating" errors, thrown when the biome decorator is called while it is still decorating a chunk due to generating a new chunk while an existing chunk is still being generated, suggests rounding errors when placing some feature, which must not cross over into nonexistent chunks (referencing a nonexistent chunk will cause it to be generated); using Customized to disable various features may prevent crashes)
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?
This is awesome
Thanks for sharing this!
Always remember that Jesus loves you so much that He died rather than risk spending eternity without you.
"What do you say to lunch, followed by breakfast? Because we're time travelers, and that's how we roll! Then, cocktails with Moses, and I'm going to invent a flying submarine. Why? Because no one ever has, and it's annoying!"
--The Twelfth Doctor
Interestingly enough, when you use this in 1.8, the farlands take advantage of the full height of the world, presumably because the terrain generator is able to use the full height in 1.8. This leads to some truly spectacular scenes. (Yes, that's an ice plains spikes next to a forest)
I did not experience any more lag than is usually present in 1.8, although the server is prone to fall behind a couple hundred ticks every so often. I would recommend using customized to disable gravel, as it is prone to build up falling sand entities due to precision errors. The second world I created crashed due to a stack overflow error from a sand block, leading me to also recommend disabling deserts, or at least making sure the seed doesn't have one where you're teleporting.
Putting the CENDENT back in transcendent!
Here's some ender farlands.
Putting the CENDENT back in transcendent!
Putting the CENDENT back in transcendent!
Is there a method using the custom world type to make an entire farlands world?
I am a friend of all Snow Golem kind.
You can probably get something similar, but not the same since the Far Lands are the result of a breakdown in calculations due to overflow, giving a totally different output than anything the noise generator can normally produce. This also explains why the End has terrain generating again, despite normally set to only produce terrain near the origin; I'd have thought it wouldn't work as I assumed they somehow "switched off" terrain generation beyond the island; probably they made the noise output fall off as you go further from the origin but the noise generator still produces output (land is generated when the noise value exceeds 0; when below 0 water is placed below sea level in the Overworld, lava similarly in the Nether).
Also, it isn't that surprising that Beta 1.7.3 produces the same Far Lands as current versions; the underlying noise generator is exactly the same, the only changes made afterwards is the addition of biome control of height variation, this is also why it is possible to use a customized preset to give a similar world to Beta, if not identical as Beta also had some other differences, most notably in how land and oceans were generated (i.e. the game currently decides if an area will be a continent or an ocean, using a separate noise generator, then assigns biomes based on which one they are; beyond this, oceans are only water because the "minHeight" and "maxHeight" values are set for below sea level terrain; you could mod the code so they have the values Extreme Hills uses and vice-versa and they be switched around in appearance).
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?
This sounds fun!
One thing I didn't mention is that sand always generates sandstone underneath it provided a space of more than one block. That's why none of the sand is falling.
Putting the CENDENT back in transcendent!
I'm Posting Here Just To Be Up To Date. This Is Awesome! Thanks! But Where Is The Bug Fix Document? Or Where Do I Go?
PMC: enderkevin13
I have a problem.
I tried doing this and adding the file to 1.8.3 Jar, and doing all the stuff so I can make the profile and run it.
It runs fine, it's just I can't create a world with it. It just won't create a world. It keeps saying Converting World.
Neat! I never knew this! I always thought it would be extremely hard to bring back (more like re-create) the Far Lands.
I have always liked the Far Lands, but since they were removed well before I started playing, I have previously had to downgrade in order to see them, but with this, I don't have to!
If it wasn't for the lag, I might want to build something in the Edge Far Lands (a fortress built into the edge farlands, with part of it projecting out over the normal world?).
The attached picture is of the Far Lands in Release 1.7.10, showing them reaching the height limit (in a Deep Ocean biome).
Also, before I noticed TheMasterCaver had made a jar mod (for some reason I overlooked it when I first read the thread), I had mostly made a 1.7.10 forge mod that readded the Far Lands based on what he said in this thread. However, my mod also has the ability to move the Far Lands closer to spawn if you choose (however, they're still very laggy, even when set to 1000 blocks from spawn, and I haven't figured out why yet). The screenshot (note the coords) is actually taken with this mod.
Links to Mods: EndPlus | Deeper Caves | FarLands
"Roughly 95% of Minecraft players hate Villagers and would be very happy if they were removed. If you are one of the 5% who actually like villagers, copy this into your signature." -RainbowGirl