The Meaning of Life, the Universe, and Everything.
Join Date:
8/31/2015
Posts:
59
Member Details
I'd like to see what they have planned for underground structures like mineshafts, strongholds, dungeons, etc. I speculate there's going to be layers to it, as there's going to be a "crust" layer that is virtually what we already have, including the underground structures. Beneath that would be where the larger open caves would generate, and obviously below that, there's the deep dark. There's obviously going to be modifications or sub-layers so that these layers mesh together well where they meet.
I'd been working on a fun idea for strongholds for about 2 years now, and while it's always been for the sake of fun, there's always been that hope that it at least inspired some sort of change to the shabby stronghold algorithm we have now.
I would prefer this to not be the case. I'm still in the "Emerald Ore should be in every biome" club and think that biome based ores is the worst idea ever. If you want variation in ore generation that's fine as long as it's not biome based.
I'm fairly certain the archaeology bit was in like basically alpha stages. I believe that, in the end, the goal is to have a feature that concentrates on the lore. I had an idea for this a while back that I can't seem to find where I wrote it all down. But basically, there are ruins and pyramids and everything else all over minecraft already. Using archaeology, you could find hints or fragments of hints at what and who these civilizations and peoples were that made them. Everything will be fairly vague at first but then those community members who are lorehounds, like myself, can collaborate and debate and figure out details and theories relating to these ancient civilizations. I believe this is the direction they are wanting to go with it, which is what I would like to see, as well. Hopefully there will also be Artifacts and certain things you could hopefully super-rarely find and put on armorstands or item frames to proudly display in your home I for one am very, very excited to see this and if done correctly, could be the single most exciting addition in 1.17. And even though I do agree that the Brushing animation needs work to bring it in line with the game, I am fairly certain the entire feature is very early in dev. These things will be refined and QA'd over and over again.
I would prefer this to not be the case. I'm still in the "Emerald Ore should be in every biome" club and think that biome based ores is the worst idea ever. If you want variation in ore generation that's fine as long as it's not biome based.
Ore variation per biome is actually an interesting concept, as it gives some reasons to some biomes. And, yes, I know the next thing to come is "that's a bad thing to prop a biome up; make it better on it's own", and I'd actually agree with that in principle, but then what does make a biome something to be set apart from others? Besides aesthetics, resources (and mobs) are about the only things you can do to set them apart, no? The problem in the case of emeralds is it's entirely limited to one biome (rather than being in many, with rarity varying), but it's also mostly useless outside villager trades, which is probably a better way to get them anyway.
The other issue is, ever since 1.7, climate zones have made biome variety across shorter distances lower, so something being restricted to a biome you may not find for a while is a big mood kill. I'm against the climate zones as they are (idea itself is nice, but they are too strict as-is). When emeralds came, though, and I want to say this was 1.3 (?), terrain generation didn't have that, though i guess mountains themselves are still probably (?) almost as common as before, at least outside the savannah/desert warm end of the climate zone.
So I guess I kind of agree with you in a way, but in another, I realize biomes should have some things that set them apart.
What's so bad about illusioners or strays? I actually really like the illusioner concept and wish it was implemented into the actual game.
It's not really new, I mean. Better just add illusioners.
And we have enough kinds of cows with brown and red mooshrooms.
So while a non-luminescent glow squid is boring, at least it adds variety to the seas and shows that passive mobs can also have glow texture parts like spiders and endermen.
Also as to caves: again, I'm really quite scared of caves and I'm glad for them to be small, disposed apart, and end sooner, but I get that other people want them big and chonky, it's work to avoid big caves but not impossible.
Kaiju's picture worries me a bit though if that's legit 1.17 generation. Villages barely improved with 1.14, I don't want them to go back down the rabbit hole of caveins and floating towers again.
Kaiju's picture worries me a bit though if that's legit 1.17 generation. Villages barely improved with 1.14, I don't want them to go back down the rabbit hole of caveins and floating towers again.
They can easily prevent them from reaching the surface, either by having them generate deep down (instead of at a randomized height like normal caves, which start between layers 0-126) and/or preventing them from going to high, much as I do for my "giant cave regions", which constrain the altitude of individual caves to y=45 or less (the ceiling can go higher) with the result that there are very few surface indications despite having a volume of more than 1.25 million blocks across a 300x300 block area; likewise, the largest variants of caves always begin on layers 15-40, with larger caves shifted down and their width-height ratio decreased as their width increases (the widest possible cave has a radius of 42.5 blocks but a height radius of only 25.5, which means that at the maximum altitude of y=34 for a cave of this width the ceiling reaches y=59/60), and the widest caves have a limited vertical variance:
The green areas are exposed at sea level (air on layer 62), but not necessarily above the surface, which is usually higher, so this overestimates the number of surface openings (for example, the large ravine near the lower-right is entirely below the surface despite being shown as reaching sea level along most of its length), the majority of which are due to "normal" caves, with some smaller large caves reaching the surface, otherwise, only smaller branches do; in particular, only a single cave within the giant cave region, which is made up of 94 large caves, reaches the surface, excluding the much smaller "vertical caves" which were added to intentionally do so:
This is the code that I use to generate the largest sizes of caves, which are very similar to normal caves (generateLargeCave2) except they are wider and longer:
// Generates the largest sizes of caves. Type 0 has a large average size and small size range while type
// 1+ has the largest average size (type is 2 or more for multiple cave clusters)
private int generateLargeCave(int chunkX, int chunkZ, int type)
{
int length;
float width;
if (type == 0)
{
// Length ranges from 224-336 and width from 10 to 36
length = 224 + this.largeCaveRNG.nextInt(113);
width = this.largeCaveRNG.nextFloat() * 8.0F + this.largeCaveRNG.nextFloat() * 6.0F + 10.0F;
if (this.largeCaveRNG.nextBoolean()) width *= ((float)length / 224.0F);
}
else
{
// Length ranges up to 336, averages about 192
length = Math.min(112 + this.largeCaveRNG.nextInt(this.largeCaveRNG.nextInt(336) + 1), 336);
// Width is varied over 16x16 chunk areas, initial width averages 3 in both cases
// (multiplier / 8 + min width).
this.caveRNG.setChunkSeed((chunkX + this.caveOffsetX + 12) >> 4, (chunkZ + this.caveOffsetZ + 12) >> 4);
width = this.largeCaveRNG.nextFloat() * this.largeCaveRNG.nextFloat() * this.largeCaveRNG.nextFloat();
if (this.caveRNG.nextBoolean())
{
width = width * 8.0F + 2.0F;
}
else
{
width = width * 2.66667F + 2.66667F;
}
// Final width ranges from 2 to 40; scaled up with length (only if multiplier is greater than 1)
// or multiplied by 1-4. Regardless of length 85.7% of caves have a multiplier that is greater
// than 1.
if (this.largeCaveRNG.nextBoolean())
{
float multiplier = (this.largeCaveRNG.nextFloat() * (float)length / 96.0F + (float)(672 - length) / 672.0F);
if (multiplier > 1.0F) width *= multiplier;
}
else
{
float multiplier = this.largeCaveRNG.nextFloat();
width *= (multiplier * multiplier * 3.0F + 1.0F);
}
}
double x = (double)(chunkX << 4 | 8);
double y = (double)(this.largeCaveRNG.nextInt(26) + 15);
double z = (double)(chunkZ << 4 | 8);
if (y < 20.5D)
{
// Increases minimum depth of larger caves (from 15 to 21 at the maximum width of 40)
y += (double)(width * 0.25F);
}
else if (y > 34.5D)
{
// Decreases average depth of larger caves (from 40 to 34 at the maximum width of 40)
y -= (double)(width * 0.25F);
}
int branchPoint = this.largeCaveRNG.nextInt(length >> 2) + (length >> 1);
float direction = this.largeCaveRNG.nextFloat() * 6.283185F;
// Curviness varies from 0.333 to 0.6 depending on length (normal is 0.4)
float curviness = (float)length / 840.0F + 0.2F;
if (type == 0)
{
if (this.largeCaveRNG.nextInt(6) == 0)
{
// Generates the largest possible size of cave; generated as three main caves at roughly 120
// degree angles offset outwards from starting point. Also adjusts width upwards further,
// but maximum is reduced to 32 (68 blocks). Equivalent length is up to 504 blocks.
int startPos = length >> 2;
width = width * 0.75F + 5.0F;
float width2 = width * 0.5F;
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x + (double)(cosine(direction) * width2), y, z + (double)(sine(direction) * width2), width, direction, (this.largeCaveRNG.nextFloat() - 0.5F) * 0.25F, startPos, length, branchPoint, curviness, true, true);
float direction2 = direction + this.largeCaveRNG.nextFloat() + 1.594395F;
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x + (double)(cosine(direction2) * width2), y, z + (double)(sine(direction2) * width2), width, direction2, (this.largeCaveRNG.nextFloat() - 0.5F) * 0.25F, startPos, length, branchPoint, curviness, true, true);
direction2 = direction + this.largeCaveRNG.nextFloat() + 3.68879F;
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x + (double)(cosine(direction2) * width2), y, z + (double)(sine(direction2) * width2), width, direction2, (this.largeCaveRNG.nextFloat() - 0.5F) * 0.25F, startPos, length, branchPoint, curviness, true, true);
}
else
{
// Generates three caves from the starting point; a large main cave and two smaller branches
// at 90 degree angles, each of which branch again; these caves are equivalent to a single
// normal cave that is up to 462 blocks long.
int startPos = length - branchPoint;
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, width, direction, (this.largeCaveRNG.nextFloat() - 0.5F) * 0.25F, startPos, length, 0, curviness, false, true);
length += startPos;
startPos = length >> 1;
branchPoint = ((startPos * 3) >> 1) + this.largeCaveRNG.nextInt(startPos >> 2);
// Primary branches are 50-75% of the width of the main cave and secondary branches are
// 50-100% of the width of the primary branches (both relative to the width at the branch
// point, not the maximum width).
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, (this.largeCaveRNG.nextFloat() * width + width * 2.0F) * 0.25F, direction + 1.570796F, (this.largeCaveRNG.nextFloat() - 0.5F) * 0.25F, startPos, length, branchPoint, curviness, true, true);
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, (this.largeCaveRNG.nextFloat() * width + width * 2.0F) * 0.25F, direction - 1.570796F, (this.largeCaveRNG.nextFloat() - 0.5F) * 0.25F, startPos, length, branchPoint, curviness, true, true);
}
}
else
{
// Smaller variant generated like normal caves; for length > 200 startPos is set to length / 2
// and two caves are generated in opposite directions from the start (at a length of 336 the
// main cave extends back 84 while branches begin 84-168 in the other direction), so caves
// don't go outside the gen-range.
int startPos = (length - 168) >> 1;
if (startPos > 16)
{
// Shifts starting point backwards
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, width, direction - 3.141593F, (this.largeCaveRNG.nextFloat() - 0.5F) * 0.25F, length - startPos, length, -999, curviness, false, true);
}
else
{
startPos = 0;
}
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, width, direction, (this.largeCaveRNG.nextFloat() - 0.5F) * 0.25F, startPos, length, branchPoint, curviness, false, true);
}
// If type is 1 returns y + (direction * 1024) * 256, else returns y
int ret = (int)(y + 0.5D);
if (type == 1) ret += (int)(direction * 1024.0F) << 8;
return ret;
}
// Used to generate larger than normal caves; length and branchpoint are set externally. giantCaveBranch
// increases the width of secondary branches, used by the largest variant of cave; vertVar determines if
// there is a 1/6 chance of increased vertical variation, disabled for type 2 caves in giant cave
// regions; only affects main cave, not branches.
private void generateLargeCave2(long seed, double x, double y, double z, float width, float directionXZ, float directionY, int pos, int length, int branchPoint, float curviness, boolean giantCaveBranch, boolean vertVar)
{
this.caveRNG.setSeed(seed);
float varXZ = 0.0F;
float varY = 0.0F;
int startPos = pos;
// Minimum radius varies from 1.75 to 2.5 for a width of 0-40
float minRadius = 1.75F + width / 53.3333F;
// Only caves with a width of less than 20 can have increased vertical variation
for (float vertVarMultiplier = (vertVar && this.caveRNG.nextInt(6) == 0 && width < 20.0F ? 0.92F : 0.7F); pos < length; ++pos)
{
if (pos == branchPoint)
{
// Unlike normal caves the width of branches varies from 33% to 66% of the width of the
// parent cave (50 to 100% when giantCaveBranch is true).
seed = this.caveRNG.nextLong();
if (giantCaveBranch) width *= 1.5F;
varY = (this.caveRNG.nextFloat() * width + width) / 3.0F;
directionY /= 3.0F;
this.generateLargeCave2(this.caveRNG.nextLong(), x, y, z, (this.caveRNG.nextFloat() * width + width) / 3.0F, directionXZ - 1.570796F, directionY, pos, length, 0, curviness, false, true);
this.generateLargeCave2(seed, x, y, z, varY, directionXZ + 1.570796F, directionY, pos, length, 0, curviness, false, true);
return;
}
double radiusW = minRadius + (double)(sine((float)pos * 3.141593F / (float)length) * width);
double distanceX = x - this.chunkCenterX;
double distanceZ = z - this.chunkCenterZ;
double lengthAndRadius = (double)(length - pos + MARGIN) + radiusW;
if (distanceX * distanceX + distanceZ * distanceZ > lengthAndRadius * lengthAndRadius) return;
float dy = cosine(directionY);
x += (double)(cosine(directionXZ) * dy);
y += (double)sine(directionY);
z += (double)(sine(directionXZ) * dy);
directionY *= vertVarMultiplier;
// Constrains type 2 caves to y=4-45
if (!vertVar)
{
if (y > 45.0D)
{
varY = -0.25F;
}
else if (y < 4.0D)
{
varY = 0.25F;
}
}
directionY += varY * 0.2F;
directionXZ += varXZ * curviness;
varY *= 0.9F;
varXZ *= 0.75F;
varY += this.caveRNG.nextFloatSq();
varXZ += this.caveRNG.nextFloatSq();
double radiusW9 = radiusW + 9.0D;
// Skips 50-75% of segments depending on width
if (x >= this.chunkCenterX - radiusW9 && x <= this.chunkCenterX + radiusW9 && z >= this.chunkCenterZ - radiusW9 && z <= this.chunkCenterZ + radiusW9 && ((pos & (radiusW >= 4.0D ? 3 : 1)) == 0 || pos == startPos || pos == length - 1))
{
// Adjusts width-height ratio so larger caves are not as relatively tall; at the maximum radius of
// 40 (radiusW = 42.5) ratio is 0.6, giving a maximum height radius of 25.5 (42.5 * 0.6).
double radiusH = radiusW * (1.0D - radiusW / 106.25D);
// Adjusts amplitude of noise as width of cave varies; reaches a minimum of 0.01 at the
// maximum width of 40 (radiusW = 42.5)
double noiseMultiplier = 0.275D / Math.max(radiusW - 1.0D, 0.916666D) + 0.0033735D;
this.generateCaveSegment(x, y, z, radiusW, radiusH, noiseMultiplier, 1);
}
}
}
That said, I've found things like this, which could swallow an entire village (note that in newer versions they generate on the surface, regardless of altitude; in 1.6.4/TMCW they generate no lower than sea level, creating pillars below; the latter is preferable IMO since you can fill in holes around the buildings, leaving them on a flat surface at sea level, while now you'd need to deconstruct and rebuild the buildings if you want them at the "real" surface/sea level):
This is another cave that I found, which goes all the way up to y=128 in a Superflat world:
This is the rare exception though; even the largest caves are usually entirely underground; this is the largest single cave that I know of, with a volume of over 730,000 blocks yet it barely breaches the surface, y=64 in the "Overworld" Superflat preset (it is entirely underground in a non-Superflat world since it is under an ocean, otherwise, the ground only needs to be a few blocks deeper and even e.g. Plains will likely cover it):
Locations of largest caves by volume:
1: 7240 26 1032 (length: 490, width: 73, volume: 731429)
To put the size of this cave into perspective the area shown is 23x23 chunks or 368x368 blocks and the cave istelf is 256 blocks north-south (the white/gray checkerbord represents the maxmum extent of a cave from its origin chunk; ravines can get as long as this allows without clipping):
Of course, it is impossible to tell what Mojang will do but I'm sure they will consider this since many players do dislike "swiss cheese" at the surface; they could even prevent larger caves from generating near villages, much as I exclude them from near strongholds (though they generate intact anyway; it is a myth that caves cut apart strongholds, rather, the walls of strongholds do not replace air blocks, much in the opposite manner as mineshafts replacing air in the floor with wood planks), or just prevent them from breaking the surface near a village (you just need the surface height map, which is availabe from chunk generation, and prevent caves from carving out blocks within a few layers, also, caves should replace sand/gravel above them with sandstone/cobblestone or some other support block, as they did for a short time in 1.8, which was later removed so they will now cave in when updated).
Ore variation per biome is actually an interesting concept, as it gives some reasons to some biomes. And, yes, I know the next thing to come is "that's a bad thing to prop a biome up; make it better on it's own", and I'd actually agree with that in principle, but then what does make a biome something to be set apart from others? Besides aesthetics, resources (and mobs) are about the only things you can do to set them apart, no? The problem in the case of emeralds is it's entirely limited to one biome (rather than being in many, with rarity varying), but it's also mostly useless outside villager trades, which is probably a better way to get them anyway.
The other issue is, ever since 1.7, climate zones have made biome variety across shorter distances lower, so something being restricted to a biome you may not find for a while is a big mood kill. I'm against the climate zones as they are (idea itself is nice, but they are too strict as-is). When emeralds came, though, and I want to say this was 1.3 (?), terrain generation didn't have that, though i guess mountains themselves are still probably (?) almost as common as before, at least outside the savannah/desert warm end of the climate zone.
So I guess I kind of agree with you in a way, but in another, I realize biomes should have some things that set them apart.
The thing is that the cave biomes already have things that make them unique. Each of the new caves biomes all have unique items, blocks and (sometimes) mobs that can only be found in those biomes. Ores should be separate from biomes. As interesting as iron level gold in mesas and emeralds being found in mountains is; this update is pretty much going to remove these features due to cave biomes. Something that could be done to make ore generation more interesting is a separate ore distribution seed of sorts. Sometimes you might come across an area where there is far more iron than normal but with less coal. You might find a place where gold or even diamonds are found at higher elevations. This could make ore generation more interesting and possibly make caving more profitable/efficient and make boring strip mining less effective. It would do this while being separate from biomes and thus not punishing players for preferring some caves over others.
As for emerald ore I think that it's fine to make it a bit more common as emerald ore can provide a good boost to early game village building. Early bases often don't have the large farms that are necessary for good emerald output. Making emerald ore more available will help players level up low level villagers that prefer to sell more than buy in their beginning levels. It won't beat the amount of emeralds that automatic sugar cane or wool farms can produce but I could see a long mining trip able to provide a player with 20 emeralds (without fortune).
I don't agree with the first thing; that's pretty much variation, which you're saying you're against, only it's random and tied to nothing which is even worse. If it's going to vary, tie it to something identifiable. Hidden mechanics are bad mechanics in my opinion (it's understandable to have certain things a bit less clear, but not the bigger things).
If you want iron, you'd have to hope you don't go to a place low on it. As someone who recently started a new world and is having issues with this, I'm about to resort to branch mining with stone tools or looking up iron farms or something (and I almost NEVER make automated farms) because caves have been awful since 1.7. If such a mechanic existed, I'd be more frustrated right now.
If it's going to be tied to something at all, it should be a clear, identifiable thing, not random. Like with flowers, they have a random (but consistent) pattern, but if you don't know it, you still know "I want tulips so I better seek a flower forest". That's acceptable (well, somewhat; the climate zones being so strict and rarity of some biomes can make it a pain to find one early on). If it was pure random and not tied to a biome, I would find that poorer design.
If you're just saying the new biomes are going to add variety so emeralds shouldn't be restricted entirely to mountain biomes anymore, then yeah, I can agree with that.
Oh, I'm not necessarily saying they should be, per se. I'm just also acknowledging that resource variation and mob variation is about all the game can do to differentiate biomes (besides aesthetics) and that I'm also not totally against it, if done right.
As it is now, I think the resources that ARE limited are done so in a way that's not really detrimental. At the very least, in the case of emeralds, the biome they are restricted to isn't all that rare AND the ore in question isn't ONLY obtainable from natural generation (so it's really not only found just there) AND it has a more currency role among villagers rather than a primary role as most other ores have. In that way, it's balanced, which is what matters way more than the fact that it's only naturally found in one biome. Are you also against nether quartz and the new nether ores being restricted? They may be in another dimension but the concept is the same (if not, more so, as they take longer to get AND have more of a primary role than emeralds).
Most exclusive resources are typically not too important but sometimes have alternate ways to obtain them (such as bamboo). Lush caves will be getting plenty of new foliage blocks, items, and the new axolotl. Dripstone caves have stalagmites and stalactites. The Deep dark has skulk growths and skulkers. I personally think that is fine.
I am well aware that emerald ore is a secondary source of emeralds but so are illagers and illager patrols can now be found in every biome except ocean biomes (and other dimensions). Emerald ore being more common would also up the ore diversity alongside the new copper ore. However if Mojang insists on the ore being exclusive then I think it should generate in the abandoned mine shafts (which hopefully get an overhaul themselves).
I find the Nether ores a nice reason to travel to the Nether on a regular basis. The Nether ores also follow a global distribution that is technically the same in every biome.
However there is one other block I hope has a good future in 1.17: Monster Egg Blocks. Silverfish are a neat mob that can threaten any player that cannot one-shot them. Their blocks instantly break and can be a startling surprise at times. The problem is that they also only generate in the extreme hills biome. Now I think they should be in every biome but if they were going to be biome exclusive still I would hope they would go to the dripstone cave which would add on to the caves' crumbly vibes.
I don't agree with the first thing; that's pretty much variation, which you're saying you're against, only it's random and tied to nothing which is even worse. If it's going to vary, tie it to something identifiable. Hidden mechanics are bad mechanics in my opinion (it's understandable to have certain things a bit less clear, but not the bigger things).
I, on the contrary, would like more random generation.
After playing hundreds of Minecraft games, you find that the game has too much predictable patterns and behavior... For example, you need to get diamonds, and you always go to the level Y=10 or Y=11 and start branch mining there... Or you find a desert temple, and the TNT is always placed the same way and you always deactivate the trap the same way. And so on.
There are too many things predictable in Minecraft, which is a sandbox game with procedural generation that could use seed numbers much better to make more random and less predictable worlds.
I'd like this upcoming release to improve unpredictability of what you find underground... It seems we'll get variations in caves, but I'd like also variations in mineshafts and dungeons, variations in ore rarity and placement (depending on the underground biome would be logical, since it's not the same a biome with large caverns where many ores are unveiled than a biome with narrow caves where you need to break stone to reveal ores), etc.
This video makes me worry about mine shafts and strongholds. These things are seriously outdated and will need changes made to them to have them work with the new cave systems. If a mine shaft generates in a vast empty cave then it will simply make an awkward, floating wood structure. A stronghold will be reduced to floating doors with a giant floating portal room. Somethings needs to happen to these structures. At least Nether forts got a passive buff in the Nether Update: If a fort generates in a warped forest, soulsand valley, or basalt delta it will spawn much more blazes and wither skeletons which make them far more dangerous. These BETA 1.8 structures will be torn to shreds by the new cave mechanics unless they generate in solid stone. Hopefully this issue will become big enough that it could not be ignored.
However I am excited that crystals and copper will be getting other uses besides what we were initially shown.
I agree on regards to existing structures. Heck, they get torn to shreds by current generation so I can only imagine what bigger and more varied caves will do to them.
Rollback Post to RevisionRollBack
Want some advice on how to thrive in the Suggestions section? Check this handy list of guidelines and tips for posting your ideas and responding to the ideas of others!
This video makes me worry about mine shafts and strongholds. These things are seriously outdated and will need changes made to them to have them work with the new cave systems. If a mine shaft generates in a vast empty cave then it will simply make an awkward, floating wood structure. A stronghold will be reduced to floating doors with a giant floating portal room. Somethings needs to happen to these structures. At least Nether forts got a passive buff in the Nether Update: If a fort generates in a warped forest, soulsand valley, or basalt delta it will spawn much more blazes and wither skeletons which make them far more dangerous. These BETA 1.8 structures will be torn to shreds by the new cave mechanics unless they generate in solid stone. Hopefully this issue will become big enough that it could not be ignored.
They can easily prevent, or at least reduce, this by preventing mineshafts from generating too close to large caves, and likewise for strongholds prevent large caves from generating too close to them (i.e. the opposite of mineshafts, as it wouldn't be good for strongholds to fail to generate):
// Sets size of mineshaft from 5 to 11 sections (default is 8)
SECTION_COUNT = 5 + this.spawnRNG.nextInt(7);
if (!this.caveCheck(chunkX, chunkZ, distance))
{
if (SECTION_COUNT >= 10)
{
// Re-runs check with a section count of 7-9 if a large mineshaft fails the first check
this.spawnRNG.setSeed(seed);
SECTION_COUNT = 7 + this.spawnRNG.nextInt(3);
if (!this.caveCheck(chunkX, chunkZ, distance)) return false;
}
else
{
return false;
}
}
private boolean caveCheck(int chunkX, int chunkZ, int distance)
{
// Areas over which caves are checked
int radius = 6;
int colossalCaveR2 = 37;
int caveR2 = 17;
int centerR2 = 4;
int limit = this.caveLimitSmall;
// Mineshafts with 10-11 sections use a cave exclusion radius that is one chunk larger and a lower cave
// limit; overall probability is reduced, similar to sizes 5-6, but due to increased exclusion.
if (SECTION_COUNT >= 10)
{
radius = 7;
colossalCaveR2 = 50;
caveR2 = 26;
centerR2 = 9;
limit = this.caveLimitLarge;
}
int caveCount1 = 0;
int caveCount2 = 0;
int caveCount3 = 0;
int caveCount4 = 0;
int caveCount5 = 0;
// totalWidth is the sum of the widths of all large caves and ravines
float totalWidth = 0.0F;
for (int z = -radius; z <= radius; ++z)
{
int cz = chunkZ + z;
for (int x = -radius; x <= radius; ++x)
{
int x2z2 = x * x + z * z;
if (x2z2 <= colossalCaveR2)
{
int cx = chunkX + x;
if (distance < 16384) distance = cx * cx + cz * cz;
if (this.caveGenerator.validColossalCaveLocation(cx, cz, distance)) return false;
// Checks for the largest variants of ravine; exclusion is based on a width greater than 10
// (the average width of the largest ravines) within colossalCaveR2, plus a length greater
// than 160 (the average length of the smaller variant) within caveR2. The total width of
// all large ravines and caves is also used to exclude mineshafts when the sum exceeds 30
int ravineType = this.caveGenerator.validRavineLocation(cx, cz, distance, x2z2, 0);
if (ravineType == 1 || ravineType == 2)
{
this.spawnRNG.setChunkSeed(cx, cz);
this.spawnRNG.nextInt(this.spawnRNG.nextInt(50) + 8);
this.spawnRNG.nextFloat();
this.spawnRNG.nextFloat();
float width = this.spawnRNG.nextFloat() * 4.0F + this.spawnRNG.nextFloat() * 2.0F;
if ((ravineType == 1 || width >= 2.0F) && this.spawnRNG.nextInt(4) == 0)
{
width += this.spawnRNG.nextFloat() * 2.0F;
}
int length = 112 - this.spawnRNG.nextInt(15) * 2;
if (this.spawnRNG.nextInt(3) == 0) this.spawnRNG.nextInt(3);
length += (this.spawnRNG.nextInt(64) * 2);
if (width < 2.0F)
{
width += 1.0F;
if (width < 2.0F) width += 1.0F;
}
width *= (this.spawnRNG.nextFloat() * this.spawnRNG.nextFloat() * 1.5F + 1.0F);
if (ravineType == 2)
{
length += (80 + this.spawnRNG.nextInt(40) * 2);
width += (this.spawnRNG.nextFloat() * (float)(length / 56) + 3.0F);
}
if (length > 160 || x2z2 <= caveR2)
{
totalWidth += width;
if (width > 10.0F || totalWidth > 30.0F) return false;
}
}
// Checks for the largest variant of cave, which are handled in a similar manner to ravines,
// split between colossalCaveR2 (width > 18) and caveR2 (width > 10 and including smaller variant)
if (x2z2 > caveR2)
{
float width = this.caveGenerator.getLargeCaveWidth(cx, cz, distance, 0);
totalWidth += width;
if (width > 18.0F || totalWidth > 30.0F) return false;
}
else
{
// Excludes mineshafts from near strongholds
if (this.strongholdGenerator.validStrongholdLocation(cx, cz, distance) && this.checkForStrongholds) return false;
// Excludes mineshafts from near special cave systems and within giant cave regions;
// even though normal caves do not generate within network cave regions mineshafts are
// still affected by the number that would otherwise generate.
if (this.caveGenerator.validSpecialCaveLocation(cx, cz, distance) > 0) return false;
if (this.caveGenerator.validRegionalCaveLocation(cx, cz, distance) && this.caveGenerator.isGiantCaveRegion(cx, cz)) return false;
// Checks for both of the largest variants of caves (-1)
float width = this.caveGenerator.getLargeCaveWidth(cx, cz, distance, -1);
totalWidth += width;
if (width > 10.0F || totalWidth > 30.0F) return false;
// Counts the number of normal caves, not considering any variations applied to them
// as simulating this is far too complex
this.spawnRNG.setChunkSeed(cx, cz);
if (this.spawnRNG.nextInt(15) == 0)
{
int caves = this.spawnRNG.nextInt(this.spawnRNG.nextInt(this.spawnRNG.nextInt(40) + 1) + 1);
if (caves > 0)
{
// Caves are added up four halves plus a central area for improved exclusion
if (x < 0)
{
caveCount1 += caves;
if (caveCount1 > limit) return false;
}
else if (x > 0)
{
caveCount2 += caves;
if (caveCount2 > limit) return false;
}
if (z < 0)
{
caveCount3 += caves;
if (caveCount3 > limit) return false;
}
else if (z > 0)
{
caveCount4 += caves;
if (caveCount4 > limit) return false;
}
// Center uses a reduced limit of 2/3 over a smaller area
if (x2z2 <= centerR2)
{
caveCount5 += caves;
if (caveCount5 > limit * 2 / 3) return false;
}
}
}
}
}
}
}
return true;
}
Also, by changing just a few lines of code I made the walls of strongholds always overwrite blocks, including air; there is a special flag used by the methods that place walls which when set to true will ignore air blocks, which I overrode to always set it to false:
// The following 5 methods are overridden to set the "don't overwrite air" flag (last parameter) to false
protected void fillWithBlocks(World par1World, StructureBoundingBox par2StructureBoundingBox, int par3, int par4, int par5, int par6, int par7, int par8, int par9, int par10, boolean par11)
{
super.fillWithBlocks(par1World, par2StructureBoundingBox, par3, par4, par5, par6, par7, par8, par9, par10, false);
}
protected void fillWithMetadataBlocks(World par1World, StructureBoundingBox par2StructureBoundingBox, int par3, int par4, int par5, int par6, int par7, int par8, int par9, int par10, int par11, int par12, boolean par13)
{
super.fillWithMetadataBlocks(par1World, par2StructureBoundingBox, par3, par4, par5, par6, par7, par8, par9, par10, par11, par12, false);
}
protected void fillWithRandomizedBlocks(World par1World, StructureBoundingBox par2StructureBoundingBox, int par3, int par4, int par5, int par6, int par7, int par8, boolean par9, Random par10Random, StructurePieceBlockSelector par11StructurePieceBlockSelector)
{
super.fillWithRandomizedBlocks(par1World, par2StructureBoundingBox, par3, par4, par5, par6, par7, par8, false, par10Random, par11StructurePieceBlockSelector);
}
protected void randomlyFillWithBlocks(World par1World, StructureBoundingBox par2StructureBoundingBox, Random par3Random, float par4, int par5, int par6, int par7, int par8, int par9, int par10, int par11, int par12, boolean par13)
{
super.randomlyFillWithBlocks(par1World, par2StructureBoundingBox, par3Random, par4, par5, par6, par7, par8, par9, par10, par11, par12, false);
}
protected void randomlyRareFillWithBlocks(World par1World, StructureBoundingBox par2StructureBoundingBox, int par3, int par4, int par5, int par6, int par7, int par8, int par9, boolean par10)
{
super.randomlyRareFillWithBlocks(par1World, par2StructureBoundingBox, par3, par4, par5, par6, par7, par8, par9, false);
}
Similarly, all parts of a mineshaft should generate wooden platforms below them, including the center room and staircases, which would keep them more intact when they do generate in caves/ravines (I only exclude them enough so they won't be in the middle of large caves/ravines as completely excluding even part of them would be against my ideal of the underground being an infinite network):
I also exclude mineshafts from regions of high normal cave density, which I've even applied to my otherwise vanilla first world because I find large cave systems filled with mineshafts to be objectionable; in TMCW I also changed the way they are placed so they rarely overlap, and never to the extent of entire structures (in vanilla 1.6.4 the majority of mineshafts directly intersect at least one other mineshaft, sometimes forming crazy messes). This is because vanilla allows them to generate in any chunk, I've even seen three mineshafts centered within a 2x2 chunk area, while most other structures generate aligned to a grid with a region-relative offset, for example, villages use a 32x32 chunk grid with an offset of 0-23 within each region so they will never generate less than 9 chunks apart (center-center). Mineshafts would use a smaller grid; I set it to 7x7 with relative offsets of 0-2 in alternate quadrants within a larger 14x14 chunk region, with surface mineshafts in mesas generating in the other quadrants (this means they have double the mineshafts), with a 100% success rate representing the vanilla 1.6.4 frequency (1/98 vs 1/100), with about 40% failing the cave check (this still makes them about 50% more common than in 1.7+, with their areal coverage closer to 1.6.4 since they are more spread out):
// Generates mineshafts aligned to a 7 chunk grid at relative coordinates 0,0 to 2,2 and in half of
// quadrants in a 14 chunk grid, or one per 98 chunks (1.02% chance vs 1% for vanilla), excluding surface
// mineshafts. Actual chance is lower, about 60% of vanilla, due to checks excluding mineshafts from areas
// of high cave density and other areas.
int chunkOffX = chunkX + this.mineshaftOffsetX;
int chunkOffZ = chunkZ + this.mineshaftOffsetZ;
int chunkModX = chunkOffX % 7;
int chunkModZ = chunkOffZ % 7;
if (chunkModX > 2 || chunkModZ > 2) return false;
chunkOffX /= 7;
chunkOffZ /= 7;
this.spawnRNG.setChunkSeed(chunkOffX, chunkOffZ);
if (chunkModX != this.spawnRNG.nextInt(3) || chunkModZ != this.spawnRNG.nextInt(3)) return false;
// When these values are equal a mesa mineshaft generates, otherwise generates normal underground
// mineshafts. Checks if the distance from the center (genDistance) is 3 chunks or less to reduce
// computations.
if ((chunkOffX & 1) == (chunkOffZ & 1)) return this.genDistance <= 3 && this.mesaBiomeCheck(chunkX, chunkZ);
Vanilla 1.6.4 (1/100 chance in any chunk):
TMCW (alternating 7x7 chunk regions, excluded from areas of high cave density and special types of caves):
For comparison, this is a map of caves, ravines, and strongholds only (there is a stronghold near the upper-right, west of a network cave region near the right side):
The Meaning of Life, the Universe, and Everything.
Join Date:
2/11/2017
Posts:
662
Member Details
Is it possible that mob spawning rates will be reduced in lush caves (since they're more lit than other caves), or will the rates be rigged in that biome so that they remain consistent with the rest of the caves?
Rollback Post to RevisionRollBack
Remember those versions that minecraft pranked us with? Specifically:
Minecraft 2.0
Minecraft 1.VR-Pre1
Snapshot 15w14a
Minecraft 3D
Those are still downloadable! Watch this video for 2.0:
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
That's a pretty funny image.
Praise be to Spode.
I'd like to see what they have planned for underground structures like mineshafts, strongholds, dungeons, etc. I speculate there's going to be layers to it, as there's going to be a "crust" layer that is virtually what we already have, including the underground structures. Beneath that would be where the larger open caves would generate, and obviously below that, there's the deep dark. There's obviously going to be modifications or sub-layers so that these layers mesh together well where they meet.
I'd been working on a fun idea for strongholds for about 2 years now, and while it's always been for the sake of fun, there's always been that hope that it at least inspired some sort of change to the shabby stronghold algorithm we have now.
I'd like some variation in ore rarity and placement depending on the underground biomes, but I guess this is asking too much.
I would prefer this to not be the case. I'm still in the "Emerald Ore should be in every biome" club and think that biome based ores is the worst idea ever. If you want variation in ore generation that's fine as long as it's not biome based.
Praise be to Spode.
I'm fairly certain the archaeology bit was in like basically alpha stages. I believe that, in the end, the goal is to have a feature that concentrates on the lore. I had an idea for this a while back that I can't seem to find where I wrote it all down. But basically, there are ruins and pyramids and everything else all over minecraft already. Using archaeology, you could find hints or fragments of hints at what and who these civilizations and peoples were that made them. Everything will be fairly vague at first but then those community members who are lorehounds, like myself, can collaborate and debate and figure out details and theories relating to these ancient civilizations. I believe this is the direction they are wanting to go with it, which is what I would like to see, as well. Hopefully there will also be Artifacts and certain things you could hopefully super-rarely find and put on armorstands or item frames to proudly display in your home I for one am very, very excited to see this and if done correctly, could be the single most exciting addition in 1.17. And even though I do agree that the Brushing animation needs work to bring it in line with the game, I am fairly certain the entire feature is very early in dev. These things will be refined and QA'd over and over again.
Ore variation per biome is actually an interesting concept, as it gives some reasons to some biomes. And, yes, I know the next thing to come is "that's a bad thing to prop a biome up; make it better on it's own", and I'd actually agree with that in principle, but then what does make a biome something to be set apart from others? Besides aesthetics, resources (and mobs) are about the only things you can do to set them apart, no? The problem in the case of emeralds is it's entirely limited to one biome (rather than being in many, with rarity varying), but it's also mostly useless outside villager trades, which is probably a better way to get them anyway.
The other issue is, ever since 1.7, climate zones have made biome variety across shorter distances lower, so something being restricted to a biome you may not find for a while is a big mood kill. I'm against the climate zones as they are (idea itself is nice, but they are too strict as-is). When emeralds came, though, and I want to say this was 1.3 (?), terrain generation didn't have that, though i guess mountains themselves are still probably (?) almost as common as before, at least outside the savannah/desert warm end of the climate zone.
So I guess I kind of agree with you in a way, but in another, I realize biomes should have some things that set them apart.
It's not really new, I mean. Better just add illusioners.
And we have enough kinds of cows with brown and red mooshrooms.
So while a non-luminescent glow squid is boring, at least it adds variety to the seas and shows that passive mobs can also have glow texture parts like spiders and endermen.
Also as to caves: again, I'm really quite scared of caves and I'm glad for them to be small, disposed apart, and end sooner, but I get that other people want them big and chonky, it's work to avoid big caves but not impossible.
Kaiju's picture worries me a bit though if that's legit 1.17 generation. Villages barely improved with 1.14, I don't want them to go back down the rabbit hole of caveins and floating towers again.
They can easily prevent them from reaching the surface, either by having them generate deep down (instead of at a randomized height like normal caves, which start between layers 0-126) and/or preventing them from going to high, much as I do for my "giant cave regions", which constrain the altitude of individual caves to y=45 or less (the ceiling can go higher) with the result that there are very few surface indications despite having a volume of more than 1.25 million blocks across a 300x300 block area; likewise, the largest variants of caves always begin on layers 15-40, with larger caves shifted down and their width-height ratio decreased as their width increases (the widest possible cave has a radius of 42.5 blocks but a height radius of only 25.5, which means that at the maximum altitude of y=34 for a cave of this width the ceiling reaches y=59/60), and the widest caves have a limited vertical variance:
This is the code that I use to generate the largest sizes of caves, which are very similar to normal caves (generateLargeCave2) except they are wider and longer:
That said, I've found things like this, which could swallow an entire village (note that in newer versions they generate on the surface, regardless of altitude; in 1.6.4/TMCW they generate no lower than sea level, creating pillars below; the latter is preferable IMO since you can fill in holes around the buildings, leaving them on a flat surface at sea level, while now you'd need to deconstruct and rebuild the buildings if you want them at the "real" surface/sea level):
This is another cave that I found, which goes all the way up to y=128 in a Superflat world:
This is the rare exception though; even the largest caves are usually entirely underground; this is the largest single cave that I know of, with a volume of over 730,000 blocks yet it barely breaches the surface, y=64 in the "Overworld" Superflat preset (it is entirely underground in a non-Superflat world since it is under an ocean, otherwise, the ground only needs to be a few blocks deeper and even e.g. Plains will likely cover it):
Of course, it is impossible to tell what Mojang will do but I'm sure they will consider this since many players do dislike "swiss cheese" at the surface; they could even prevent larger caves from generating near villages, much as I exclude them from near strongholds (though they generate intact anyway; it is a myth that caves cut apart strongholds, rather, the walls of strongholds do not replace air blocks, much in the opposite manner as mineshafts replacing air in the floor with wood planks), or just prevent them from breaking the surface near a village (you just need the surface height map, which is availabe from chunk generation, and prevent caves from carving out blocks within a few layers, also, caves should replace sand/gravel above them with sandstone/cobblestone or some other support block, as they did for a short time in 1.8, which was later removed so they will now cave in when updated).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
The thing is that the cave biomes already have things that make them unique. Each of the new caves biomes all have unique items, blocks and (sometimes) mobs that can only be found in those biomes. Ores should be separate from biomes. As interesting as iron level gold in mesas and emeralds being found in mountains is; this update is pretty much going to remove these features due to cave biomes. Something that could be done to make ore generation more interesting is a separate ore distribution seed of sorts. Sometimes you might come across an area where there is far more iron than normal but with less coal. You might find a place where gold or even diamonds are found at higher elevations. This could make ore generation more interesting and possibly make caving more profitable/efficient and make boring strip mining less effective. It would do this while being separate from biomes and thus not punishing players for preferring some caves over others.
As for emerald ore I think that it's fine to make it a bit more common as emerald ore can provide a good boost to early game village building. Early bases often don't have the large farms that are necessary for good emerald output. Making emerald ore more available will help players level up low level villagers that prefer to sell more than buy in their beginning levels. It won't beat the amount of emeralds that automatic sugar cane or wool farms can produce but I could see a long mining trip able to provide a player with 20 emeralds (without fortune).
Praise be to Spode.
I don't agree with the first thing; that's pretty much variation, which you're saying you're against, only it's random and tied to nothing which is even worse. If it's going to vary, tie it to something identifiable. Hidden mechanics are bad mechanics in my opinion (it's understandable to have certain things a bit less clear, but not the bigger things).
If you want iron, you'd have to hope you don't go to a place low on it. As someone who recently started a new world and is having issues with this, I'm about to resort to branch mining with stone tools or looking up iron farms or something (and I almost NEVER make automated farms) because caves have been awful since 1.7. If such a mechanic existed, I'd be more frustrated right now.
If it's going to be tied to something at all, it should be a clear, identifiable thing, not random. Like with flowers, they have a random (but consistent) pattern, but if you don't know it, you still know "I want tulips so I better seek a flower forest". That's acceptable (well, somewhat; the climate zones being so strict and rarity of some biomes can make it a pain to find one early on). If it was pure random and not tied to a biome, I would find that poorer design.
If you're just saying the new biomes are going to add variety so emeralds shouldn't be restricted entirely to mountain biomes anymore, then yeah, I can agree with that.
I see your point on the randomized ore thing, but I still don't think ores should be biome based.
Praise be to Spode.
Oh, I'm not necessarily saying they should be, per se. I'm just also acknowledging that resource variation and mob variation is about all the game can do to differentiate biomes (besides aesthetics) and that I'm also not totally against it, if done right.
As it is now, I think the resources that ARE limited are done so in a way that's not really detrimental. At the very least, in the case of emeralds, the biome they are restricted to isn't all that rare AND the ore in question isn't ONLY obtainable from natural generation (so it's really not only found just there) AND it has a more currency role among villagers rather than a primary role as most other ores have. In that way, it's balanced, which is what matters way more than the fact that it's only naturally found in one biome. Are you also against nether quartz and the new nether ores being restricted? They may be in another dimension but the concept is the same (if not, more so, as they take longer to get AND have more of a primary role than emeralds).
Most exclusive resources are typically not too important but sometimes have alternate ways to obtain them (such as bamboo). Lush caves will be getting plenty of new foliage blocks, items, and the new axolotl. Dripstone caves have stalagmites and stalactites. The Deep dark has skulk growths and skulkers. I personally think that is fine.
I am well aware that emerald ore is a secondary source of emeralds but so are illagers and illager patrols can now be found in every biome except ocean biomes (and other dimensions). Emerald ore being more common would also up the ore diversity alongside the new copper ore. However if Mojang insists on the ore being exclusive then I think it should generate in the abandoned mine shafts (which hopefully get an overhaul themselves).
I find the Nether ores a nice reason to travel to the Nether on a regular basis. The Nether ores also follow a global distribution that is technically the same in every biome.
However there is one other block I hope has a good future in 1.17: Monster Egg Blocks. Silverfish are a neat mob that can threaten any player that cannot one-shot them. Their blocks instantly break and can be a startling surprise at times. The problem is that they also only generate in the extreme hills biome. Now I think they should be in every biome but if they were going to be biome exclusive still I would hope they would go to the dripstone cave which would add on to the caves' crumbly vibes.
Praise be to Spode.
I, on the contrary, would like more random generation.
After playing hundreds of Minecraft games, you find that the game has too much predictable patterns and behavior... For example, you need to get diamonds, and you always go to the level Y=10 or Y=11 and start branch mining there... Or you find a desert temple, and the TNT is always placed the same way and you always deactivate the trap the same way. And so on.
There are too many things predictable in Minecraft, which is a sandbox game with procedural generation that could use seed numbers much better to make more random and less predictable worlds.
I'd like this upcoming release to improve unpredictability of what you find underground... It seems we'll get variations in caves, but I'd like also variations in mineshafts and dungeons, variations in ore rarity and placement (depending on the underground biome would be logical, since it's not the same a biome with large caverns where many ores are unveiled than a biome with narrow caves where you need to break stone to reveal ores), etc.
This video makes me worry about mine shafts and strongholds. These things are seriously outdated and will need changes made to them to have them work with the new cave systems. If a mine shaft generates in a vast empty cave then it will simply make an awkward, floating wood structure. A stronghold will be reduced to floating doors with a giant floating portal room. Somethings needs to happen to these structures. At least Nether forts got a passive buff in the Nether Update: If a fort generates in a warped forest, soulsand valley, or basalt delta it will spawn much more blazes and wither skeletons which make them far more dangerous. These BETA 1.8 structures will be torn to shreds by the new cave mechanics unless they generate in solid stone. Hopefully this issue will become big enough that it could not be ignored.
However I am excited that crystals and copper will be getting other uses besides what we were initially shown.
Praise be to Spode.
I agree on regards to existing structures. Heck, they get torn to shreds by current generation so I can only imagine what bigger and more varied caves will do to them.
Want some advice on how to thrive in the Suggestions section? Check this handy list of guidelines and tips for posting your ideas and responding to the ideas of others!
http://www.minecraftforum.net/forums/minecraft-discussion/suggestions/2775557-guidelines-for-the-suggestions-forum
They can easily prevent, or at least reduce, this by preventing mineshafts from generating too close to large caves, and likewise for strongholds prevent large caves from generating too close to them (i.e. the opposite of mineshafts, as it wouldn't be good for strongholds to fail to generate):
Also, by changing just a few lines of code I made the walls of strongholds always overwrite blocks, including air; there is a special flag used by the methods that place walls which when set to true will ignore air blocks, which I overrode to always set it to false:
Similarly, all parts of a mineshaft should generate wooden platforms below them, including the center room and staircases, which would keep them more intact when they do generate in caves/ravines (I only exclude them enough so they won't be in the middle of large caves/ravines as completely excluding even part of them would be against my ideal of the underground being an infinite network):
I also exclude mineshafts from regions of high normal cave density, which I've even applied to my otherwise vanilla first world because I find large cave systems filled with mineshafts to be objectionable; in TMCW I also changed the way they are placed so they rarely overlap, and never to the extent of entire structures (in vanilla 1.6.4 the majority of mineshafts directly intersect at least one other mineshaft, sometimes forming crazy messes). This is because vanilla allows them to generate in any chunk, I've even seen three mineshafts centered within a 2x2 chunk area, while most other structures generate aligned to a grid with a region-relative offset, for example, villages use a 32x32 chunk grid with an offset of 0-23 within each region so they will never generate less than 9 chunks apart (center-center). Mineshafts would use a smaller grid; I set it to 7x7 with relative offsets of 0-2 in alternate quadrants within a larger 14x14 chunk region, with surface mineshafts in mesas generating in the other quadrants (this means they have double the mineshafts), with a 100% success rate representing the vanilla 1.6.4 frequency (1/98 vs 1/100), with about 40% failing the cave check (this still makes them about 50% more common than in 1.7+, with their areal coverage closer to 1.6.4 since they are more spread out):
Vanilla 1.6.4 (1/100 chance in any chunk):
TMCW (alternating 7x7 chunk regions, excluded from areas of high cave density and special types of caves):
For comparison, this is a map of caves, ravines, and strongholds only (there is a stronghold near the upper-right, west of a network cave region near the right side):
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Is it possible that mob spawning rates will be reduced in lush caves (since they're more lit than other caves), or will the rates be rigged in that biome so that they remain consistent with the rest of the caves?
Remember those versions that minecraft pranked us with? Specifically:
Those are still downloadable! Watch this video for 2.0:
https://www.youtube.com/watch?v=PQdu9LKAdIU
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
15w14a is on this link:
http://minecraft.gamepedia.com/15w14a
1.RV-Pre1 is here:
http://minecraft.gamepedia.com/1.RV-Pre1
Minecraft 3D is here:
https://minecraft.gamepedia.com/Java_Edition_3D_Shareware_v1.34
Many questions are answered at
Remember those versions that minecraft pranked us with? Specifically:
Those are still downloadable! Watch this video for 2.0:
https://www.youtube.com/watch?v=PQdu9LKAdIU
To download the other ones you need to make a folder in the versions folder for minecraft and put the client and JSON file for the versions in there. They all need to be named the same aside from file extensions. Once you do that, you will be able to choose that version when making a new profile with the minecraft launcher.
15w14a is on this link:
http://minecraft.gamepedia.com/15w14a
1.RV-Pre1 is here:
http://minecraft.gamepedia.com/1.RV-Pre1
Minecraft 3D is here:
https://minecraft.gamepedia.com/Java_Edition_3D_Shareware_v1.34