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
you know that a cubic chunk would be 16x16x16 blocks right (4096 blocks total)? and that chunks in vanilla are currently 16x256x16 blocks (65536 blocks). The only reason its still not 128 is because when mojang considered adding cubic chunks when robinton was working on it, we got anvil format instead. In that they used Robinton's air-chunk compression which checks if a chunk is all air and saves it with just that label, instead of all the individual air blocks, saving a ton of space for higher up chunks.
chunk block calculations
d = 256/16 = 16 chunks
r = 16/2 = 8 chunks
h = 2r = 256 Y blocks = 1 chunk for vanillla = 16 for cubic
blocks per vanilla chunk = 16*256*16 = 65536 blocks
blocks per cubic chunk = 16*16*16 = 4096 blocks
cylinder vanilla:
h*pi*r^2 = Volume of a cylinder
= 202 chunks, rounded up
note: they are already as tall as the map, so their h is just 1 for vanilla chunks
202
chunks* 65536 blocks/chunk= 13,238,272 blockssphere cubic:
(4/3)pi*r^3 = Volume of a sphere
= 2,145 chunks, rounded up
2,145
chunks* 4096 blocks/chunk= 8,785,920 blocksthat's 4,452,352 blocks less!
taking our two equations and dividing cubic by vanilla we get:
(4/3)pi*r^3
2r*pi*r^2
= (4/3)
pi*r^32
r*pi*r^2cancel terms and we are left with
(4/3)
2
= 2/3
.
.
.
this means that making a sphere instead of a cylinder will always load 1/3 less blocks for any view distance!
if you are replying to me, no I did not
" h = 2r = 256 Y blocks = 1 chunk for vanillla = 16 for cubic "
and
" note: they are already as tall as the map, so their h is just 1 for vanilla chunks " (1 being in units of chunks, 16x256x16 blocks)
but in terms of view distance, yes, it will always be 256. that just means the cubic method works with even fewer loaded blocks on smaller view distances. I was comparing a cylinder with a sphere, not necesarily the fixed value in minecraft.
Lemme post some screenies of what I mean. In these tests, 1 block represents a 16^3 area. You can't compare things of different sizes, so I 'cut up' the 16x16x256 chunks into 16 vertical blocks. I put it all in spoilers so I can give you one peice of information at a time.
A view-distance of 5, clearly with these small ones the lag is reduced greatly. Blocks in cylinder: 1920. Blocks in sphere: 1064.
Well, this is a view-distance of 20! It looks to me like the sphere is bigger on this one... and it is. Blocks in cylinder: 22336. Blocks in sphere: 40200. Still not convinced? Click the spoiler button
Holy crap! This one is a view-distance of 50! This is many times more large than a server would have the view-distance on realistically, I put this in so you can see the effect of large view-distances with spherical chunks. It was hard to fit this all in one screenshot, and for some reason those blocks are not rendering with far render distance. Blocks in cylinder: 131584. Blocks in sphere: 564480. Point is, this system doesn't always reduce lag.
TOTAL RESULTS:
VD of 3: Block-lag reduction of 166.66%
VD of 4: Block-lag reduction of 125.64%
VD of 5: Block-lag reduction of 80.45%
VD of 6: Block-lag reduction of 60.00%
VD of 7: Block-lag reduction of 40.54%
VD of 8: Block-lag reduction of 26.82%
VD of 9: Block-lag reduction of 14.68%
VD of 10: Block-lag reduction of 3.56%
VD of 11: Block-lag increase of 3.20%
VD of 12: Block-lag increase of 11.47%
VD of 13: Block-lag increase of 17.16%
VD of 14: Block-lag increase of 22.64%
VD of 15: Block-lag increase of 27.24%
Math operation used for reduction: (Size of cylinder / size of sphere) - 1 = percentage block lag reduced.
Math operation used for increase: (Size of cylinder / size of sphere) = x ; 1 - x = percentage block lag reduced.
Mostly moved on. May check back a few times a year.
Why would I increase the height of the cylinder? Minecraft currently only uses the view-distance to measure the radius of the horizontal axis(es?), the height remains the same because it loads 1 vertical vanilla chunk, which is 256 high. We are measuring the current chunk system with the cylinder, right?
Mostly moved on. May check back a few times a year.
is this an ongoing mod or just talking?
really, i've crashed multiple worlds attempting redstone systems more than nearly 250 blocks long (attempt at a telegraph machine)
SUPPORT!
I'd assume 40%, but keep in mind Air only needs to be simulated for tile-ticks and random updates. Because it currently doesn't use up too much CPU, it'd mostly save small amounts of RAM, and maybe a small portion of the CPU. We'd need to implement this system and have a debugger to do any accurate tests, does the 1.0.0 CC mod have debug info on the F3 menu?
Try small-scale tests, and/or use some form of chunk loaders to load the world. I have no idea how you could be crashing your worlds...
Bone or Jeb, right?
OcD Simple Add-On!
Mostly moved on. May check back a few times a year.