Tslat / Advent-Of-Ascension

Advent of Ascension - A Minecraft mod for the daring
Other
208 stars 119 forks source link

Precasia worldgen uses large biome temperature noise settings #4438

Open AstralScourge opened 3 days ago

AstralScourge commented 3 days ago

My knowledge about this is definitely not comprehensive, but I did test it out. Was going to wait a bit to report this, but when I learned that the apparent fix was simple, I figured I might as well do it now

Deserts in Precasia are known to be really sparse (to the point where /locate often fails to find them). When they are found, they're usually really large, often much larger than any vanilla biome would be (including vanilla deserts).

The previous hypothesis around this was that vanilla was the same way, but in Precasia the deserts were just taking the entire "hot zones" up, while vanilla had other biomes to blend in with the deserts, making it less apparent in vanilla.

However, this was inconsistent with my experiences playing vanilla, during which "hot zones" (and significant ones, too, not just an isolated small savanna or something) as a whole and not just deserts were fairly easy to come by, and there was pretty much always a desert within /locate range. If this was really the same as vanilla, then overworld hot zones would be around as hard to find as Precasian deserts (which was definitely not the case).

The main issue with testing this is that AMIDST and similar tools don't exist for Precasia worldgen, but that's alright, because I made my own version, more or less. It basically just loops through the coordinates within a (really large) range and then writes an image pixel by pixel using the biome at the location. The biome at the location is found using the same method that /locate uses to get the biome without having to load the chunk. I also tested in-game to make sure this was accurate

This allowed me to actually test how often the biomes actually occurred instead of relying on /locate anecdotes. Just inserted this code into a command in a WikiHelper dev environment

For Overworld hot zones, I included these biomes:

image

And for Precasian hot zones, I included these. I know jungles are a bit more temperate, but since their color is so dark, they shouldn't detract from desert + savanna anyway:

image

