Cubic Chunks! Cubic Chunks!

  • Please make sure you are posting in the correct place. Server ads go here and modpack bugs go here
  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

Should Mojang impliment Cubic Chunks?

  • Yes. That would be awesome!

    Votes: 50 67.6%
  • Maybe. I'm not sure it possible though.

    Votes: 6 8.1%
  • No.

    Votes: 18 24.3%

  • Total voters
    74
Status
Not open for further replies.

MigukNamja

New Member
Jul 29, 2019
2,202
0
0
Existing chunk loaders are supposed to simulate someone being there. Existing chunks are vertical. Existing chunk loaders are vertical.

If/when we switch to cubic, 3D chunks, chunkloaders would/should also be 3D/vertical and simulate someone being there. Heck, the standard ChickenBones chunk loaders' GUI would not have to change. Radius is radius, whether 2D or 3D.

On a server with infinite resources, we would not need chunk loaders as all chunks would stay loaded all the time. However, servers reside in a reality of finite resources and for server performance considerations, it's necessary to 'pause' chunks that the server thinks are safe to pause and it's up to us, as players, to request/demand the server to not pause certain chunks.
 
  • Like
Reactions: WatcherInTheShadows

WatcherInTheShadows

New Member
Jul 29, 2019
162
0
0
I wont profess to fully understand how minecraft works but Ive done a bit of map/level design and optimisation for Unreal Tournament 2004 in the past. From what Ive read heream I right in understanding that cubic chunks loads in the same way that a lot of 1st person shooters render in so much as only what you see is loaded/rendered? If thats the case then obviously this will reduce lag and increase FPS so it has my vote.. optimisation of some of my maps took longer than the actual builds. How would something like that affect chunk loaders in mods if at all? If Ive got it all wrong then Ill just go sit in a corner and play with my crayons quietly.

I think you pretty much have the gist of it. :D
Well, how chuckloaders actually work would be up to the modders.[DOUBLEPOST=1382647951][/DOUBLEPOST]
Existing chunk loaders are supposed to simulate someone being there. Existing chunks are vertical. Existing chunk loaders are vertical.

If/when we switch to cubic, 3D chunks, chunkloaders would/should also be 3D/vertical and simulate someone being there. Heck, the standard ChickenBones chunk loaders' GUI would not have to change. Radius is radius, whether 2D or 3D.

On a server with infinite resources, we would not need chunk loaders as all chunks would stay loaded all the time. However, servers reside in a reality of finite resources and for server performance considerations, it's necessary to 'pause' chunks that the server thinks are safe to pause and it's up to us, as players, to request/demand the server to not pause certain chunks.

Much better put that I.
:)
 

kittle

New Member
Jul 29, 2019
229
0
0
I would personally prefer it to load chunks in, more or less, a "bubble" around the chunk-loader.
Which a player could set.
I thought thats exactly what the OP meant by "spherical render /load distance" ?
To me, "bubble" is close enough to the same shape as "Sphere"

Using a sphere makes the most sense. But you could also do a cube.


edit - seems others already had the same idea, and worded it better.
 

Larmonade

New Member
Jul 29, 2019
146
0
0
One thought that occurs to me is also that, a bit like dwarf fortress, 3d chunks would allow players to customize maximum depth, height, sea-level, etc. at worldgen. Players with powerful computers can have their epic mountain ranges and a journey into the center of the earth, while folks with weaker computers could set bedrock to exist closer to sea-level than I currently does, and chop the mountains in half. Heck, you could even mix and match mastics above-ground world and shallow depth or massive depth and a nearly flat surface.

I Know that with the "flat world" settings, this can already be kind of done, but 3-d chunks would allow for even greater variation and more options.

I'm still on the fence about whether I want to see this as default minecraft, toggle-able option, or 3rd-party mod, but either way, I'm excited.
 
  • Like
Reactions: WatcherInTheShadows

PeggleFrank

