Cubic Chunks: Reduced lag, infinite height, and more [The #1 Suggestion Thread of all time!][Updated! 6/14]
Poll: Which parts of this system do you like?
Ended May 15, 2014
Poll: Which parts of this system do you NOT like?
Ended May 15, 2014
Poll: Do you support this system's implementation overall? (If yes, if
Ended May 15, 2014
I see a number of technical challenges associated with this system, many of which expressed in the OP, however I think Mojang should keep this system in the back of their minds when planning updates. I think if the technical challenges can be efficiently overcome that we have a way of increasing the overall efficiency of the game by a very substantial margin.
Perhaps a "lit-chunk" ray spread (line of sight from source) algorithm could be used to create header data for the chunks which included angle of incidence and intensity based on chunk occlusion (number of non-air blocks in the chunks prior in the line). As the sun moved across the sky it would update the header data for loaded chunks. Each chunk would show lighting based on light sourcing that is generated semi-locally using the header data. The lighting is therefore made to look like it is coming from the source, but is generated within the chunk and/or surrounding chunks. Not sure if this would be a workable solution since I haven't delved into the technical aspects of the game engine beyond what is common knowledge.
Support my suggestions. Make the game better!
I've always wanted there to be mountains the actual size of EVEREST! And the 3D biomes really caught my eye. There are so many new options with this, and its incredible.
How high would clouds be? Just wondering.
And you explained it really well too, so my nontechnical mind actually understood it
I love this idea, and Full Support
(Hope I'm not doing something wrong by posting so late but I just saw it)
The Wyrm Watches. The Wyrm knows. The Wyrm reads. The Wyrm Animates too! Check me out at the WyrmWorks Channel on Youtube!
You should join Brazil on the Total War Minecraft server - 167.114.100.168:43841! Includes many Minecraft Forum members including myself, Selene011, Genius_idiot, Gamelord, and more!
There should be a thing that if you go too high, you get lighter. You jump higher, run slower.
User: Hey! I can read this!
I wonder if this will ever become a thing...
This idea, though extremely simple, is portrayed flawlessly. However, I wonder how the gravity-slowdown in slow chunks will work now that the Elytra is being added, and people will be skydiving to get the terminal velocity for a maximum-distance flight. Due to this, I think that the chunks are too small vertical-wise, and should be expanded to 16x32x16 chunks, or maybe 16x48x16. Perhaps there could even be an option to change the maximum y-value that loads per chunk. Nonetheless, putting the Elytra situation aside, the idea is perfect in every way, and people would most likely take advantage of the new, infinite world height!
Full Support!
[Edit]: Oh wait, I already supported
You can't have a setting for the chunk size, or worlds wouldn't be compatible with other settings. There still has to be a uniform way to save the world.
It wouldn't make much of a difference. Blocks are blocks regardless of how you group them. You'd be stopped waiting for an entire 16xNx16 chunk to load instead of several 16x16x16 ones.
Mostly moved on. May check back a few times a year.
First, I would like to give my (very inexperienced) opinion on the sunlight problem. (Also it's very late as i'm writing this right now. Please excuse any obvious mistakes and stuff)
Sunlight
As many have addressed, sunlight would be a tricky issue to overcome, what with having to load chunks above the player.
If we tried to use the isEmpty tag or another similar method, we could mostly overcome this problem. But then the issue of loading chunks that have blocks placed differently in every chunk arises, as none of them can truly be said to be 'empty'. If we tried to give a limit like
"IF blocksInChunk>2058 THEN chunkOpacity = Opaque ELSE chunkOpacity = Transparent"
and then made calculations based on whether the chunk is Opaque or Transparent, then that might help (although I know pretty much nothing about programming, so please don't be too harsh). Or perhaps even techniques like Geomipmapping or Geoclipmapping could be used, but they might be difficult to implement in Minecraft.
A last resort is to simply say 'Rayleigh Scattering![1]' and stop rendering vertical chunk lighting after a certain number of chunks, and just use ambient light levels. Not too counter-intuitive, since Minecraft players have probably seen rendering distances cause far-away places (even on the Y-axis!) to become fogged in whatever color the sky happens to be at that time (Obviously, it currently does not actually affect lighting in any way).
Perhaps for this to function correctly, a lighting rewrite would be needed. To be fair, a lighting rewrite might be quite positively accepted despite the incompatibilities it might cause; think about dynamic light, exploring with a single torch, or mixing colored lights in a dance room!
Now, I would like to address the 'chunk loading while falling' issue.
Falling (for player)
If we tried to change the chunk loading mechanics for a falling player (perhaps depending on their current falling speed) to load chunks more effectively and with a higher preference, such as loading 8x64x8 chunks or something while falling at high speed, the falling issue could be overcome. Anyways, there already is a terminal velocity in Minecraft, of around 78.4 blocks/second. This according to my research[2] is quite accurate in terms of a human falling without opening their arms or legs and not exactly using any skydiving techniques.
If we take this value of 78.4 blocks/second and apply it to our normal, 16x16x16 cubic chunks, we get a value of 4.875 chunks/second; quite fast, but not actually too much if you compare it to normal Minecraft chunk loading. You can go up a tall tower, and look around, reload the chunks and stuff. You might notice that if you have a decent computer, the chunks don't really take that long to load, in spite of them being normal 16x256x16 chunks.
If even after this the chunks cannot be loaded quick enough, then the chunk loading if possible
would need toshould be highly optimized or concentrated on the Y-axis (maybe even an asymmetry towards the negative Y-axis? Not sure how well that could work) to be seamless.Otherwise, the last resort solution for this one is simply pausing the fall; not too much of an annoyance seeing as this probably already happens for these players with Elytra and boats.
Now the last one being left is the 'fall being paused for non-player entities and fluids' issue.
To be honest, I'm not quite sure if it's an issue per say, more like a necessary change in game mechanics brought about by large changes in game code and programming.
You probably will have to take it as one of the Minecraftian Truths (or Notch's Laws if you please), like
"organic matter far-away from an observer may spontaneously decay leaving no traces"
"objects not too far away from an observer will also spontaneously decay after five minutes"
"trees float, duh"
Sure, we probably will have to find LOTS of new exploits and cool glitches/bugs/quirks to have fun with, but frankly even a small update changes these things. Anyways, after this huge change/update they might even add all the major requested stuff on threads like the previously mentioned light changes, and cool unique changes like albino mobs, new dimensions (even though they said it was a no-no, we can hope) et cetera. Then they would finally release the Plugin API and Minecraft 2.0 would finally be there (although I really don't want this string of hope and endless updates and anticipation to end).
Sorry for wasting your time with my inexperienced blather about random stuff and going so off-topic on a tangent, I really need to sleep goodbye
Though by your own admission you are inexperienced with this stuff, you bring up a lot of valid points. I think that this should be taken into serious consideration when trying to solve these problems.
Began playing during Alpha 1.2.6.
About the stopping fall: It already happens with items in long water streams and causes no big problem.
I was thinking about how this would allow terrain generation to make much taller terrain, and I realized that this would cause a problem. If people knew that Minecraft could recreate Mount Everest, they will not be happy to hear that they cannot see its peaks in the distance, due to the way the game renders. Currently, this has little impact, because there is almost universally a flat horizon and you do not really notice that the land does not keep on going, but with higher mountains, this will be very noticeable. I suggest an algorithm that calculates the general polygonal shape of a chunk's topmost block layers, and shows the general layout of the terrain even beyond the render distance. This would show the mountain in the distance without actually needing to load the blocks. You would see something like a low-poly rendering off in the distance, but the only information that has to be loaded in these distant chunks is a few faces. I have literally no idea how code for that would look, since I am only just beginning to learn java, but I believe that it would be possible. Correct me if I'm wrong, but isn't the game able to tell the approximate height of the surface of a chunk before it is ever loaded?
I have a feeling that this was mentioned before, but I've read a few pages and haven't seen anything about it.
I applaud your vocabulary and overall intelligence. And that is all I have to say.
Even though my Join date is in 2014, I tried the demo on 8/30/2012, and bought the game two days later on 9/1/2012. So hipster
Stuff I support:
Click here to get Rick-Rolled. No seriously
I want to say that the lighting issue was solved, but that may have been a different thread.
Please read THIS before making a suggestion
And support the ability to add paintings and records!
Source?
This needs to be in Vanilla. I infinitely support!
Ok, you sir jak0theshadows are wrong for 2 reasons. 1. The nether is another dimension, it's not connected to the overworld in anyway. 2. You won't suffocate if you fly 5000 blocks into the air and then turn on survival mode. The moral of the story is that Minecraft doesn't have to make sense to you. Don't force your logic down Minecraft's throat.
I thought about the "falling into unloaded chunks": It's basically the same thing as something that's already in the game: Flying in Creative mode in a laggy world or walking with a very high speed effect. There are two possible ways the game can react:
Edit
I'm ill informed how this works currently since i've last read it a few years ago, however the problems still seem to be the same. So please tell me if somethings not needed or i'm wrong.
Personally here is my take on how this could be solved.
Create a layer called y - 0 (I think Y is height)
Anything below 0 would simply be -1 through infinity/desired end.
Keep the general height of the overworld where the player is at in the vanilla game
This would solve some terrain issues and structure spawning issues. because the surface of the world would literally be the same as vanilla, you know except for the giant mountains and floating skies. It would also allow more ores to keep spawning how they do now or you can say "Diamonds, spawn at -20."
My personal opinion on how the giant land masses could spawn
There can be really tall mountains, extremely tall but not +80k high. Some floating islands and larger land mases but not 100+, or even 20k+. This would solve the light issue since there is no giant mountain above you or landmasses above you.
Light Issue solved
To solve this even further why not just give the chunks chunk coordinates? It is separate from individual block coordinates as it relates to the entire chunk itself. Lets say that this chunk is labeled at -20 y (Height) and last time it updated there was no land mass above it. If the player explores and goes to the chunk labeled 80 y in the sky it would affect the -20 chunk the next time you load it, saying there is blocks above it.
It's not how it would work in real life but it sure would work well in the game. In real life if you had something that high the sun wouldn't even place a shadow directly below it and the size would amplify its shadow greatly.
As for falling I don't think thats much of an issue, just don't run minecraft on a potato pc. Empty chunks of air shouldn't take that long to load, especially since thats what the majority of the fall will be.
The whole point of cubic chunks is that there doesn't have to even be a void by default... the chunks can just extend infinitely downward and upwards just like how chunks extend infinitely horizontally. (Well, technically only 30 million blocks in each direction, but that's already more space than anyone could ever use anyway, so being infinite vs. several million doesn't really matter.) So even if it isn't infinite in the y-axis on default worlds, it would be easy to use a custom preset and/or world type to have a void-less world.
Wish placing blocks directionally was easier? Check out this suggestion!
I think a terrain generation with infinite height/depth wouldn't even need a standard height (like 64 currently in Minecraft). It could just go arbitrarily high or low over huge distances. That could add a great effect when flying fast over a map and also a bit more realism (real terrain isn't flat either).
Also another great thing about cubic chunks would be that it would be possible to rebuild the entire earth. I want to see something like that.