Minecraft terrain generation in a nutshell
Музыка
In the Caves & Cliffs update we radically changed Minecraft terrain generation, rewriting large parts of it from the ground up. This video summarizes how this actually works, how simple math and code can be used to generate interesting, beautiful, and dramatic terrain.
00:00 Intro
1:14 Size
3:11 Procedural terrain generation
8:47 Perlin noise
13:04 Terrain shaping
17:37 3d noise
20:10 Cave generation
21:27 Biomes
25:13 Wrapup
Intro and outtro music: Some homemade music I had lying around. If you enjoy you can find more here: open.spotify.com/album/0jr9Z7...
Пікірлер: 621
Great video Henrik! Really cool to see a bit about how things work behind the scenes of the terrain generation.
@Cequallium
2 жыл бұрын
i really like how he explained things.
@krazybubbler
2 жыл бұрын
Yes, It's awesome video! Full of super useful informations to anyone interesting in topic.
@themorrdalorian2253
2 жыл бұрын
Im a Cub - fan lol
@zfloyd1627
Ай бұрын
Can you explain how terrain and biome generation is different in the nether and the end?
POV: Me learning the secrets of Minecraft so I can make my game better.
This is so fascinating! A comprehensive yet straightforward explanation of how terrain generation works. Thank you for making this video, Henrik! :)
@artefox0
2 жыл бұрын
Didn't expect you here
so cool having passionate developers at this game. So passionate that they make videos talking about what they do in their free time. I really appreciate your work. I watched the video from start to finish!
@lem6990
2 жыл бұрын
Ikr
When I first found Minecraft, I was too young to even begin to imagine how a Minecraft world worked. I think half of the magic for me at that age was the inability to understand how every world was different, stretched millions of blocks wide (enough to be labelled "infinite", another bewildering concept) and on top of that how a computer could put me inside of it and allow me to make it my own. As I have become more knowledgeable of the general possibilities of computer science and programming, this aspect of the game has gradually charmed me less and less, however the nostalgia will forever remain with me. I hope that Minecraft continues to mystify new players with world generation, I also hope that I can keep hold of some of that magic that once baffled my 8 year old self.
@greenytoaster
3 ай бұрын
personally even when i'm aware of the technical side of minecraft world generation i can still set my knowledge aside and allow myself to be baffled by the quintillions of possibilities this game offers
If I'm not mistaken, Mr Henrik uploaded this video in his free time, pretty close to midnight. This is not part of his job/him getting paid to do it. He did it because he wanted to. I really appreciate this video!!
I am curious about how noodle caves are properly created in 3D. In 2D, it makes sense. But in 3D, it would cause floating blobs of stone to generate. So what did you do differently when implementing it into the game?
@henrikkniberg
2 жыл бұрын
For spaghetti & noodle caves we take two ridged 3d noises and intersect them. I visually think of it like this: imagine two hollow oranges with a thick peel. The two oranges slightly overlap in 3d space. Keep only the part where the two peels overlap. That gives you a thick ring. Make the ring hollow, and apply some randomness to it. Result: long squiggly tunnels. Was a bit tricky to explain in the video without making it too long, so I simplified it by just showing the 2d equivalent.
@trollconfiavel
2 жыл бұрын
@@henrikkniberg incredible
@IrbisTheCat
2 жыл бұрын
@@henrikkniberg with this technique you can also make caves that are something between cheese and noddle. Bowl cave. Choose grey for one noise, and white for other, this way you generate rifts/cracks of stone, similar to old-style ravine, but in any direction.
@WilcoVerhoef
2 жыл бұрын
@@IrbisTheCat I think this will already happen; in places where the orange peels happen to overlap perfectly. (Let's call those "lasagna caves" to stay within the Italian/pasta theme)
@oamioxmocliox8082
Жыл бұрын
;)
About 1 or 2 years ago I made my first game for a gamejam, it was a 2d digging game. So I started playing with perlin noise and well the obvious thing is to find out that you can do cheese cave. Some weeks after I had an Epiphany when I came up with the spaghetti cave idea, it was so much more possibilities with the same concept! I trully understand how fascinating terrain generation can be, and I love seeing a clean explaination like this.
@Mysda_
2 жыл бұрын
And now I use the spaghetti cave concept into 2d water and lava shaders.
@ChuckSploder
2 жыл бұрын
I did the exact same thing :0
Henrik you are an absolute math & worldgen genius. This video is a really excellent explanation of worldgen, definitely watch all the way through!!!
Adjusting individual values within a simulation and then exploring predictable results is a joy. Altering an entire function, even slightly, make the generation far more unpredictable. I can't imagine how long it took to get the spline points into satisfactory positions.
Thanks for the amazing video! I tried replicating this myself to some extent for fun in Unity, it’s surprisingly easy to stuff some meshes into a grid and use Perlin noise like he mentioned to specify if they’re solid blocks or air blocks. It starts to get seriously confusing after that though, especially accounting for multiple sets of noise, the 3d noise as well, not to mention how quickly performance gets really bad. I just couldn’t wrap my brain around all of it. Makes me appreciate it all the more!
I... have more questions
@Erfedwe
2 жыл бұрын
If you get your questions answered here, do you get to clock the hours for training? Btw, always good to see you!
@Xfrtrex
2 жыл бұрын
lol
The new biome algorithm works so well. Recently in my survival world I needed to find a badlands, so I just followed a savannah until I reached one. On the contrary I needed ice, so I followed a mountain range and found an ice spikes and icebergs biome. Didn’t have to use any external tools at all!
@gabrielandy9272
2 жыл бұрын
thats all because they follow a logic of temperatures and humidity =D
@reubendaniel5691
2 жыл бұрын
@@gabrielandy9272 yup, but trying to do this in 1.17 or previous had a lot more randomness to it than 1.18’s method
ok what we've learned: The whole generation is perlin noise throwed together 😂 but for real this was so helpful to understand at least the general generation, i always wondered how this is possible, and i'm really impressed, one part is the theory, the other part is actually coding it and you explained it already so simplified, wow. I still wonder how each seed number creates the same seed on every computer, even though you said the generation is random, so how is the randomness saved in the seed number?
@Vextrove
2 жыл бұрын
The perlin noise is based on a random number. The seed of a world is the random number. If you put in the same seed, you get the same result!
@justaguy9671
2 жыл бұрын
@@Vextrove but i still wonder how the world knows where to place the exact trees and grass just based of the seed number
@irishbruse
2 жыл бұрын
@@justaguy9671 kzread.info/dash/bejne/jI6Nm7t-Z9XAeto.html Thats a great video showing you how it works
@JOCoStudio1
2 жыл бұрын
@@justaguy9671 Basically, instead of the computer generating a different random number to use each time one is needed in the world generator, it's always based off the seed in some way. As all computers will have the same input, they will produce the same output, so the world is the same for everyone.
@justaguy9671
2 жыл бұрын
@@JOCoStudio1 yeah i understand what you mean, but every feature is based on the few numbers that we have so how can like so many features be based on a (relatively) short number. It would make sense if you say for example the trees have always the same amount of air between them si just one needs to be placed by the seed number the rest is just placed by it. Ill watch the video @IrishBruse gave us, and i hope ill understand it better than, but thanks for helping me. :)
While there are still a few things I don't like about world generation, there is no doubt that the 1.18 version is by far the best there has ever been. You've done a great job with it. Both the caves and the cliffs have met my expectations so far. And I do appreciate you taking your time to explain how things work. That is an extra bonus I enjoy.
@_khaine
2 жыл бұрын
ngl the 1.16 version of TerraForged looks way better than Vanilla 1.18 terrain generation
@Kjotleik
2 жыл бұрын
@@_khaine I have never used TerraForged, so I can neither confirm nor deny this statement. However, even if the 1.16 TF is way better than vanilla 1.18 terrain generation, it does not invalidate my opinion that there has never been a better vanilla terrain generation than 1.18. This video is made by a Mojang employee that is developing the game itself. Mods are a bit outside of the scope of this video, and thus the discussion.
@_khaine
2 жыл бұрын
@@Kjotleik I would say the modder is better than the mojang dev if modders can create masterpieces like Terraforged while mojang devs can barely create semi-decent terrain.
@nintySW
2 жыл бұрын
@@_khaine terraforged is a completely different "artstyle" than normal minecraft, and is definitely not for everyone, it looks beautiful but it really relies on massive render distances and personally i prefer 1.18 (and even pre 1.18) generation since it has a lot more height variation over shorter distances.
@PeamThePanda
2 жыл бұрын
@@_khaine the thing though is that those "masterpieces" are not masterpieces for everyone with mods. Mods can be made by mod creators and there is a specific part of the community that likes that and can install it, but the minecraft devs have to make sure EVERYONE likes it, because everyone will play that game, they can't not install it. Well, they can, but they'll miss out on updates. Creating a game is SO SO SO SO SO much harder than creating a mod.
I want a series of this, is so interesting, even though I don't understand anything.
PLEASE believe I’m gonna watch this entire 30 min video. Please more dev commentary 🙏
I been waiting for a Minecraft video like this. I am wondering why the MC creators made the worlds that big though. Maybe to entertain the people playing MC
@user-tzzglsstle585e38
2 жыл бұрын
I mean it's kinda obvious lol
@robertskitch
2 жыл бұрын
@@user-tzzglsstle585e38 So what is the obvious reason that Minecraft worlds are seven times larger than the Earth?
@snowdolphvov4193
2 жыл бұрын
Do you want them to be smaller?@@robertskitch
@Greenpixel16
2 жыл бұрын
Pretty sure it's basically infinite, but they probably had to cut it off at a certain point due to math-y reasons
@robertskitch
2 жыл бұрын
@@snowdolphvov4193 Would I notice the difference?
Very informative! Thankyou!
@Elchut7
2 жыл бұрын
Hey my man like your vids. I'm watching you for well over two years now
Thanks for the video Henrik, after watching some videos of people trying to replicate the minecraft generation, it's interesting to see what actually happens, good job improving it 😎
22:00 Seeing the different biomes occupy the same terrain location is mind blowing yet so simple :0 Although I haven’t ever seen a swamp at high altitude like that…Maybe it’s intentionally prevented/reduced for the swamp biome to never generate hilly…. Or I’ve just been unlucky finding one 😆 Thank you so much, Henrik, for sharing your knowledge about this incredible game, I find it so inspiring and interesting that this silly little block game we spend hours upon hours playing has such beauty, yet complexity and literal genius behind it.
@shalomakolatse537
2 жыл бұрын
Yeah, swamps only generate in low erosion / high continentalness areas from what i know! It's not your luck :)
@HarrisonGray
2 жыл бұрын
@@shalomakolatse537 that makes sense, thank you for clarifying it! :)
@rubydupyII
2 жыл бұрын
I found a wild Harrison
@rubydupyII
2 жыл бұрын
Also yeah swamp biomes try to generate near water level to make sure that there's actual water in the swamp. But I play in an amplified world at the moment and then the game kind of tries height dependencies out of the door, so although there's still some rivers and lakes within the swamp, it will also contain big swamp peaks that you wouldn't see in a normal world, which looks weird, because that's effectively a plains or savanna or meadow but with very dark green grass and vines all over the trees
@HarrisonGray
2 жыл бұрын
@@rubydupyII cool that’s interesting, and what a chance to find you here lol :D
Despite already grasping the principles of using combined gradient noises for world generation this was still super entertaining and taught me a lot of neat stuff, like how 3D noise is used in combination with the squishing factor! I'd love to see more videos like this where aspects of minecraft's code are explained in this format
Thank you for the video! I love the new update, the new terrain generation looks so good!! It's so much fun building in a world where every part of it looks beautiful! (Btw, would love to see more dev commentary in the future, great video!) :)
ive been trying to program a little Minecraft clone test game and was struggling to figure out how the noise worked, this explained things WAY better than any of the wikis ive read. especially seeing the incremental results of the terrain generation when adding noise values together! the "spaghetti cave" method never occurred to me, that was a brilliantly simple idea that works incredibly well!
haven't finished watching the video, but I've really enjoyed the visual demonstrations of what terrain would look like with each version of the pseudo-code - when y'all first introduced continentalness, erosion, temperature & peaks-&-valleys as parameters, I found it hard to keep track of how the parameters interacted, and I couldn't quite get why y'all were bothering with the parameters in the first place - this video has helped me understand that quite a bit better and btw I was moved to write a comment because I loved the comparison you made between the terrain generation y'all have been working on, and Slartibartfast's award-winning fjords-of-Norway! a beauty of a throwback :D
@CorneliusThroatworthy
2 жыл бұрын
stone the crows! I forgot about humidity and weirdness!
This is literally the coolest thing I have ever watched about this game thank you
You helped me tons when I've been racking my brain trying to figure out how to do this stuff in godot, you single handedly made it simple, easy to understand, and even gave a step-by-step evolution of the process! I love it
I was working on the script for my own video about terrain generation and thought I knew so much Then I saw this video and my mouth was open the whole time This is epic
I clicked on this thinking it was a meme video. Ended up watching the whole thing! 10/10
Arguably the best masterclass I've seen in a while. Thank you so much, Henrik!
This is so fascinating to hear!!! Thank you for this Henrik!
Thanks for the great educational insight, Henrik! And thanks for all the amazing work that went into that!
This video is absolutely amazing! Procedural generation has fascinated me ever since I started playing this game, and I've always wanted an in-depth explanation like this. Thank you for putting this together!
Thank you for this! for awhile there hasn't been much resources for how minecraft terrain generation works(especially when it came to caves) so it's great to get a good behind the scenes look
Never been really interested in code or game design or video essays but i sat through the whole thing, good job henrik.
Thank you very much Henrik! You guys were really brave with the new world gen and it paid off!
This has to be the most helpful video out there on understanding how to incorporate overhangs and caves into procedural generated voxel worlds. Had a hard time figuring it out! Adding a dimension to your 2d noise makes so much sense. Thanks
Excellent video, very informative & as someone that already had a tiny bit of knowledge in this area, I still found the video very engaging, and (as usual) loved the way you presented it.
Great video, i like how you explain everything and manage to keep it simple. Love you and what you do.
Such a wonderful and clear way of describing a complex subject! Thank you!
Wow this was so fun & interesting to watch. Fantastic video Henrik, thank you!
I love getting this level of background information! Thank you very much for taking the time to explain this. ❤
This was very cool to watch, Henrik! Thanks for taking the time to put it together!
Very informative and clear to understand video, thanks Henrik! I now know why you were so intrigued into erosion/continentalness/humidity/temperature/weirdness values in a previous video of you exploring the terrain generation.
It's videos like these that really make me love minecraft and its amazing dev team. Henrik, thank you so much for taking the time to explain this in such an interesting and informative manner! I could honestly listen to you explain the coding behind minecraft for hours.
This is such a great, intuitive explanation of something that, for over a decade now, i've just sort of written off as some kind of technical witchcraft haha. I feel like I have a much better grasp on how this game really works now. Thank you so much for taking the time to walk us through it, very cool!
dude this video was awesome! i always love insight videos on games ESPECIALLY minecraft so this really hit home for me! You’re an awesome game dev and an awesome person dude keep it up!!
I love the way you explain things. This was very useful ! Thank you for posting
I have seriosly learned a lot in this video. I would love to see more of such videos. You make it easy to understand while giving a ton of information!
I love you. This is a harded work and I appreciate your video so much. Perlin Noise is amazing, but you are more amazing for simplify his functionality and give that information in a simple video with all the information simplify. Thanks so much Henrik!
Really useful video henrik! I've had a decent idea on how it all works for a while, being a modder, however hearing you explain everything makes it a lot easier to warp your head around. There was also some other useful stuff in here, like the peak biome table and the terrain shaping splines, as the vanilla splines are pretty hard to understand in the code. I've started making more tables for my biome distribution and terrain shaping since watching this.
Thanks so much, I watched and read a lot about this all, having just enough math background to understand the overall concepts, but still couldn't get the whole picture of how these concepts all tied up to generate a world. This is so clear and easy to understand no.
Absolutely amazing visual display of the code by actually showing it in minecraft, the game we all already know how it looks!! Love it!
Amazingly interesting, thank you so much for posting! This deserves way more views.
Thank you for this video! Very informative. Super cool to see how you guys do it
You really did a great job explaining the mechanics. In another video you showcased the values like continentalness already, but now I feel like I understand where they are coming from and how they influence terrain generation and biome placement. I liked the graphic at 24:47, where one can really see the influences of each noise map on the minecraft world. I noticed that the 1.18 terrain features more cliffs at the water, nice to see it explained with the spline points. Also the explanation of 3D noise was great for understanding terrain like in shattered savannahs. Thank you for the insights!
I've seen some of the other vids about terrain generation but I love how in depth and thorough this one is, it's nice to have it all in one place! Almost makes up for the horrible squid tragedies rampant throughout the video ;P
This is an amazing video. You explain everything very well without going into too much detail. (Okay, it's a 25 minute video, but that's still pretty short for EXPLAINING ALL OF MINECRAFT'S WORLD GEN.) I worked on a datapack that tinkers with this stuff a while ago, so I had to kind of figure everything out by myself, but this video still managed to further my understanding of it.
For some reason I took a huge interest in minecraft's code once development of caves started. Videos like these are super interesting to watch. It's kind of mind blowing how such simple code (minus optimizations, etc.) can create such interesting and varied shapes. And in playing minecraft, the new shapes and variety in the caves never ceases to amaze me. So good work getting this all to work and thank you for sharing it with us!
fascinating video! i love how open you guys are about sharing technical information about the game (:
This was super interesting to watch! Big thanks Mr. Henrik.
I know how much effort it is to generate all the example worlds, even having the original source code! Thank you so much!
you have summarized 2 week of trial and error on my part flawlessly. Thank you so much for this very simple, yet detailed explanation of everything!
this video opened my eyes, i always tried to imagine how minecraft worked and on the generation of the terrain i lacked ideas or stupid guesses. And now I have to change my mind, I had guessed something. It's amazing how "simple" math can do so many things. Henrik you reopened a world to me, good job!
Honestly, that's the kind of content I'd love to see on the Minecraft youtube channel. Technical breakdowns of how things work that take you all the way from not knowing anything to having a really good idea of how something works. I'd like to see that way more often, as it might demystify stuff for people who are looking into modding, so they don't bite off way more than they can chew and give up prematurely.
This is a really great video! Very accessible even if you don’t have much programming or math experience. Thanks, Henrik!
4:00 squid nooooooooooo
Really nice video ! It is super interesting to have the details of how Minecraft terrain generation works ! Everything is really well explained, congrats !
I love what you all do, thank you for all your hard work and I love these videos from you showcasing the new changes you guys have made :)
This was very informational, and enjoyable to watch. Thank you!
This weekend I made a project to try to guess how Minecraft terrain generation works. I guessed some things correctly, but many more work different than what I thought. I had guessed that finite state machines and transition probabilities with seeded RNGs would play a role, but that is where Perlin noise comes in handy instead. Great explanation that was all the more fun after trying to guess!
This is fantastic Henrik! Really amazing job showing all the math behind each step without getting too bogged down. One thing I would love to know more about is how the old cave carver system worked. I can get the intuition of how the new noise system works, but the way the old caves used to look just kind of breaks my head, how on earth did they work?
Hello Henrik, very interesting video on World Generation in Minecraft and it amazes me, I love this and especially code behind it that made Caves & Cliffs.
Wonderful explanation, made it easy to follow and was very interesting. Thank you, Henrik!
This is... by far the most helpful information ive seen on this. I really appreciate it.
Great video, this is exactly what I was looking for. I always wondered how minecraft generation worked on a more technical level, and this helped me understand it.
This should definetely get more views. Explanation was very clear! Thank you very much
This is gold, thank you, Henrik! 👍
Huge thank you for this video. There was one little problem in my project that I am working on and that explanation helped me better understand minecraft world generation and inspired me
My knowledge of code is very limited but the way you've shown it makes it very easy to understand. Amazing video, extremely well done and its really cool to see what goes into game design.
I'm working on a 2D recreation of minecraft and this guide helped me a lot with terrain generation! Ive spent a while trying to figure out exactly how the terrain is made and most the other videos ive seen have been incredibly vague but this tutorial told me everything i needed to know! Thank you
flawless video, thank you so much for sharing your knowledge!
Thanks for the video. This has been such an experience to watch! :D
BRILLIANT video! I've often wondered how minecraft generates terrains. Also, I came here looking for ideas on how to generate realistic 2d tilemaps and this has given me tons of ideas - thank you!😊
This is very interesting. I've been trying to get into fabric modding, so learning this sorta stuff fascinates me. I also like how you explain with pure passion, it adds a very positive tone to it. :)
One thing I have noticed is how pretty the new terrain looks when viewing on a really zoomed out map. Lots of bands of colour and you can see where the temperature and humour changes
Thanks for posting this! Great video and you explain it quite eloquently.
I love the fly that passes by at 0:13.
this is seriously awesome. well done in making this video as informative and entertaining as you did!
Thank you so much for this. How amazing to get the info I was looking for, so well explained, right from the source!
Man this update Is so well optimized and lag free yet so complicated and beatiful You did an Amazing job and that makes me proud not Just of the devs but also of the community
I loved following this and watching my terrain look like yours
Really enjoyed this video! It be neat to explore how a pack like Terralith uses these features to shape it's own biomes, especially in how it differs with vanilla!
finally a video explaining how to generate realistic terrain and goes beyond just basics fun begins after this 12:52
Thanks Henrik for sharing some more about the implementation! I knew about the various noise maps from your past talks, but the bit about solidifying at the start, and how you use tables to slice the noise ranges into various groupings to help you reason about biomes was really interesting. I would love to see a future talk about what types of noise you use to determine details (most of us know about the "flower map" due to flower farms, but what about grass, etc.? How do trees get placed without constantly intersecting with each other or with nearby walls?). I'm also really curious how you go about generating structures like villages and nether fortresses since those are not isolated to a single chunk (I guess tree canopies aren't either!?). Hope you're doing well. :)
Thanks for the explanation, I couldn't find hardly anything deeper than the basic world settings ones
I watched like 3 minutes of this video and I must say this is an amazing video, very informative and you explain it very well.
Yo this is an extremely cool video!! I'd love to see more behind the scenes👀
It's reallly interesting to see, I author the mineralogy mod which replaces stone for real world variants using perlin noise and am yet to update it from 1.12 to 1.18 so watching this gave me some inspiration, I think in the newer engine I need to do it in the same phase the biome is applied e.g. when stone is replaced for dirt/sand/etc
Very well done and educational! Thank you for making this!