New Member
Jul 29, 2019
928
0
0
I saw this earlier. In concept, it sounds fun, but... Minecraft has an infinite horizontal axis, X and Z. If you want diamonds, go to Y level 14 and strip mine, horizontally. Have you ever seen a vertical strip mine? No. Because there isn't a point. Gravity is not horizontal, the world is infinite in terms of horizontality, and thus it works.

Minecraft is limited by processing power, rather heavily, if you want to do cubic chunks correctly. Cubic chunks are completely useless if you don't allow infinite (or at least dynamic) render distance, since if you go higher... everything below you just fades away. It's an endless staircase, and you can only go above the staircase if you can see all the steps below you that you have climbed.


If you want to see how to do this well, take a look at Planetside 2. With render distance settings on max, you can see across the entire map, which is about 64 square kilometers. Does it burn out your processor/graphics card? Of course. Is it amazing, and is it breath taking if you actually get to a place where you can see the entire map? Yes.


If cubic chunks are done, I would prefer they be done within a mod, and used alongside another mod that allows for much larger render distance and more efficient rendering. Otherwise, it's just going to make the world ugly, with giant mountains that you can only see 5% of at any given time.
 
  • Like
Reactions: SatanicSanta

WatcherInTheShadows

New Member
Jul 29, 2019
162
0
0
Minecraft is limited by processing power, rather heavily, if you want to do cubic chunks correctly. Cubic chunks are completely useless if you don't allow infinite (or at least dynamic) render distance, since if you go higher... everything below you just fades away. It's an endless staircase, and you can only go above the staircase if you can see all the steps below you that you have climbed.

That's kind of the idea.
 

aaronfranke

New Member
Jul 29, 2019
36
0
0
Hello members of the FTB Forums, I am one of the few testers of the Cubic Chunks Pre-Alpha Proof of Concept mod by Barteks2x and I made the second video linked in this topic by WatcherInTheShadows.
I'd like to talk to you a little bit about Cubic Chunks. I've been reading up on all the previous posts for awhile now, so let me clear up some confusion.

First of all, some of you were saying that Cubic Chunks would increase lag. It would certainly not, and I have seen it vastly improve FPS in front of my very eyes.
With normal Minecraft, on my preferred settings, I get ~80 FPS.
With the Cubic Chunks mod installed, I get ~200-300 FPS, with lag spikes (Mod is unoptimized as of current).

Secondly, a lot of you were complaining on how you wouldn't be able to see the top of any tower. Just throwing this out there: Even Far render distance does not fully render your X/Z axises if you have the server view distance set to the default. In fact, usually the rendering engine flunks out before it reaches the limits of Far. With Cubic Chunks, you will actually be able to see farther than you could before. An optional feature could be added called CFCR, or "Compressed Faraway Chunk Rendering", causes far away chunks to render in a compressed form, reducing lag even further. There is a game which has a good demonstration of this which you can find a video of here:

Thirdly, a lot of you were complaining of the fact that you don't want the world to be infinite high or deep. Here's the thing: Servers can and always have been able to set a maximum-build-height. With Cubic Chunks, you will be able to set a minimum-build-depth too, which sets a level where bedrock generates and stops chunks from being created below that point.

Fourth(ly?), PeggleFrank, why would you even think we'd be using vertical strip mines?

Sorry if I missed anything, there's a lot of content to reply to in these four pages.
 

mathchamp

New Member
Jul 29, 2019
153
0
0
Gameplay wise, the main issue with an infinite vertical would probably be the distribution of resources. The game is designed so you can get iron fairly quickly, and it doesn't take too long to make it to the depths and get your diamonds. For me it would feel funny having the depth go down thousands of metres while you only have to dig down about 60 to get to the most valuable resources in the game. Most likely it would work best with some kind of mod that changes the vanilla progression and adds more types of resources and challenges for those who want to dig deeper. Of course if it was implemented in Vanilla they'd have to overhaul the entire resource progression. Another recommendation would be lifting the artificial speed cap on vanilla minecarts so they can keep accelerating as long as you're going downhill (or are getting boosted), only limited by friction and resistance. Being able to build an elevator shaft would be nice as well (a "vanilla" version could simply have the motor consume coal in its inventory to run). Currently I will consider just the overworld and neglect the Nether for the time being.