The scale is 1 pixel = 32 blocks (was "supposed" to be 8 but I didn't know there was a factor of 4 used for querying these biome noise sources), so the entire image is around 130k blocks on each side. That's too large for GitHub, though, so I had to just take a screenshot of the zoomed out image instead of uploading the real image

Results of this:

Overworld biomes: image

Precasian biomes (same seed): image

Precasia hot zones (desert + savanna) were indeed significantly larger than Overworld hot zones on average. Indeed, in many cases, Precasian deserts alone would be larger than the entirety of the smaller Overworld hot zones, with only the largest of the Overworld hot zones competing. These were longer and curved more, as opposed to the Precasian ones that just looked like larger clumps. Even these would often still get dwarfed when you added the surrounding savanna in. It is also fairly common to just not have a desert at all within not just 30k or more blocks.

Overworld hot zones were smaller, more common, and less sparse. They followed a similar pattern in which the desert/badlands were generally round clumps in the center, and that they were surrounded by savannas, but that was the only similarity.

Honestly, this seed didn't exemplify the size issue the best, but it works well enough in showing the difference between the hot zones of the two biomes. This should disprove the notion that the difference is solely a result of other overworld biomes creating variance with the deserts. I'd had other seeds that exemplified this better before and I didn't want to keep resetting until I found another such seed. The desert on the right is still much larger than most hot zones, with the only hot zones that can compete doing so because they twist and turn more (while the precasian desert is just a huge clump).

Ultimately, this is still comparing ALL hot biomes in the overworld with just the deserts in precasia, so there should be more of a difference anyway.


I remembered noticing something before about a large biome setting being used for Precasia worldgen. After looking into this, it turns out that Precasia worldgen uses minecraft:temperature_large for its temperature noise. https://github.com/Tslat/Advent-Of-Ascension/blob/abc9126ba2016e2ca9292ecfcca147c202ad891f/data/aoa3/worldgen/noise_settings/precasia.json#L250

Checking the vanilla Minecraft noise settings, the overworld uses minecraft:temperature, whereas large biomes uses minecraft:temperature_large (like precasia).

image

This would explain why the hot zones are so hard to find in Precasia, but really large when they're found.

Solution: seems to be to just change the noise used to minecraft:temperature (i.e. not _large). (The noise for vegetation is also large? IDK what that does, but I figure it should probably be consistent with overworld normal-sized biomes unless there's a specific reason to have it like that).

Obviously, I can't tell what exactly any of these do just by looking at the code, so I went and tested it myself. I went into the jar, changed these values, and ran the biome finder again. Here's the biome distribution after doing this (same scale as the previous ones): image

This looks much healthier than the previous setup. Did some in-game testing and it looked fine there too. In all cases, I found a desert and volcano within the lower half of /locate range. They're not too common, though - there's plenty of spots on the map that are far from any desert (just not ridiculously far).

A worry I had was whether or not this would make tar pits smaller, but this actually doesn't appear to affect tar pit size at all - showing some comparison images here: image

Current/large noise: image Normal noise (same seed): image

If you look at them closely, while the other biomes move around, the tar pits are in exactly the same location relative to the spawn (marked with magenta). They're also the exact same size and shape. I assume that this means that tar pit placement is independent of temperature, which makes sense given how it can spawn in both deserts and the more temperate biomes.

I'm assuming it's not, but if the current setup happens to be intentional, I'd argue that this is the better option, since all the current settings really do is make it harder to find deserts, which is even more painful in Precasia since there's not even any generated structures along the way. And let's face it, most players aren't going to find a bone horn in an attercopus nest with its current drop rates. This should also make it easier to add future resources specific to hot biomes.

AstralScourge commented 3 days ago

If normal-sized noise is used, you could probably also make the savannas spawn at slightly higher temperatures. Seems like small ones spawn all over regardless of temperature noise size, and I know that you cited that as a problem you were trying to avoid with savannas. I assume that their current spawn frequency was part of an attempt to make sure that they weren't as difficult to find as the other hot biomes, but if hot zones are more common, then that shouldn't be an issue anymore.

Tslat commented 1 day ago

Interesting and detailed analysis, I appreciate the effort

I did intentionally want to make the biome swathe a little larger, which is why Precasia uses the large temperature noise grouping.

There's a couple reasons for this:

  1. It helps differentiate it from the overworld a bit more, given how closely related to the overworld it already is
  2. It gives bit more of a 'trek' vibe, wherein you're not just stumbling onto a new biome every 5 seconds, causing jungles to feel suffocating, deserts to feel sweltering, and plains/savannahs to feel sweeping

I don't really want to lose these two elements to be honest, but there's room for a custom noise value inbetween

What is the actual issue here you're trying to highlight/alleviate, specifically?

AstralScourge commented 1 day ago

Well, I get your goal, and I like the idea, it's basically about where the line should be drawn. I just think that the current distance is a bit TOO excessive, speaking as someone who's already run around a lot looking for things.

There's already some treks in vanilla that easily shape up to be multi-hour endeavors: ancient cities, allays (took me 8 hours because pillager outposts were really rare), and mushroom fields. Even something like finding a return end gateway, which tends to take half an hour to an hour, from my experience, can feel like that (certainly not discovering any new end biomes right now, and you'll need to find a different gateway each time). That's just in vanilla, too. Nethengeic pit is also its own trek (although that one has less block distance, traversing the nether is a lot harder). Precasia is only the first dimension, so I assume there'll be more treks to come in the other ones too.

I get this is all somewhat subjective, but I just don't think that having a significant chance to need to spend 8+ hours looking for a boss item is really healthy. Maybe if it was just a "completionist" or a unique thing like mushroom fields it'd be better, but I still think it'd need to be more unique. Precasian desert is just...a desert, and there's not much else to it.

(I did suggest putting a mushroom fields continentalness biome in Precasia once, but that was situational. Precasia is supposed to be "an" overworld and those islands were already there. A desert probably shouldn't be like that, and I hope that dimensions without such generation don't have anything like that either).

Obviously there will always be rare outliers/situations where people spend 8+ hours looking for some vanilla element only to not find it, but it seems like it would be pretty common here. Like, in the map I gave, if you started in the upper right area and went left there'd be no deserts at all and you'd definitely be out those 8 hours. The chance of that seems a little high, to the point that it wouldn't be considered an outlier at all, and I do think that cases where it takes that long to find an element should be kept to a minimum. The fact that the time it takes to find things is really inconsistent is what makes me reluctant to really try and test finding one legitimately myself (excluding the one time I spawned in one); it's all anecdotal unless you have a really large sample.

Maybe taming an opteryx can help but at the same time it doesn't really feel like a "trek" if you're just flying above all of it


Also, some of those deserts are a little too large on their own. It's not all that common but I've seen things like this which kind of seem excessive. For reference, the top part of that desert is about 40k blocks long, and it's not lacking in height either. Even these large jungles aren't anywhere near that size.

image


I think I'd settle for something like a 2x scale (maybe a little more) instead of the 4x scale it is now (yeah I know it's not exact but whatever). That's still a significant increase over vanilla (since biome area is square blocks it would be 4x increase overall), and I'm sure there'd still be plenty of cases where people spend 3+ hours looking for one. Just trying to cut down the 8+ hour experiences and ridiculously large deserts a bit. They don't need to be that large to make them feel sweltering.

