Gameplay
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
Vertical sight will be no less than it is now. As it stands, nothing gameplay wise will change with vanilla minecraft. Terrain will be the same and the view distance will be the same. The only thing this will do to vanilla minecraft is increase fps.
Actually, Durp is referring to the fact that it would be pointless to have a tall structure like a lookout tower given Minecraft's current limitations for vertical rendering. With something like Cubic chunks involved, you could have massive structures built, yet be entirely unable to see the bottom due to Minecraft's rendering or vertical areas.
However, these issues will also be fixed with Cubic Chunks, as horizontal and vertical rendering will be equalized, and likely have individual sliders in the video settings.
Fully suport dis
There was a game called Block Story which did the same thing.
I will put the link for people to study the code.
http://www.blockstory.net/
I'm back
I understand what you mean, however it only becomes a problem after you start to make use of the potential that cubic chunks has. It is certainly a limitation of cubic chunks, however while it is a valid issue within Cubic Chunks, it is very important to recognize that it is not valid in the scope of this suggestion.
Anyway, what you are saying is that when you have a spherical view distance, less of the ground will get loaded as you go up higher. Basically, If the sphere is centered at ground level, you can see the ground up to ~64 blocks from the player, however, if the sphere is centered 48 blocks above the surface, only the very bottom of it intersects with the ground. Kind of like in this really rough diagram;
Of course, there are a few possible solutions for this, which have all been discussed at great length. For example, we can load more chunks when most of the chunks around the player are air. We can also render simplified chunks, use cylindrical or hexahedral shaped view regions (tall enough to avoid the problem), etc. There will probably never be a perfect solution, but w/e; nothing is perfect, and I'd personally much rather have Cubic Chunks with this as a potential issue, than a linear chunk system that is too limited to even allow the circumstances in which this issue could occur.
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
Well, Cuchaz, who is successfully coding the open source second coming of the Cubic Chunks Mod (His mod is called Tall Worlds Mod), has made a reply to Mog Miner on reddit with some ideas he is looking at as a solution and is testing in his own mod.
* Now is the time to Log-in to Reddit and upvote Cuchaz's post to make this communities support for the Addition of Cubic Chunks to vanilla Minecraft crystal clear! Otherwise it sounds like they might never do it...
[ Cuchaz's Reddit Post ]
[ The full thread starting with The Mog Miners 1st post ]
I now see that Cuchaz responded to one of MogMiners later posts and that Cuchaz's post is now right under that particular post. We should all still upvote as it's one of the only ways Mojang will actually notice our support for this. Go to the following link to directly see the new positions of the related posts:
[ Mog Miner + Cuchaz ]
Below are the Source Code links for Cuchaz's projects. They are all used together for his Tall Worlds Mod. Just please remember that the first alpha/beta has not been released yet but there are some demo videos and it is working great so far! After talking with him he has even implemented negative y coordinates like Robinton did in the original Cubic Chunks mod!
Tall Worlds Mod (Cubic Chunks) [SOURCE]
Magic-Mojo ModLoader [SOURCE]
Magic-Mojo Libs [SOURCE]
- The Posts from The Mog Miner reddit about Cubic Chunks:
[ TheMogMiners Tweet about Cubic Chunks ] "Infinity years" until Cubic Chunks
TheMogMiner 64 points 5 days ago
Good lord, I can't even crack a joke without it ending up on Reddit.
Grum and I have actually had some spirited discussions about cubic chunks, the problem is that it adds some issues that are pretty hard to resolve.
I'm not sure how the dude who extended the world height to 224 blocks handled it, and I'd rather not decompile it to check, but lighting is a major question mark for something like that. Let's say you go all the way up to the top of the world and make a platform: How do you handle the cascading light? In principle, it should propagate all the way downward. However, this might mean lighting some cubic chunks that are outside of your current loading zone. In that case, what does the server do?
I'm sure some of these issues have been solved by the mods that add things like this, but I'm not sure how cheat-y the solutions are and I don't want to decompile them to check. After all, if I add it and the way I solve one of these problems ends up being too close to the way it's done in a mod, it's just going to cause a firestorm here and elsewhere.
TheMogMiner 15 points 5 days ago
Ladies, ladies, there's enough moogle to go around for everyone!
In all seriousness, though, you're both right in your own respective ways. The key point that Rozarik misses is that it's not light propagation, but darkness propagation, that's the issue. If you place a torch, the light is only going to go so far. If you build a gigantic floor that occludes the sky, it's going to make everything beneath it dark.
As for terminal velocity and the falling problem, that hadn't even entered my mind. That's a really easy issue to solve, exactly as was described. The only real issue is determining when to cast shadows. Just for the sake of argument, let's say you build an enormous tower in one chunk, then build a bridge over to a section where the ground hasn't been generated. Let's also say that some sort of terrain generates in the higher-up chunks. How do you handle propagating the shadows down to the lower cubic chunks? They haven't been generated yet, so suddenly now you potentially have a massive CPU sink to generate all of these chunks that weren't there before.
When you're exploring the world, chunk generation is inherently rate-limited by how fast you can move along the X/Z plane. When you extend it along the Y axis, you have no such luxury.
cuchaz 8 points 15 hours ago *
Hi There. Cuchaz here. I'm working on the latest incarnation of the cubic chunks mod concept, which I'm calling Tall Worlds Mod.
The sky light issue is tricky. Here's how I dealt with it.
Having top-down lighting clearly leads to problems when you have to deal with vertical segments (ie cubic chunks, or cubes, as I call them) being missing. One possible solution is to just load the cubes on-demand to finish the lighting calculations and then unload them when you're done. Of course, this is a ridiculous solution since loading cubes that are nowhere near players is a waste of resources.
What I've done in Tall Worlds accomplishes the same end goal, but in a much much more efficient way. From what I can tell from staring at (decompiled) sources, very little information is actually needed to calculate skylight. Just block position and opacity. So loading all those cubes dynamically is really unnecessary to compute lighting. All we need is the opacity information. Block IDs, metadata, etc are all not needed. What I do in the mod is, for every x,z coordinate, keep a data structure that can efficiently answer queries about block opacity. This data structure is saved at the chunk (which I've started calling a column). As long as one cube in a column is loaded, the column must be loaded, and so must the opacity information for the whole column. Therefore, it's possible to calculate sky light for any block in the column without actually requiring that block be loaded.
There's a little bit of bookkeeping to keep this opacity index synchronized with the column state, but it's not hard to implement. The only trick is that unloaded cubes can become "stale." If one cube in a column is loaded and a change is made that would affect sky light for unloaded cubes, those cubes are not relit immediately. If they're not loaded, there's little reason to re-light them. But, you have to make sure that when the cube is loaded the next time, it gets re-lit before use.
I've implemented and tested this for my mod and it seems to work reasonably well most of the time. I haven't gone on a torture test though and really try to push on the corner cases. I should probably do that some time though. I might post another youtube video if I can get a particularly nasty edge case working well in the system.
Minecrak 2 points 44 minutes ago *
Hello MogMiner! Please say hi to Grumm and the rest of the team for me, it's been a while.
-- The good news is that Cubic Chunks is making a grand return to modded Minecraft! Cuchaz has successfully implemented it again and for the modern smp minecraft. He's polishing the edges before release atm. The BEST news is that this time it is Open Source.
- Cuchaz has replied to you in this thread with an answer to your question about how he is currently dealing with that issue in his mod.
There are so very many people who would love to see Minecraft go to the next level with Cubic Chunks and even 3D Biomes. I personally know how much Grumm wants it as well. Please do look at what Cuchaz is doing and consider his ideas, I'm sure he would be happy to experiment further and work with you guys some more.-- Thank you for listening to and responding to the community.
- Cuchaz's response in this thread
- Source - Tall Worlds mod
- Source - MM ModLoader (needed for Tall Worlds)
- Source - MM Libs (needed for Tall Worlds)
Tall Worlds mod Forum thread- The Posts from the old notch reddit about Cubic Chunks:
xNotch 271 points 2 years ago
I'm sorry, but we are not going to integrate this. It opens up a huuuuuge can of worms, and it's far too close to the november release.
If the mod creator could answer a couple of question for me, that would be very much appreciated:
On a multiplayer server, one player stays on gound level (say, height 32000), while another one builds a pillar to 64000. The first player logs out. At height 64000, the second player starts building a large flat area that would put the entire area the first player is in in shadow. The first player logs in. How do you ensure the area is in shadow? The second player then removes a single block near (but not next to) the pillar. This should light up the pillar all the way down to the ground. How do you ensure this happens?
Robinton 61 points 2 years ago
tl;dr: CC probably doesn't ensure that the shadow from the platform will spread, but probably does ensure that the light from the hole will spread. I'd be glad to work on improving CC's lighting system to fix these bugs.
Long answer: Well, first, in the real world, it would take a very large platform at 32km in the air to cast a visible shadow. Second, I know that there are a few glitches in CC, and I'm not entirely sure that the ground would be in shadow from the platform, and, for consistent performance, it really should be. Third, in CC, the ground should light back up when the platform's block is removed. The heightMap will get recalculated, and if player1 is logged out, that'll probably set the height to the floor of the world. But, as soon as someone logs in, and ChunkCubes are loaded in that spot, the heightMap will update for the newly loaded ChunkCubes (unless there's say, an unloaded platform3 halfway between player1's platform and the ground, then light would almost certainly shine straight through platform3). When the ChunkCubes are loaded, a lighting update gets called between each newly loaded ChunkCube and all ajacent already loaded ChunkCube; this will spread the light at ground-level.
I have a few ideas that I could try that would make this more reliable. I could have each chunk store a List of 16x1x16 NibbleArrays with 2 ints (min and max Height) that would tell the lighting update code where the large areas of empty cubes are, and what light is streaming down though each column. That could fix all of the problems, and should definitely fix all except the transparent platform3 issue. So far, I hadn't focused much on lighting, opting instead to work on things like higher terrain; if lighting bugs are a major issue with CC, I'll focus a lot more attention on them.
BTW, thanks for asking me.
Minecrak 77 points 2 years ago
- Robinton is here now just a little below this post. @ Robinton's Post
- I have fixed the link, his main post is further below the one I first saw.
- Please Vote Robinton's post up folks so that he can more directly respond in this thread. Thank you.
Hello. Robinton, the mod creator, has been awaiting the opportunity to chat with you constructively about implementing the 3D Chunks system in your game. His Height mod (Cubic Chunks) is his functioning and in development implementation of this methodology for Minecraft.- I believe he is asleep at this time though. I am a part of his team and may be able to help with some of your questions in the mean-time, but please don't hold him accountable for any mistakes on my part.
-- Robinton, and his core team, are under no illusion that his mod is at this moment ready to be added to the main version of the game today, and understandably not before the main release either considering how incredibly much you have on your plate right now. However; It has been proven to be very functional and works much better than raising the linear chunk height. We believe that moving minecraft over to using a 3D chunks method, as has been done and demonstrated in this mod, would increase the overall options for this games continued development and enjoyability. It even does very well with compatibility with other mods including Modloader, Forge, Zeppelin, PullCart etc.- You could limit the height to any arbitrary level you wish, or give the players or server operators the ability to choose the height, the method would still work fine, much better then an increased linear/vertical chunk method would performance-wise while giving the users a choice. The 65k height was just the result of a convenient variable length; even if you limit the in-game height the engine would still support more without any changes, and it can easily be bumped to far higher yet. You could even make a clear proviso stating that you only support using it to a certain height and anything above that is considered experimental only and not supported by you. Also; there is already a World converter made that will transfer worlds to and from the normal 128 & the Cubic worlds and the Terrain Generator has just been converted over to a directly 3D Chunk generated version.
- Notch; there are a lot of people with a hunger to be able to build 1:1 scale structures in Minecraft at heights far in excess of 128 meters. This would give people a choice. Here are a couple of screenshots in my thread as an example: http://www.minecraft...vs-128/#screens
--- In partial answer to your question, since Robinton would need to be the one to answer the code-functionality issues; View distances come into play vertically as they do horizontally now. The 3D Chunks are 16x16x16 not 16x16x128 and aren't managed in the same way. No one is trying to create a perfect physics simulator here, anymore than already has been. It's about making a workable fun game environment. Realistically, a small platform 32km above should make no shadow 32km below, and it is unnecessary to make it do so when the game view distance isn't 32km. However, workable & playable solutions for any such factors are what this development is all about finding. The people currently enjoying the mod have been happy to just have the option of having the greater height to build and play in, and they know more experience enhancing features are coming.- Concepts for increasing perceived view distance have been discussed though and are on the list for development. For instance; a stored compressed chunk view for greater distances as the human eye cannot see detail at great distances, so far-away chunks do not need to be rendered in full detail to every player in order to create a beautiful and functional panorama. Combine this with a very-far distance semi-static scenic-view image for their background based on their actual world and you have an immersive perceptual environment that will suck people into the game and keep them there for life.