And of course some people will probably like it the old way. So the following worldgen options would be nice (again, nothing in this post is actually happening or even speculation, just random ideas I came up with):

Classic Mode - Heights and depths are similar to now, except that sea level is normalized to 0 metres. This means bedrock is at y = -64. The upward vertical building limit would remain unlimited for people who want to build (unless server sets a limit). All resources spawn similar to how it is now.

Semiclassic mode - Depth and height limits for terrain generation lifted, but resources are positioned as such to make the game progression similar to how it is currently in Vanilla. Resource heights will be relative to the generated terrain height rather than sea level. So coal will be found at all heights. Iron should occur in all terrain except that very close to the surface. Gold will appear if you dig down roughly 40 metres, regardless of whether it's a mountain or the beach where you are digging from. Diamond will be about 60-70 metres deep.

Deep mode - Resources will generally be moved deeper underground, so you can keep going deeper and deeper to find more valuable stuff. Again, resource depths are relative to surface height rather than sea level (so if you spawn on the top of Mt. Everest you don't have to dig 9000 metres down to find basic resources). Resource depths and rarities could also be dependent on biome, so perhaps in certain biomes you won't need to dig as deep for certain resources. As well, the deeper you go, the more kinds of hazards you can run into, such as tougher mobs, more numerous dungeons (that have spawners for these tougher mobs), more lava, etc. Resource progression will be adjusted to have more steps. I'm not a geologist so I don't really know where resources are generally found IRL, but here's an example of how resources could be distributed (based on gameplay progression rather than realism purposes - both in terms of finding and processing these resources, and other mods would be able to alter these values for their own balance):

Coal - Found everywhere. Very close to the surface veins should be common but small (so it's easy to find your first few coal to make torches or cook, although considering you can just make charcoal it's not necessary). Once you're about 50 metres underground the veins are less common but larger, spawning about the way they do now. This continues down for all depths. Perhaps for expansion coal can be split into three grades:
  • Lignite - lowest grade, worth half a normal coal when crafting torches or as furnace fuel. Common at surface level, starts to get less common below 100 metres, rarer below 250 metres, none below 500 metres. Can be mined with wood or better.
  • Bituminous - mid grade, equivalent to vanilla coal. Starts appearing at 100 metres, quite common below 250 metres and continues to appear as you go deeper. Starts becoming less common below 1000 metres and stops appearing below 2000 metres. Can be mined with stone or better.
  • Anthracite - high grade, 50% more value than normal coal in torch crafting or furnace. Starts appearing at below 1000 metres, where you'll find it occasionally instead of the bituminous coal. Becomes more common until it reaches maximum abundance at 2000 metres. Goes down to infinite depth. Can be mined with iron or better.
Copper - Least expensive metal in the game, replacing iron as the first metal you will craft your tools and armor with. It will also be the only metal you can mine with a stone pick. Uncommon at surface level, but gets more common until you're about 50 metres down. At this point it's a bit more common than vanilla iron is now. Starts to get rarer below 250 metres but you'll still find a decent amount at any depth (but if you need copper you should be close to surface level). A copper tool will mine faster than stone but slower than iron, and have the durability of stone. A copper sword will do the same damage as iron but have the durability of a stone one. Copper armor will have the same protection as leather but the durability of gold.

Iron - Starts appearing about 100 metres down and becomes most common at 250 metres deep. Continues down like this to all depths. You can no longer mine this with stone, but you can with copper. However, when smelted in a furnace being fuelled by specifically anthracite, you get a steel ingot instead (or through some other method). Steel tools, weapons, and armor are equivalent to vanilla diamond in stats, except steel tools and weapons have half the durability of diamond ones.

Tin - Starts appearing around 200 metres down, but is extremely rare (a bit rarer than diamonds in Vanilla) until you get below 500 metres (where it will start to be about as common as Vanilla gold). Reaches maximum abundance below 1000 metres (about as common as iron), and remains like this for all depths. Can be mined with copper or better. Tin by itself will craft items that are similar to copper but have better durability (still less than iron), and the armor gives protection like gold armor. Crafting together 3 copper + 1 tin will give 2 bronze. Bronze items will perform slightly better than iron.

Silver - Starts appearing around 250 metres down, gradually becomes more common and maxes out at 500 metres. It's a bit more common than vanilla gold at this point. Mine with iron or better. Tools/weapons/armor is like gold but with less enchantability (still more than wood/stone/iron/copper) and tools mine slower than gold ones.

Gold - Starts appearing around 500 metres down, gradually becomes more common and maxes out at 1000 metres, with the same rarity as now.

Platinum - Starts appearing around 1000 metres down, gradually becomes more common and maxes out at 2000 metres, with similar rarity to gold. Mine with iron or better. Items will be like their iron counterparts but with the same enchantability as gold ones.

Diamond - Also starts appearing around 1000 metres down, being extremely rare. Maxes out at a depth of 2500 metres where it's as common as it is now. Items will keep their current stats but get the enchantability of gold (to make them better than steel which will become the more common counterpart).

Redstone - Starts at around 500 metres down, becomes most common at 1000 and below. Some regions will have a lot of it while others will have almost none - you got to keep exploring.

Lapis - Starts at around 250 metres down, becomes most common at 500 metres, then decays and stops appearing below 1000 metres. Again, abundance is regional.

Titanium - Starts at around 2000 metres deep, and is most common below 4000 metres. Even then it will end up being rarer than diamond. Mine with steel/diamond or better. Tools and weapons are superior to their steel counterparts with faster mining and more damage. Armor has the same protection as steel. Everything has 5x more durability than steel.

Tungsten - Starts at around 3000 metres deep, and is most common below 5000 metres. A bit rarer than titanium. Mine with steel/diamond or better. Tools and weapons will only be as good as diamond ones (slower than titanium due to the weight) but will have 4x the durability of the titanium ones. Armor will have the same durability as titanium but offer even better protection.

Remember that these are only an example. One could easily make a progression with different materials or at different depths.

Of course, Mojang will probably not add cubic chunks to vanilla, although it's possible. However a drastic change to the terrain heights and depths in vanilla is extremely unlikely as it would change the game progression completely. So most likely if Mojang did add something like Cubic Chunks, the worldgen would stay the same and the chunks would just give more space for people's builds. And then modders could add their own worldgens if they wanted to use more height/depth than the Vanilla one.
 
  • Like
Reactions: arthahar

Greyed

New Member
Jul 29, 2019
445
0
0
Ok, all 4 pages done. From what I've seen of the common criticisms it is clear that the people have not read the linked page in the first post. Every one of those criticisms were addressed in the original page.

- "FPS will drop."

No, it will increase because your machine has to load less and the server (SSP or SMP) has to send less to the client. Imagine it this way, place a ball inside a box. The ball represents the render distance as it stands now. The box represents what needs to be loaded to render the ball. All of the space outside the ball but inside the box is essentially wasted. Cubic Chucks allows the data loaded to more closely resemble the ball, thus cutting off the unneeded corners of the box. With a lower overhead there are two things that can be done. Maintain the current render distance and thus performance will improve, or expand the render distance while maintaining performance.

- "Infinite depth make quarries too powerful!"

Infinite depth doesn't alter that equation. Tunnel bores are essentially the same thing. Why this is a concern in the Y axis and not in the X or Z axis is beyond me. But regardless, the minecraftforum page specifically states that the current bedrock generation can be maintained. IE, no infinite depth if you don't want it.

- "Ore generation is balanced by depth!"

Yes, yes it is. Also did you know that any FTB pack that has Thermal Expansion installed isn't using vanilla ore generation? If I recall correctly back in 1.4.x custom ore generation was coded into TE to allow FTB to adjust how ores are distributed. That is why we presently have copper and tin not going to bedrock thus forcing people to mine at two Y levels (or strip mine) to get all the requisite ore. Prior to that one simply dropped to Y10-12 and was able to get all ores. Why do I mention this? Because it points out we are already using a modified ore generation and thus if the underground does get deeper, the fact that ore generation will need to be modified again should not be a problem.

- "You won't be able to see all the way up!"

So? This is like the quarry criticism above. You have that problem now. You cannot see infinitely in the X and Z axis, why are you so concerned about the render distance being an issue in the Y axis? Also, refer to the FPS criticism about being able to increase render distance while maintaining performance.

- "I like it just the way it is!"

Good, I'm sure one of the options will be for "classic" world generation. Of course, I also liked how the worlds rendered in alpha, I found them more interesting and varied. But I also realize I'm not the only player of this game. And while I dislike the current (1.6.x) world gen it has led to BiomesXL and Biomes o' Plenty (amongst others) which does have far better generation than what we had in alpha. The point here is that Cubic Chunks comprises of a set which contains, but is not constrained by, the current generation. IE, by moving to Cubic Chunks you do not lose the ability to have worlds as they are now. But by not moving we lose out on all the features it can bring to the game. So your preference is preserved in either case and as such, this isn't a reason to refuse others the opportunity to play the game differently than you.

- "It ain't broke, why fix it?"

It is broke. Just today I had to reconnect to the SMP server that I play on because of that damnable but where a strip of chunks just won't load. Not once, not twice, but three times in the span of 3 hours. You'd think that was a client-server issue, but I get the same problem almost as frequently in SSP! If a more efficient method of loading chunks means finally quashing this bug, or greatly reducing its occurrence, good!

- "Chunk loaders will break!"

Or they can be modified for the new schema and become far better in the process. Better? Yes, better. How often do you use chunk loaders for operations which are 256 blocks high? If you're like me, never. Outside of quarries which generally comprised of Y64ish to bedrock, most of my chunk loading needs are on very narrow band on the Y axis. 20-30, tops. Let's do the basic math. My average base is confined in a 5x5 square. So to chunkload that base requires the server to keep 1,638,400 blocks in memory/simulate. Meanwhile with Cubic Chunks I would need a 5x5x3 box for my entire base. A chunkloader for that would require the server to keep 307,200 blocks in memory/simulate. Nearly an 80% savings. Or look at DW20's latest video where he uses Railcraft chunkloaders to keep a line in the nether active. It was 2 anchors long, each limited to 9 chunks, so 18 chunks long. 1,179,648 blocks under the current system, or 73,738 blocks under Cubic Chunks. A reduction of 94%.

That means far less lag on SMP servers even though people could do things they couldn't imagine doing now. Simply because the chunk loaders would not be loading and simulating millions (billions?) of unneeded blocks. If anything, chunk loaders are the perfect example of why the format is far superior to the current method. Forget infinite height, chunk loader efficiency alone would be a massive boon for SMP servers that every server operator should be clamouring for this format.

- "How will lighting work!?"

This one wasn't actually raised here but probably would be soon. If we have infinite sky how will sunlight work? They actually have an answer to this and it ends up improving lighting. Each chunk would contain the light level at the border. So chunks at ground level would effectively inherit the sunlight level from the chunk above it. And as you strip-mine down, each chunk you generate would inherit that sunlight level as well. But how would it improve lighting? Well, right now we're confined to light level 15 (torches are 14) because of the chunk size. Chunks are 16 wide. So a torch 2 chunks over cannot cast light into this chunk. It doesn't matter if it is too far, or isn't loaded, the effect is the same. But with light levels being recorded on chunk borders we could, in theory, have light levels higher than 15. Imagine flood lamps with a light level of 32. Daylight being 64. All without the current hack of invisible, intangible non-air "air" blocks that emit light.
 
  • Like
Reactions: WatcherInTheShadows

Omicron

New Member
Jul 29, 2019
2,974
0
0
- "How will lighting work!?"

This one wasn't actually raised here but probably would be soon. If we have infinite sky how will sunlight work? They actually have an answer to this and it ends up improving lighting. Each chunk would contain the light level at the border. So chunks at ground level would effectively inherit the sunlight level from the chunk above it. And as you strip-mine down, each chunk you generate would inherit that sunlight level as well. But how would it improve lighting? Well, right now we're confined to light level 15 (torches are 14) because of the chunk size. Chunks are 16 wide. So a torch 2 chunks over cannot cast light into this chunk. It doesn't matter if it is too far, or isn't loaded, the effect is the same. But with light levels being recorded on chunk borders we could, in theory, have light levels higher than 15. Imagine flood lamps with a light level of 32. Daylight being 64. All without the current hack of invisible, intangible non-air "air" blocks that emit light.

Unfortunately, touching the lighting engine is a large part of what makes Cubic Chunks so difficult to implement. Doing proper lighting in Minecraft is neither easy nor cheap (system resource wise).

The problem with inheriting light levels from chunks above you in a theoretically infinite height world is that the chunks above you have never been generated in the first place. Take the following thought example:

You dig vertically down far into the earth, so far that the surface is outside of your loading distance. Your vertical shaft inherits the light level all the way from the top, where your base is, under the open sky. Now, dig sideways. And keep digging. You leave the area where the surface was generated before, and under the cubic chunks model, it never is generated because you're outside of loading distance. Then suddenly, you break into a great, open space, so great that it may or may not reach all the way to the surface. It could be a ravine, open to the sky; or it could be a gigantic cavern, covered on top. You don't know, you don't see the top. The top is never generated, because it's outside of loading distance. What is your light level now? What is inherited from the chunks above - the chunks that do not exist? You have a Schrödinger's Cat problem where your current location is both open to the sky and not open, and you won't resolve that state until you climb up and observe (load and generate) the surface.

But that's not all, isn't it. It gets worse. Who is defining for you that what you call the surface actually is the surface? Maybe you've been living in another giant cavern all this time, or there's an entire floating continent above you? And another one above that? A seven-shell world like in the fantasy setting Septerra Core? Where do you inherit your light level from? By what definition does a chunk declare that it is now "sky", and there is nothing else above it? And what happens if you then build something above it yourself?

These issues may be solvable, I don't know - I haven't spent much time considering it. But sky-lighting is really a giant bag of problems in Minecraft. For this reason, implementing a world without borders is extremely impractical. Even with cubic chunks, you'd have to limit your world height to a very sane number - say, 512 blocks. If you're on the lowest chunk, it's 15 chunks up, or comparable to the Far view distance setting. For this reason, all people playing with less than Far view distance already run into problems, and you'd need extra logic to generate and check all the chunks above the player if he moves horizontally on a lower level. This eats up the performance savings those people get from Cubic Chunks. With the current world height of 256 you'd need that logic for anyone playing on less than Normal.

I'm actually really curious what aaronfranke and the people who're doing the cubic chunks mod have to say about this problem, because I find it fascinating. Go on, get technical with me, I can take it :)
 