Maybe also increase the continent size? Looks like the larger biomes will often just have oceans dumped in, which doesn't seem to be the case with vanilla large biome worlds. Assuming that's because precasia is using normal-sized continents with large biome temperatures. IDK how well that would work, though, just a thought. Maybe you intentionally wanted to keep oceans smaller because there's actually nothing in them

Also, If someone really wants longer treks, they'd probably just be playing large biomes to begin with.

AstralScourge commented 13 hours ago

Some updates:

But yeah having actually done it now (to a degree, anyway), I'm pretty confident that it's far too large. If you get put in a cold zone like I did (there's no way to tell without the debug screen, you can only kind of guess due to the complete absence of jungles) it's going to take a really long time to find one. On any given map there'll usually be some spots where there's no deserts within 40k or more blocks, which is a really far cry from the vanilla system.

I think 3x is too large, too. A 2x-2.5x scale seems like it could be fine though.

I will note though that realistically, if I were to find a desert I would just dig up the bone horn and not bother crossing it. I'm sure most other players would do something similar, since there's no real reason to cross the desert once you find it, so that does undermine the goal of making the trek across it feel sweltering

Cruuk commented 12 hours ago

Adding some anecdotes to this. In my latest survival world, Opteryx did help a lot with getting to desert. My portal was surrounded by jungles and oceans. Going in one direction, the desert I found was around 25k blocks away - was concerned it would be farther.

Got a bit unlucky with bone horn, but it wasn't too bad - just noting this since there are instances where people will be in deserts for a bit. It won't always be a quick get in, get out as the above post implies, though it is still relatively quick.

Opteryx was especially helpful since any non-forest/jungle biomes are dangerous to traverse with the presence of hostiles like veloraptors. If I traveled those 25k blocks on foot, my armor dura would slowly whittle down over time from velo encounters. They were hazardous alone in the desert I found, when I was off my opteryx that was safely on a tree.

Desert should probably only be scarce enough to consistently be in /locate's range. This goes for any important biomes - volcano can stay as-is, since it's a variant of deadlands, which I found 3-4 of when looking for desert. I don't mind desert being huge, though if that's causing the scarcity, it may be good to change it

AstralScourge commented 9 hours ago

Yeah, if I had to find a desert in the current setup I'd get an Opteryx for sure. I think the issue with Opteryx though is that it is somewhat contradictory the "trek" nature that was implied here, in that you're kind of just flying over everything instead of experiencing it, but that's kind of subjective

After running with mobs for about an hour I decided to just ignore mobs entirely, even though they have the potential to significantly increase that 12-hour figure, as well as change your route because you start leaning more towards rivers and oceans. That's because I believe that the current amount of hostile ground mobs is too much and should probably be fixed separately regardless. (And possibly mobs in general. Horndrons often take up all of the animal slots, so the vanilla variety isn't there, and they're much bigger than any vanilla mob is.) I say this as someone who's experienced with and likes combat challenges - I can defeat them and set up a base just fine, but from an exploration perspective it does feel like if you spend half a minute moving through plains you'll have an entire pack of Veloraptors on your tail and you need to pillar up/find a river/otherwise pick them off, and then repeat after another minute. I assume real dinosaurs weren't THAT common. And even though the mobs were changed to only attack certain other mobs, it does still almost feel like something gets attacked everywhere you look. But that's a different issue entirely

Obviously it may take some time to find the bone horn but at that point you're kind of just digging around, it's less crossing and more digging - but yeah right now there's not too much reason to bother with a precasian desert at all besides that. I think if /locate finds one like 90% of the time that's a good benchmark, ideally if you run in the wrong direction from the nearest one you can still find it within a few hours