4 ms·
It's been a while since I've played Minecraft, so I can't speak to the newer terrain. But I always thought they could significantly improve the world gen. Perl
by rland 5y ago
It's been a while since I've played Minecraft, so I can't speak to the newer terrain. But I always thought they could significantly improve the world gen.
Perlin noise is cool, but why not try to fully simulate plate tectonics, weather patterns, drainage? It would go a long way if deserts were in the rainshadow of mountain ranges, islands corresponded to real volcanic activity, etc.
I guess there is a limit to what you can do with the chunk-by-chunk approach, but I think a certain type of minecraft player stays basically put within a couple dozen chunks. Having worlds "load" on exploration would be a worthwhile tradeoff.
I get that this is a hard, but it is interesting, and it's a problem that would captivate an intelligent developer. They have like a million dollars, why not?
- pests 5y agoWhat do you mean having then load on exploration? That's the current state - a chuck isn't generated until you need to load it. This means when you take an old save to a new version any already-loaded chucks you're stuck with but any new exploration causes new world gen on the new version.
- herghost 5y agoOh wow. I did not realise this was the case. Thank you!
- pests 5y agoI think this actually might be a slight negative tbh - since everything is split into chunks and generated on demand, you lose the ability to do larger passes over multiple chucks at gen time. No real way to do tectonics or weather patterns as you don't necessarily know what's in your chunk neighborhood.
- alvarlagerlof 5y agoYou could do much larger chunks on gen.
- sudosysgen 5y agoThere is a biome system that solves this issue. You can compute biome borders and use them for tectonics or w/e else.
- namrog84 5y agoYou can by generating Metadata for an area larger than a chunk itself. Also frequently when using things like peeling noise is to use different scale and resolution of the noise itself. While on smallest scale there might be 1 noise value per minecraft block. You can can also use a different scale in that 1 noise value is used per 10x10 minecraft chunk (16x16 blocks?) Also not sure how familiar you are with noise generation like perrin but things have slopes to them and isn't just completely random per point. So even without seeing generated data. You can infer a little bit about the next value depending on the intensity and resolution. Lastly, you can just not use noise at all and just place things at given coordinates and make the game incorporate them into the proc gen at chunk time. E.g. you want a city always at 1000,1000 coordinate far away from 0 0. When you get near you can apply smoothing filters in and around the 1000 1000 position thru various math and layering systems so no matter the proc gen at that point. City can be there and it not look completely out of place.
- Dylan16807 5y ago> No real way to do tectonics or weather patterns as you don't necessarily know what's in your chunk neighborhood. Sure you do. When you want to apply tectonics to a chunk, it's easy to calculate (and cache) the pre-tectonics version of all the neighbors. The problem isn't effects that need to know about their neighborhood, it's effects that need detailed info from 50 chunks away.
- rland 5y agoYes, I think (maybe) the reason they use perlin noise is because it’s fast. I’m saying have an actual loading screen when you go to a new area and spend some CPU cycles doing advanced plate tectonics or whatever.
- danielvaughn 5y agoOther people are pointing out that real == boring, but I disagree. Perhaps we wouldn’t want a literal real world, but hyper interactive terrain like you suggest could be used to explore new and interesting gameplay ideas.
- eesmith 5y agoThe article suggests that "more realistic" is correlated with "boring". "Real" is an interesting concept. Any such simulation couldn't really be based on Earth geophysics. Who wants to spend months crossing the steppes? Real magma isn't something you find by accident. Real tunnels can collapse. And so on. So these intelligent developers will need to create a new system of geophysics. I've read that Dwarf Fortress uses a process more like what you describe.
- arketyp 5y agoI think a SimClimate could become a hit. Maybe the dynamics could be gamified for kids, but I bet there are lots of adults who'd also want to just "spend months crossing the steppes" following the seasons pretty much.
- pbronez 5y agoHmm are there any Climate Change strategy games? There are games for nuclear war and pandemics that are fun and educational about the globe-spanning dynamics of those catastrophes. There are also games like Universal Paperclips that provide an intuition for the exponential dynamics of complex systems. Seems like there should be a way to fuse these concepts around climate change.
- acdanger 5y agoCivilization VI tacked on climate mechanics with one of its addons. https://civilization.fandom.com/wiki/Climate_(Civ6) https://civilization.fandom.com/wiki/Climate_(Civ6)
- poser-boy 5y ago> The article suggests that "more realistic" is correlated with "boring". I wouldn't say so. With the increased mountain height I'd argue the terrain is more realistic than ever, and not boring.
- eesmith 5y ago
- vidarh 5y agoYou can do something like this by layering. E.g. generate a high level coarse map that sets some features like average elevation, and calculates climate from that and derives biome from that, as an input into the lower level worldgen
- madeofpalk 5y agoI believe this is exactly how minecraft's new "3D" worldgen works. It calculates a high-level terrain map, then a temperature map, and then biomes are placed on top of them that fit the characteristics.
- sk0g 5y agoReminds me of the AutoBiomes paper! Waiting for something to be integrated into EG a terrain creation tool (no!-MC games), should produce pretty interesting results. https://cgvr.cs.uni-bremen.de/papers/cgi20/AutoBiomes.pdf https://cgvr.cs.uni-bremen.de/papers/cgi20/AutoBiomes.pdf
- kuschku 5y agoDoesn't the ultra-realistic mod terrafirmcraft already do exactly that?
- mppowers 5y agoTo my knowledge, no. Terrafirmacraft does have strata of different stone types that stretch for large areas, but these aren't tectonic plates. It does generate biomes based on "lattitude" however. As another comment mentions, dwarf fortress does do all of this though. I don't think this would work in minecraft though, I think minecraft needs a mix of terrain types near each other to be most interesting, and tectonic plates would spread it out.
- RugnirViking 5y agoIt is stunningly difficult to do something like this within procedural generation. Remember a given xyz coordinate has to generate given only the coordinate number itself and a seed. You couldn't do stuff like plate tectonics within an "infinite" world because that would require generating every block which is akin to generating every digit of pi
- willis936 5y agoYou could set up domain boundaries where everything in that domain is relatively isolated from other domains. When nearing an ungenerated domain, do the procedural + evolutionary generation and handle the borders blending. Domains could be tectonic plates. This would cause hitches on exploration, but they would be relatively infrequent and overall few since domains would be so large.
- adam_arthur 5y agoHmm, I'm not sure that's true. If you generate a noise function that dictates where the "plates" are, then the location of the "plates" is already predetermined from the construction of the function. Then the output of that function could be used to alter the mountain/terrain functions. Thus, no need to pregenerate everything. You pregenerate all of the functions in advance, but not all of the outputs.
- ThalesX 5y agoI also find it stunningly difficult, however, when I look at Sebastian Lague's channel [0] (no affiliation, just one of the best channels I follow), I feel like this could be a not so stunningly difficult project for him. [0] https://www.youtube.com/channel/UCmtyQOKKmrMVaKuRXz02jbQ https://www.youtube.com/channel/UCmtyQOKKmrMVaKuRXz02jbQ