Ripley

New Member
Jul 29, 2019
185
0
0
Very good point Omicron.
I suspect server side you could simply have calculations done at world gen specifying if a chunk is affected by light from above.
If you modify a chunk, it checks if the chunk above is affected by the light and if your changes actually spread that light.
If yes to both it spread the light to your current chunk and all the chunks below(until it encounters a chunk solid enough that it doesn't need to spread that lighting information).
 

Greyed

New Member
Jul 29, 2019
445
0
0
The problem with inheriting light levels from chunks above you in a theoretically infinite height world is that the chunks above you have never been generated in the first place. Take the following thought example:

I started my message with a specific statement, " it is clear that the people have not read the linked page in the first post." Want to know why? It was a subtle hint that maybe people should go read that first. Case in point, your mesage.

Then suddenly, you break into a great, open space, so great that it may or may not reach all the way to the surface. It could be a ravine, open to the sky; or it could be a gigantic cavern, covered on top. You don't know, you don't see the top. The top is never generated, because it's outside of loading distance. What is your light level now?

They addressed this in that topic. In cases like this they can generate up until they do hit a ceiling or they hit sky, they they would know and reiterate down. The joy of how the Minecraft world is generated is that one need not explore to actually generate. Under this model, since generation is actually relatively cheap (4096 blocks per chunk vs. 65536) it is inexpensive for this rare case.

"Ah-ha," I can hear the thought forming in your head, "What if you're super deep?" Put a bounding check on it. IE, if ground level is defined as Y64 and you're at, say, Y-256, chances are if you broke into a ravine that it does not extend all the way up. Therefore it is safe to assume that it doesn't even if you check upwards and hit nothing. IE, this problem is smaller than the limitations imposed on the world with the 256 block height limit.

But that's not all, isn't it. It gets worse. Who is defining for you that what you call the surface actually is the surface?

World generation. If we define the world to have a "sea level" of Y64, and do not generate non-connected terrain over that, then we can say that is the surface once we hit air.

Maybe you've been living in another giant cavern all this time, or there's an entire floating continent above you? And another one above that? A seven-shell world like in the fantasy setting Septerra Core?

Again, that is bounded by the generation and we can set things at that time to not happen.

Where do you inherit your light level from? By what definition does a chunk declare that it is now "sky", and there is nothing else above it?

Again, that is defined in the worldgen. Though given what pure air blocks consist of we can actually check quite a ways up for little cost. Again, this was on the linked page. Do you know how much memory a chunk of air takes up? A couple of bytes. A chunk of air is a special case and gets marked as empty. Empty chunk means there's no need to transmit the individual blocks inside the chunk.

And what happens if you then build something above it yourself?

If you build something over it you first had to get up there thus the chain of light will propagate down. Or we can presume it is so high that normal light diffusion will cause the area underneath to be so nearly bright to day as to not be a problem.

But, really, this all boils down to bounding on worldgen and the presumptions define there. Besides, given the years we've had the pools-of-blackness bug this again comes down to being a minor annoyance compared to the limitation imposed by the 256 height limit as well as the performance hit of requiring all terrain in that height limit be loaded and simulated against. IE, we as the player base already have massively annoying lighting problems that are largely a non-issue. Meanwhile the fight against lag & low TPS is ongoing and much higher on the list of things that tweak us off.

For this reason, all people playing with less than Far view distance already run into problems, and you'd need extra logic to generate and check all the chunks above the player if he moves horizontally on a lower level. This eats up the performance savings those people get from Cubic Chunks.

No, it doesn't. Because you don't need to keep it in memory once generated. So what if you have to generate up 15 chunks to get to sky and get proper lighting if your render distance is set to 12, for example. Generate the 15, get the sky, unload back to 12. In fact, the most you'll need to hold in memory is render distance +1. Render out to 12, no sky, generate 13, no sky, unload 13, generate 14, rinse, repeat until you either hit sky or the bounding limit. This would still be far less overhead than generating a full 256 height chunk.

I'm actually really curious what aaronfranke and the people who're doing the cubic chunks mod have to say about this problem, because I find it fascinating. Go on, get technical with me, I can take it :)


