Or, yknow, if only Mojang started working on it. Both of these being unlikely circumstances sadly out of our hands.
One thing I would like to see: would Tall Worlds work with any manual modifications that returns the far lands? Since cubic chunks are handled differently I kind of doubt the existence of Tall Far Worlds, and even then there could be a Far Sky, shrouding the whole world in a laggy darkness.
The far lands would still be there in a cubic chunk world. You might even get far-effects in the y dimension as well. =)
The Meaning of Life, the Universe, and Everything.
Location:
127.0.0.1
Join Date:
8/22/2012
Posts:
217
Location:
127.0.0.1
Minecraft:
Barteks2x
Xbox:
null
PSN:
null
Member Details
Far lands as terrain distortions are long gone. When using vanilla noise generator it would be there on Y coordinate, but vanilla noise generator is broken in cubic chunks incompatible way. The noise generator cubic chunks uses (flow-noise library) doesn't have far lands, but it's very east to bring them back.
As for other high coordinate glitches - I couldn't find any in 1.11.2, even when I got depth -1,000,000,000 working.
Coordinate precision at high magnitudes with floating point representations are still an issue, regardless of terrain generation. ie, at 30 mil meters away from zero, even the double type doesn't represent sub-meter distances very well.
The Meaning of Life, the Universe, and Everything.
Location:
127.0.0.1
Join Date:
8/22/2012
Posts:
217
Location:
127.0.0.1
Minecraft:
Barteks2x
Xbox:
null
PSN:
null
Member Details
You would need to modify flow-noise library that my and Cuchaz's version uses, CubicChunks doesn't use vanilla noise generator because it's broken when used with cubic chunks, and it just happens to work without cubic chunks.
As for coordinate precision - with double you have 15 decimal digits. Integer.MAX_VALUE uses 9 of them. That leaves 8 digits of precision which is still more than float has in total. I don't see it as an issue.
In vanilla/cubic chunks there are literally no issues at all at 1,000,000,000 blocks below y=0. I will make a video to show it.
Far lands as terrain distortions are long gone. When using vanilla noise generator it would be there on Y coordinate, but vanilla noise generator is broken in cubic chunks incompatible way. The noise generator cubic chunks uses (flow-noise library) doesn't have far lands, but it's very east to bring them back.
As for other high coordinate glitches - I couldn't find any in 1.11.2, even when I got depth -1,000,000,000 working.
The Meaning of Life, the Universe, and Everything.
Location:
127.0.0.1
Join Date:
8/22/2012
Posts:
217
Location:
127.0.0.1
Minecraft:
Barteks2x
Xbox:
null
PSN:
null
Member Details
I changed save format and I was able to extend it to over 1 billion blocks, and theoretically I could extend it all the way to (max 32 bit signed integer) - (some constant) (4096 would be good constant here) in both directions after I make ServerHeightMap work with it (the former OpacityIndex, now it only stores boolean flags)
As for coordinate precision - with double you have 15 decimal digits. Integer.MAX_VALUE uses 9 of them. That leaves 8 digits of precision which is still more than float has in total. I don't see it as an issue.
I've found that after accounting for even modest amounts of accumulated roundoff error, that 15 digits is closer to 11 or 12 in practice. So after 30 mil blocks away from the origin, we're left with maybe 3 digits, which is merely centimeter precision. That seems pretty close to the limit of the precision we need for accurate physics simulation in the game engine.
But whatever. Not many people hang out in the far lands anyway.
The Meaning of Life, the Universe, and Everything.
Location:
127.0.0.1
Join Date:
8/22/2012
Posts:
217
Location:
127.0.0.1
Minecraft:
Barteks2x
Xbox:
null
PSN:
null
Member Details
Maybe you are right, but I'm almost sure Minecraft does a lot of physics calculations in coordinates relative to the entity (I didn't check that). And for rendering even a centimeter precision is barely noticable error (it's 1/8th of a texture pixel)
Minecraft generally has surprisingly huge amount of code to make unreasonably big coordinates work.
As for why bother with such coordinates - just because I can, and because it's a useful thing for testing edge cases. And because some people will complain if you don't even if what you give is more than enough. There is no way any algorithm that iterates over world height based range will work at such place. It also showed me that some sounds stop working here - maybe because float is used to store sound source position? Or BlockPos packed into 64-bit value.
Anyway here is the video, it's very laggy and bad quality and has glitches because something is wrong with my system and I have no idea what. This is just to show that it can actually work without posting download link to compiled mod:
So as some of you may know, there are seeds in Minecraft that glitch out the terrain generation and cause the same caves to generate every 16 blocks. In vanilla the seed 164311266871034 cuases the caves to repeat across the Z axis. In the Tall Worlds mod, it instead repeats stuff on the Y axis, giving this weird looking cave stack:
And this quite literally bottomless pit:
So yeah, just found that pretty cool and decided to share it here because it was relevant.
(And there are seeds that repeat across the Z axis as well, one of these is 240144965573432)
This is awesome because I discovered this very thing independently a couple of weeks ago when researching getting Tall Worlds to work again, but there are some differences in my results:
1. If you fly down the "endless" ravines, you occasionally get a thin layer of gravel which you can break to go farther down (the gravel doesn't fall). But when you fly up, the layer is gone. However it reappears when you reload the chunks.
2. Stone/cave generation stops at -32511; the blackness is solid but burns you like lava. Mobs are unaffected.
Currently using Robinton's old CC mod for beta 1.7.3. I found the Far Lands at 8.3 million blocks out instead of 12.5 million. Also the FL terrain goes up to 2500m. Video coming soon.
Can't wait to see how Barteks2x's fork does. Keep up the good work everyone!
The Meaning of Life, the Universe, and Everything.
Location:
127.0.0.1
Join Date:
8/22/2012
Posts:
217
Location:
127.0.0.1
Minecraft:
Barteks2x
Xbox:
null
PSN:
null
Member Details
In TWM at about -32000 lava is generated instead of stone I'm not sure why you can't see it, I guess something goes wrong with chunk loading. In my version stone with caves generates all the way down, but ravines become gradually more and more filled with lava as you go down (I didn't implement that for caves yet). And you can also get the caves/ravines that loop vertically, with the same seed.
The gravel layer is there because of inherently broken way TWM handles dirt/grass/gravel generation (which is based on how robinton's version did it). I have fixed it in my MC1.11/forge port by generating surface blocks in entirely different, more reliable way.
Robinton's version has far lands earlier than vanilla because it uses different constants for noise generation (higher frequency). And farlands do eventually stop because of what causes them - they are caused by integer overflow (internal position not fitting into a 32-bit integer), which causes fractional part of position to be calculated as greater than 1, which makes the noise values grow extremely high when that fractional position is used for interpolation. And since Y value is subtracted from noise value (multiplied by some bigger factor above certain point) it is possible for the subtracted Y so be greater than the noise value, which makes far lands disappear. They will also disappear extremely deep.
The noise generator I use doesn't have farlands because it loops around at the point where farlands would begin.
Also, in MC 1.6.4 back when I used modified vanilla generator (before the mod was open source, and before Cuchaz's TWM), I've seen *vertical* farlands:
The Meaning of Life, the Universe, and Everything.
Location:
127.0.0.1
Join Date:
8/22/2012
Posts:
217
Location:
127.0.0.1
Minecraft:
Barteks2x
Xbox:
null
PSN:
null
Member Details
What I found at 3d corner far lands is really surprising. I expected to see either everything filled with stone, or everything empty. I saw neither. It was surprisingly close to playable nether-like cave world:
Screenshots:
Normal vertical farlands in 1.11 using modified noise generator (and I figured out that I miscalculated frequencies again):
At the top of the edge of the world:
And beyond:
And back to the bottom...
And the actual corner:
Where the 3 walls meet...
And the part inside:
Note: It took me quite a while to make all these images clickable fighting stupidity of minecraftforum editor modifying my markup, so there may be mistakes
The Meaning of Life, the Universe, and Everything.
Location:
127.0.0.1
Join Date:
8/22/2012
Posts:
217
Location:
127.0.0.1
Minecraft:
Barteks2x
Xbox:
null
PSN:
null
Member Details
You won't see anything because of water. But other than that it will look the same - sponge-like terrain. Butok, I will edit this post with screenshot from the bottom with water removed.
Well, massive kudos for attempting to take it on in the first place. I salute your determination.
From
what I understand, Barteks2x is carrying on from where you left off?
And you released a working version after all. So isn't it possible that
Mojang could take what work you two have already put into it, and
continue to carry the torch until it is finished?
Why would they do something only small percentage of users will notice and can possibly reintroduce massing amounts of bugs and takes forever to implement and restricts what you can do with terrain generation and some algorithms? For them, there is no point doing that.
Can I see the vertex far lands (last pictures) underground?
I found many more interesting things when visiting the deep far lands. It looked mostly the same as farlands at the top... except at some point even farlands become more glitchy. The optimized interpolation code seems to give up on accurace and the terrain becomes gradually more and more blocky as you go down over hundreds of thousands of blocks. But then something interesting happens that I'm yet to find explanation for (I don't have a slightest idea for explaining it):
At one point there appears to be a plane along which for higher z coordinates and lower x coordinates all blocks stop generating (but only in the area of3d corner far lands). I have no explanation for why would such thing appear at all, let alone the absurdally weird slope: to stay on the plane, after going down 4000000 blocks you need to go exactly 1294300 blocks forward in X coordinate. I didn't have the determination go go through all of that again and find out the number for Z coordinate, but from the looks of it, you need to go twice as deep, while decreasing Z coordinate by close to the same amount. All the screenshots: https://www.dropbox.com/sh/hwt28zsxorehiuc/AAC-h7xm8c-PR4U62Zdzraiha?dl=0
The far lands would still be there in a cubic chunk world. You might even get far-effects in the y dimension as well. =)
Far lands as terrain distortions are long gone. When using vanilla noise generator it would be there on Y coordinate, but vanilla noise generator is broken in cubic chunks incompatible way. The noise generator cubic chunks uses (flow-noise library) doesn't have far lands, but it's very east to bring them back.
As for other high coordinate glitches - I couldn't find any in 1.11.2, even when I got depth -1,000,000,000 working.
Cubic chunks discord server
Coordinate precision at high magnitudes with floating point representations are still an issue, regardless of terrain generation. ie, at 30 mil meters away from zero, even the double type doesn't represent sub-meter distances very well.
You would need to modify flow-noise library that my and Cuchaz's version uses, CubicChunks doesn't use vanilla noise generator because it's broken when used with cubic chunks, and it just happens to work without cubic chunks.
As for coordinate precision - with double you have 15 decimal digits. Integer.MAX_VALUE uses 9 of them. That leaves 8 digits of precision which is still more than float has in total. I don't see it as an issue.
In vanilla/cubic chunks there are literally no issues at all at 1,000,000,000 blocks below y=0. I will make a video to show it.
Cubic chunks discord server
I thought it only went down 8 million blocks.
I thought it only went down 8 million blocks.
I changed save format and I was able to extend it to over 1 billion blocks, and theoretically I could extend it all the way to (max 32 bit signed integer) - (some constant) (4096 would be good constant here) in both directions after I make ServerHeightMap work with it (the former OpacityIndex, now it only stores boolean flags)
Cubic chunks discord server
I've found that after accounting for even modest amounts of accumulated roundoff error, that 15 digits is closer to 11 or 12 in practice. So after 30 mil blocks away from the origin, we're left with maybe 3 digits, which is merely centimeter precision. That seems pretty close to the limit of the precision we need for accurate physics simulation in the game engine.
But whatever. Not many people hang out in the far lands anyway.
Maybe you are right, but I'm almost sure Minecraft does a lot of physics calculations in coordinates relative to the entity (I didn't check that). And for rendering even a centimeter precision is barely noticable error (it's 1/8th of a texture pixel)
Minecraft generally has surprisingly huge amount of code to make unreasonably big coordinates work.
As for why bother with such coordinates - just because I can, and because it's a useful thing for testing edge cases. And because some people will complain if you don't even if what you give is more than enough. There is no way any algorithm that iterates over world height based range will work at such place. It also showed me that some sounds stop working here - maybe because float is used to store sound source position? Or BlockPos packed into 64-bit value.
Anyway here is the video, it's very laggy and bad quality and has glitches because something is wrong with my system and I have no idea what. This is just to show that it can actually work without posting download link to compiled mod:
Cubic chunks discord server
If you can get that far below in the y direction, is it also possible to surpass the limits in the x and z direction?
I could remove the hardcoded limit but I'm not going to double the work for something completely unnecessary.
Cubic chunks discord server
This is awesome because I discovered this very thing independently a couple of weeks ago when researching getting Tall Worlds to work again, but there are some differences in my results:
1. If you fly down the "endless" ravines, you occasionally get a thin layer of gravel which you can break to go farther down (the gravel doesn't fall). But when you fly up, the layer is gone. However it reappears when you reload the chunks.
2. Stone/cave generation stops at -32511; the blackness is solid but burns you like lava. Mobs are unaffected.
Currently using Robinton's old CC mod for beta 1.7.3. I found the Far Lands at 8.3 million blocks out instead of 12.5 million. Also the FL terrain goes up to 2500m. Video coming soon.
Can't wait to see how Barteks2x's fork does. Keep up the good work everyone!
Cubic Chunks mod: https://discord.gg/kMfWg9m
Mental Block server: https://discord.gg/AssnrXr
In TWM at about -32000 lava is generated instead of stone I'm not sure why you can't see it, I guess something goes wrong with chunk loading. In my version stone with caves generates all the way down, but ravines become gradually more and more filled with lava as you go down (I didn't implement that for caves yet). And you can also get the caves/ravines that loop vertically, with the same seed.
The gravel layer is there because of inherently broken way TWM handles dirt/grass/gravel generation (which is based on how robinton's version did it). I have fixed it in my MC1.11/forge port by generating surface blocks in entirely different, more reliable way.
Robinton's version has far lands earlier than vanilla because it uses different constants for noise generation (higher frequency). And farlands do eventually stop because of what causes them - they are caused by integer overflow (internal position not fitting into a 32-bit integer), which causes fractional part of position to be calculated as greater than 1, which makes the noise values grow extremely high when that fractional position is used for interpolation. And since Y value is subtracted from noise value (multiplied by some bigger factor above certain point) it is possible for the subtracted Y so be greater than the noise value, which makes far lands disappear. They will also disappear extremely deep.
The noise generator I use doesn't have farlands because it loops around at the point where farlands would begin.
Also, in MC 1.6.4 back when I used modified vanilla generator (before the mod was open source, and before Cuchaz's TWM), I've seen *vertical* farlands:
Cubic chunks discord server
If vertical farlands looks like that, what do vertical corner farlands look like?
You make me curious, I want to check it now
Cubic chunks discord server
What I found at 3d corner far lands is really surprising. I expected to see either everything filled with stone, or everything empty. I saw neither. It was surprisingly close to playable nether-like cave world:
Screenshots:
And beyond:
And back to the bottom...
And the part inside:
Note: It took me quite a while to make all these images clickable fighting stupidity of minecraftforum editor modifying my markup, so there may be mistakes
Cubic chunks discord server
Can I see the vertex far lands (last pictures) underground?
You won't see anything because of water. But other than that it will look the same - sponge-like terrain. Butok, I will edit this post with screenshot from the bottom with water removed.
Cubic chunks discord server
Why would they do something only small percentage of users will notice and can possibly reintroduce massing amounts of bugs and takes forever to implement and restricts what you can do with terrain generation and some algorithms? For them, there is no point doing that.
I found many more interesting things when visiting the deep far lands. It looked mostly the same as farlands at the top... except at some point even farlands become more glitchy. The optimized interpolation code seems to give up on accurace and the terrain becomes gradually more and more blocky as you go down over hundreds of thousands of blocks. But then something interesting happens that I'm yet to find explanation for (I don't have a slightest idea for explaining it):
At one point there appears to be a plane along which for higher z coordinates and lower x coordinates all blocks stop generating (but only in the area of3d corner far lands). I have no explanation for why would such thing appear at all, let alone the absurdally weird slope: to stay on the plane, after going down 4000000 blocks you need to go exactly 1294300 blocks forward in X coordinate. I didn't have the determination go go through all of that again and find out the number for Z coordinate, but from the looks of it, you need to go twice as deep, while decreasing Z coordinate by close to the same amount. All the screenshots: https://www.dropbox.com/sh/hwt28zsxorehiuc/AAC-h7xm8c-PR4U62Zdzraiha?dl=0
Cubic chunks discord server
Do you think you can make this an option in the beta release?