-- We may not yet have every answer to every extreme possibility but Robinton is implementing it in order to find out. He will have more answers on the code level for you than I would. We only ask that you please have a dialog with Robinton and keep open the possibility of this enhancement for Minecraft for a time that is appropriate for both you and the games development.- Thank you for coming here and looking into this. We do what we do because we all love and have been so inspired by you and your game.
Robinton 6 points 2 years agoThanks for answering, MineCrak. Notch's question was around midnight for me.
btw: Grumm, who also works at Mojang, is the one I had an email conversation with at the end of 2012 about adding Cubic Chunks to vanilla minecraft. He personally really wants to.
- The Cubic Chunks Mod is back! Be a part of it's rebirth and Development.
-- Robinton's Mods: [ Mirror ] for some of his Mods incl Cubic Chunks Mod, due to DropBox broken links.
- Dungeon Generator for the Open Cubic Chunks Mod
- QuickSAVE-QuickLOAD for the Open Cubic Chunks Mod
Please folks, it's time to represent for Cubic Chunks.
[ Mog Miner + Cuchaz ]
[EDIT]
I have gone ahead and added a post to that thread, in response to Mog Miners 1st post. In it I directly link to Cuchaz's response in that thread as well as to his Tall Worlds Mod thread and source code etc. Cuchaz was too modest to post those links himself so someone had to.
So please Up my reddit post as well. If it is upped enough then it will be seen near Mog Miners 1st post, thus providing a direct link to Cuchaz's post even if people don't read down far enough to see Mog Miners second post which is what Cuchaz responded to. This covers us all from both directions.
MineCraks post to TheMogMiner:
Minecrak 2 points 44 minutes ago *
Hello MogMiner! Please say hi to Grumm and the rest of the team for me, it's been a while.
-- The good news is that Cubic Chunks is making a grand return to modded Minecraft! Cuchaz has successfully implemented it again and for the modern smp minecraft. He's polishing the edges before release atm. The BEST news is that this time it is Open Source.
- Cuchaz has replied to you in this thread with an answer to your question about how he is currently dealing with that issue in his mod.
There are so very many people who would love to see Minecraft go to the next level with Cubic Chunks and even 3D Biomes. I personally know how much Grumm wants it as well. Please do look at what Cuchaz is doing and consider his ideas, I'm sure he would be happy to experiment further and work with you guys some more.-- Thank you for listening to and responding to the community.
- Cuchaz's response in this thread
- Source - Tall Worlds mod
- Source - MM ModLoader (needed for Tall Worlds)
- Source - MM Libs (needed for Tall Worlds)
Tall Worlds mod Forum thread- The Cubic Chunks Mod is back! Be a part of it's rebirth and Development.
-- Robinton's Mods: [ Mirror ] for some of his Mods incl Cubic Chunks Mod, due to DropBox broken links.
- Dungeon Generator for the Open Cubic Chunks Mod
- QuickSAVE-QuickLOAD for the Open Cubic Chunks Mod
I understand what you mean, now that you've elaborated a bit more on the subject. There really isn't perfect solution to this, due to differences in PC performance. However, a solution that would be viable to some would be to tweak the horizontal and vertical render distances to form an ellipse of view, rather than the sphere formed with the basic render settings. With the right combination, you would be able to see to ground level for quite the distance from where you stand. However, this would become increasingly difficult to achieve the higher you go.
Honestly, however, you would have to go to a fairly great altitude for this problem to even be possible. In the average situation, the ground will be fully visible for the full expected distance no matter how high you are. Once you get to extremely high levels, however, this could become a problem (eg y=200). But that's what render distance sliders are for. :3
Why not stay with true minecraft fashion and load cubes?
Btw people need to get to redit and show their support Cuchaz. I upvoted it only to see it drop 4 points.
-
View User Profile
-
View Posts
-
Send Message
Curse PremiumLol. Modesty didn't enter into it at all. I just couldn't find the button to format urls in the reddit post form. =P
Also, thanks for rallying the community.
Though it is important to note that it's not like a circle magically lets you see further by magic.
A circle only lets you see further in some directions because in terms of total area, a circle is 1.27 (4 ÷ pi) times smaller than a square with the same radius. Essentially, for the game; a square with radius of 8 = circle with radius of 9.
To roughly quantify the differences when considering 3D view regions; let's look at 3 unit cubes. With the first cube, we round all 8 vertices to form a sphere. With the second, we round 4 edges , forming a cylinder. We leave the last cube untouched. The cube has a volume of 1m³. The cylinder has a volume of 0.78m³ (pi/4). The sphere has a a volume of 0.52m³ (pi/6). *numbers are only estimates*
Of course, the maths gets a little bit irritating if we start considering irregular shapes and so on, but the ratio above still provides a reasonable indicator of how the different shapes compare.
I believe in the Invisible Pink Unicorn, bless her Invisible Pinkness.
main post v3.3.0.1b changelog:
•added completely new Cubic Chunks Mod! section, containing details of the mod by Cuchaz in the works.
•edited table of contents to reflect the above
•added new entry to special thanks section for Cuchaz
•added another new entry to special thanks section for MineCrak, he's deserved it for a long time, I must've just forgot to add him at some point.
•discovered missing video in the gallery section
•I have no idea what the url of that video was
•seriously
•does anyone have it by any chance? Someone hunt down Nocte and force him to give it up
Stay tuned for future updates to other sections!
Is this the video you were talking about?
White coats to bind me, out of control
I live alone inside my mind
World of confusion, air filled with noise
Who says that my life's such a crime?
Trapped in this nightmare
I wish I'd wake
As my whole life begins to shake
four walls surround me
an empty gaze
I can't find my way out of this maze
'Cause I don't care
Fall in, fall out
Gone without a doubt, help me
I can't take the blame
They don't feel the shame
It's a madhouse
Or so they claim
It's a madhouse
Oh, am I insane?
My fears behind me, what can I do
My dreams haunt my sleep at night
Oh no, won't learn their lesson, white fills my eyes
And only then they see the light
-Joey Belladonna, Anthrax
I haven't been around here very long so if this has already been suggested please let me know.
(I'm not even sure if this is how the sunlight works in Minecraft already, I have no experience with MC's actual source)
What if the height of sunlight blockage was stored in a 2D map?
So the height at which the highest block is at, the one that is blocking sunlight, is stored on this 2D map (flat chunks?) and if every block is checked during the lighting update to see if it's height is under or above this height.
If the block is below, darken it accordingly.
If it's above, set the height to the new block's height.
Now of course there is the problem of when you break the highest block.
You would have to iterate downwards until you find the next one, right? Possibly not.
You could store the second, third and so on heights below the sunlight. It would prevent iterating downwards.
This may seems a bit stupid considering you could only go so far and you would have to find the next blocks still...
Or maybe you could just wait until the player is near the chunk in which the second height is at to find the new second.
Besides, has there been any better suggestion to the iteration issue? I haven't seen any, plus the "solution" is no longer even on the original post so I have no clue.
Hopefully my misinformed suggestion has provoked some thought, or at least caught some attention.