Then look at the first post or two in the minecraftforum topic, they addressed it there.
 
  • Like
Reactions: WatcherInTheShadows

Omicron

New Member
Jul 29, 2019
2,974
0
0
I started my message with a specific statement, " it is clear that the people have not read the linked page in the first post." Want to know why? It was a subtle hint that maybe people should go read that first. Case in point, your mesage.

Guilty as charged... I read the thread a few months ago, and back then it had not been addressed yet. I should have checked for updates.

World generation. If we define the world to have a "sea level" of Y64, and do not generate non-connected terrain over that, then we can say that is the surface once we hit air.

No we can't. Overhangs and land bridges: connected to the surface terrain, quite potentially through other chunks, but too large to be detected by individual checks on a 16x16x16 grid. It's perfectly possible to iterate up to sea level, discover a full 16x16x16 chunk of air, and then still have something hang above it further up. Even with current terrain generation I've seen overhangs sit 40-50 blocks up and either fully or partially cover more than 6 chunks laterally. This defeats even light diffusion, causing complete darkness below.

Granted, it's rare. I've seen maybe two handfuls of such giants in two years of Minecraft. But it's a valid terrain structure and so it must be supported by the new system. The height map solution described in the MCF thread seems to tackle this much better than just iterating up until a certain condition is met. I especially like the idea of pregenerating a rough draft out of the worldgen seed at first creation - that should completely eliminate the need for generating upwards beyond the view range during horizontal exploration, at the cost of a bit longer one-time wait after pressing "create world". That's a trade-off nobody will mind, I'm sure.
 

Greyed

New Member
Jul 29, 2019
445
0
0
No we can't. Overhangs and land bridges . . .
Granted, it's rare. I've seen maybe two handfuls of such giants in two years of Minecraft. But it's a valid terrain structure and so it must be supported by the new system.

I don't see those two as related. As I noted we have lighting bugs now. And they occur in just those situations!

It boils down to a simple cost/benefit analysis. Here are the benefits, a smaller memory footprint per player, at least 25% minimum, which results in either increased performance in either FPS or view distance. Furthermore great gains in terms of chunk-loading mechanics 80% & 94% based on the two real life examples I cited above, which were small examples. The costs would be, so far, a rare edge-case in terrain generation whose result replicates a well-known and hard to squash bug we have presently.

Better FPS or further view, faster TPS with identical chunk loading performance and all for the cost of a bug we already have? Sign me up! :)
 

Shakie666

New Member
Jul 29, 2019
768
0
0
While I would love to have far more verticality in MC than there currently is, I'm not sure if having cubic chunks is the right way to do it.
 

Omicron

New Member
Jul 29, 2019
2,974
0
0
Why not, shakie? The current "vertical columns" setup forces the client to load the entire column all the time. You'll have severe difficulties bumping the height up much without running into severe performance issues.

You can have a small preview of this is you play Terrafirmacraft. That uses the same 256 world height, but it bumps the sea level up from 64 to 144. As a result, there's a whole lot more blocks and a whole lot less air in these columns, and you'll notice that TFC is more performance heavy than any other single mod you can find. It works out for TFC because as a standalone total conversion mod, it won't find its way into modpacks, so it has all those tasty system resources for itself.

That's still without actually increasing world height, though. If you doubled it to 512 in vanilla and set the sea level at 250 or something, with Extreme Hills generating up to 500, you'd have a huge outcry from people who suddenly couldn't run the game with playable FPS anymore. And that's before any mods.

Cubic Chunks is simply a model where you don't force-load the entire column anymore. so you can avoid that effect. What alternative can you come up with?
 

Zjarek_S

New Member
Jul 29, 2019
802
0
0
There is another problem with lighting. What if there is for example very deep mineshaft and it is changed from above, by for example placing or removing covering block from sunlight. Vertical light is very resource heavy now, with cubic chunks this concept would have to be dramatically changed. Lighting in minecraft is an important part of the gameplay, even simple moving light is either visual only or resource heavy. IMO cubic chunks would be a good idea for a new game, but it would require too much changes to minecraft to make it feasible.
 
Status
Not open for further replies.