Reinventing Minecraft world generation by Henrik Kniberg
ฝัง
- เผยแพร่เมื่อ 7 พ.ค. 2022
- The past year and a half I've worked almost full time with Minecraft world generation. We've radically changed how the world is generated, to enable dramatic new caves, massive mountains ranges and overall more natural-looking terrain.
In this talk we'll geek out on the gory details of this. How does Minecraft procedural world generation actually work, what did we change and why? And what did we learn along the way?
I think procedural world generation is fascinating. Hopefully you will too after this :)
Henrik Kniberg, Mojang
Recorded at Jfokus 2022 in Stockholm 3rd of may
www.jfokus.se
Asking the audience to stand up is a brilliant way to generate terrain!
LMAOOO
-He has to be at least 6 ft tall-
He needs to be at most an erosion of -.2 and be far inland
@@kipchickensoutlmao
A really good look into the world of generation, I'm surprised this hasn't caught any traction.
Henrik Kniberg made his own TH-cam video that's essentially the contents of this presentation. That version has 100K views. th-cam.com/video/CSa5O6knuwI/w-d-xo.html
shock micro jumpscare
@@Xfrtrex boo
@@Treetrain1 TREETRAIN1 JUMPSCARE?!
@@Xfrtrex get scared
I really hope this was one of those recordings where the audience just isn't audible to the mic, because this was an incredible presentation and I hope he was getting all the little chuckles and stuff that he deserved, this was such a delightful watch
Fortunately it seems to be, since you couldn't hear the audience when they were asking questions
It's actually insane how while watching this I've had several moments where it all just clicks and terrain that I've seen 10,000 times before suddenly has meaning to it, like I understand how and why it generated that way instead of just going "Oh that's a weird little mountain, anyway.."
This a type of technique taught in most computer science and graphics since Perlin first published his noise formula, it's genuinely surprising you haven't seen similar things in the past.
Notably, nothing in this video is really that different from Minecraft's original terrain generation aside from the fjords. I was expecting them to have cubic chunks, some optimisation and more realism instead of a poor recreation of "real terrain" mods from over 10 years ago.
FYI most mods for Minecraft are open source, if you want to pay with this kind of thing, look there.
@@orbatosreliable cubic chunks would leave the sea of children crying for a content update
@@UJustGotGamed yeah... they should improve what already exists in the game instead of making it bugier
@@orbatos not only that, but the fjords are terrible from a gameplay perspective and get old quickly anyway
@@shadesoftime Exactly. Exploration is really annoying until you get an elytra and fireworks.
This was utterly mind boggling. So insanely clever
then if u add those realistic terrain generation mods.... i wonder how they are coded and interact with the normal terrain generation.
@@MiriadCalibrumAstar It's probably just a different configuration of values for the pre-existing terrain generation framework, and then some more condition checks like x biome can't be next to x biome or x terrain feature can't generate unless this value is x and whatnot.
Realistic terrain generation isn't that far off from the default terrain generation, which is what he said during the presentation, it's all based pretty much entirely off of these charts with basic number values.
@@Corzappy Thats quite true, ive theorized about it too. Though out of curiosity i want to know what kind of noises do they use and how are they implemented.
actually pretty simplistic, I was guessing trig waves and random noise would be used whilst watching and to my surprise they were.
don't wan't to be that guy but it's actually simple concepts
What is insane is that there were at least a dozen concepts that Henrik only briefly mentioned while offhandedly saying that those concepts would take an entire lecture to get into properly. Things like local water levels that generate aquifers, placement of terrain features and structures, how biome placement is tweaked in the code to allow for more natural biome transitions, etc. are all potentially really interesting topics (that probably are only interesting to a select few who play Minecraft and have an interest in how it works). I’m still amazed that Mojang was able to make this work in less than 18 months and that they were able to make it work on all the various platforms that the game is available. On a side note, now that Henrik has recovered from seeing everything in 5 dimensions, hopefully he will return to Mojang again one day.
The devil is totally in the details for this stuff. The basic terrain is the easy part.
Also not all these features were available in the initial release. This is many years and many snapshots surmised.
If you as a professional Developer within a large development team can barely achieve that within 18 months, then there's something wrong with your scheduling
@@luis-sophus-8227remember that the entirety of New Vegas was made in 18 months.
It would have been neat if he had mentioned a bit about the original style of cave generation which as far as I know is still present near the surface. I believe it uses a technique called Perlin Worms which is basically a random walk but using Perlin noise for more gradual movement. It would fit in quite well following on from the explanation of the overall terrain shape.
As a developer who has always dabbled a little in game development on my own time this is really interesting. And honestly one of the best explanations of Perlin noise I've come across.
But there was no explanation of perlin noise, was there?
@@nothappyzthere wasn't an explenation of how it's made, but there was an explanation of what it does
@@nothappyzperlin noise is publically accessible maths, it would be an utter waste to cover it here
@@terminalvelocity635 did I ever imply that?
@@nothappyzby saying there is no explination, you imply that you want an explanation... so... yes, you did imply it.
Seems like pretty simple but smart concepts implemented in a clever way.
I think you just encapsulated in 1 sentence, the proper approach to computer science.
@@log9705 All science really
It shows that there is so much potential behind the terrain gen still. Like water placement + terrain offset variations creating lakes and rivers at different altitudes.
this was a great talk. Henrik must have spent a lot of hours putting together all the footage of each step of the generation process
as a consistent player I really want to see more spaghetti caves. Cheese caves are cool but a bit overwhelming when you see a ton of ores at once and they are on the cielling and talls walls that are not easily accessible. Not to mention the second you walk into a cheese cave you can see everything at once, a list of objectives trying to mine ores rather than blissfully exploring and coming across ores. Spaghetti caves are fun because you never know what your going to run into and when you come across an ore its easily accessible
I wonder if it’s a psychological thing. There still are inaccessible ores on the ceilings of spaghetti caves, but maybe they arent as noticeable since a spaghetti cave feels like a path and so you instinctively focus on the ground and walls around you.
Meanwhile a cheese cave is huge, kind of aimless at times, and anything can fall on you from above. You end up looking at the ceiling, the walls, everywhere more often.
Or maybe you completely light up your caves or use night vision. In those cases you aren’t going to have those biases.
And I guess theres a size factor thing. Spaghetti caves often are smaller (I have seen really tall ones before though, so not always) and so the ceiling is going to be easier to reach.
I'm personally a *huge* fan of the new cheese type caves, because I think they're beautiful.
@@iveharzingtrue. The caves are way more beautiful now. There's always that feeling of awe when it's a beautiful cave but of course some parts are still "traditional" which is nice and there's that feeling of familiarity.
I feel like all of the old caves were spaghetti caves.
I like the cheese caves, because they're very pretty to look at. My brightness and black balance on my screen isnt very high. So unless I use a night vision potion, I actually can't see the ores on the top of the cheese caves like you do. And even if I do see them, I ignore the ores unless its diamonds. So I just run around looking at the floor only. Spaghetti caves I look at the floor walls and ceiling since 1 torch will light up the whole section.
For anyone curious, the number at 4:30 is one duodecillion six hundred and twenty undecillion
minecraft should make us be able to mess up some generation settings in the world creation menu again
Yeah with how dynamic those 5 parameters are, it'd be cool to have access to it without mods.
Jumped back into the game since last playing when ocelots were added. What a huge difference, the generation is so impressive. I flew for a couple hours in creative just exploring massive underground caves and rivers.
Let's not forget that for a short time, the simple player had pretty fine control of the terrain generation(1.12.2), nice to find out what those settings were doing.
It's a shame they removed that by the way. I don't play 1.12.2+ versions
How does this only have 3k views?!?! That was the most interesting video i´ve ever seen
It should be illegal just the fact that this has only 17K views! very underrated work!
I've just been looking in to terrain generation and how to stack noise values. This explanation is absolutely wonderful to visually understand what does what and why.
As someone who loves all things procedural, this was quite interesting and useful!
yeah I had a bit of a mindfuck moment when he spelled it - Procedular - in the slide @ 6:00 though
Awesome presentation! I am mind-blown also by the underground water generation ! It would be great to see another talk like this explaining how you did it :)
BTW that was on of the best representation of 5D grid ever seen ahaha
27:56 I'd want this as a fun generation setting
I’d watch this for hours. Such a good presenter.
By far one of the most interesting lectures i've ever seen. just so amazed by how everything works in a game that i play since 2011
Not first time I watch a video about terrain generation and perlin noise but this is really well explained and interesting, explaining well how many features generate. Saved for further reference!
Great explanation, this man structured his presentation in a really interesting way !
One of the best explanations for procedural terrain that I have ever seen.
This is amazing. Being both a long time minecraft fan and also an aspiring game developer, this just fills me with inspiration and admiration for those working on making videogames
This is a fantastic video, thank you for sharing.
amazing talk, great job! makes me appreciate minecraft even more
omg this is phenomenal, cant wait for the next update
This has given me so much inspiration to continue with my own generation, i hit s bit of a landmark with terrain when trying to implement biomes, specifically i was trying to make biomes change the terrain, rsther than calculate the terrain and make the biomes go where the terrain fits, im going to try this out immediately, especially the splines thats a reslly clever way of terrain manipulation that i eould have never thought of!! Very good video and beautiful explanation 👍
I had the exact same mistake/issue haha, how'd yours end up going?
Specifically, I had been using unique splines for each biome which multiplied the terrain height, but this meant you had MASSIVE 'jumps' between biomes rather than smooth blending
great presentation, technical minecraft videos like this catch my breath every time
This concept of reviewing minecraft is so unique compared to others, very cool!
I feel like I'm listening to a lesson in school but it's actually on something that interests me, both as a minecraft player and as a programmer
So basically, Minecraft is a stellar masterpiece collection of ideas, formulas and codes. At least that's what it seemed to me as a civil engineer who strays away from coding apart from Excel spreadsheets.
I loved this, i would absolutely adore a whole lecture series that goes in-depth on (minecraft) procedural terrain gen, i love that particular combination of math, physics & gaming.
26:43 I really love that they wanted to preserve the wacky character of the old Minecraft world gen, but there’s something so majestic about Minecraft with realistic terrain. I almost wish it was an option in the settings
I watch lectures, videos, and talks about Minecraft terrain generation every year or two, and I always get something from it.
Amazing video and absolutely brilliant explanation of how they tackled complex problems with relatively simple solutions to come up with some of the most engaging worlds in game history.
Just fantastic. And I’m saying this as a former game Producer. Kudos! 👏🏼
I like this Chad joined Mojang Studios, completely fixed and changed the world generation making it so much more fun and cool, and then departed from Mojang.
he joined in 2011?
Fantastic video! I really liked it. You have done a very good job with your team.
This is the most interesting video I have watched in a long time. I only wish he had talked more about the parts that he said were too complicated, even if the video ended up being 3 hours long
fascinating. i've played minecraft since 2012(ish) and it's really cool to understand the process behind the worlds i play in!
This is one of the most informative videos on Minecraft I have ever watched.
i watched all of this, was interested every step of the way
As a computer science student I'm just watching this in awe, so inspiring! Thank you very much for sharing.
What a job you made friends! Thank for all this stuff with new versions
The Hitchhiker's guide to the galaxy reference was a delightful surprise in such an interesting talk
It's crazy how they did all this, but never kept any of the cool, insane generation that they showed off here or in the snapshots.
for real. Some of the terrain they made looked amazing but it felt like they settled on something very average. My best guess is that they did not want it to be realistic
@@matejnovosad9152they don’t want a truly realistic world they want a world with the same characteristics form the reality but at the same time want to be fun, if the make a real world 71% of the world would be water, so the chances to get a great map will be low, also if the will be consistent mountains will be around 1000~8000 blocks (1 block 1 meter ) and like that a hundred more things, the extract the main characteristics that make a world look like a world but adapted to a game
What are you going on about? The only examples that were not implemented are the ones that have generation with basic functions. Every other picture they showed im pretty sure I've seen something just like it recently. Like, just go look at any number of crazy seeds people post online, some of them (if not most) are more interesting than anything they showed here.
As much as you think you want to play on a 3d sine wave world, do you really? Rolling out features is hard, you know
@@just-mees I think they were mostly taking about 22:36
Such an informative presentation and even though I was somewhat familiar with noise maps it was broken down so effectively that I really gained an understanding and appreciation for the level of problem solving programers go through.
Very interesting explanation of the world generation.
ive been researching for making my own game. so seeing a lower level of how my favorite game does it, is like Amazingly helpful.
Thanks for the insights. Very cool.
As a near lifelong player I really enjoyed this insight into world gen!
This was awesome i woulda been cheering and whistling when he finished
what a great presentation!
Been doing some basic procedural generation, nice to see they also seem to be looking at desmos graphing calculator to visualyze there formulas :D
the silence from the crowd was so loud
15:29 this would be so cool in desert biomes
I also think it would be cool if the sandstone in deserts went down deeper so you can get unique desert caves, maybe even a few new variants of current mobs in them.
Seems like pretty simple but smart concepts implemented in a clever way.. I’d watch this for hours. Such a good presenter..
did you just copy a comment from 12 days ago, literally 2 comments away above yours? lol
@@lastyhopper2792 this is a bot, it took 2 short comments and combined them together. The first one being "Seems like pretty simple but smart concepts implemented in a clever way" by johannesr8709, and "I'd watch this for hours. Such a good presenter." by bsdetector837." It then replaced added full stops to both comments before combining them causing it to be, "Seems like pretty simple but smart concepts implemented in a clever way.. I’d watch this for hours. Such a good presenter.." instead of "Seems like pretty simple but smart concepts implemented in a clever way. I’d watch this for hours. Such a good presenter."
I fell. Asleep to this❤
Seems this is hitting people's recommended now, great insight on how generation works
It was incredibly revealing. Especially for someone who is learning to program and has had contact with minecraft, hats off!:)
I'm surprised how much of this I've already done as a hobby, didn't think about splitting biomes up by continentalness though, I was instead trying to bias temperature and humidity with altitude, continentalness looks alot more controllable
Having played minecraft for over 8 years and having watched maybe a yearsworth of youtube videos about minecraft and it's innerworkings, i am glad to say that i learned something, though i knew most of this.
What a great video! I play Minecraft and always wondered how the world was built. Now I know!
I like how they recognize weird stuff around minecraft world is a thing and they go for it, incredible speech by the way.
Minecrafts terrain generator has always been the one feature that puts it above other survival games for me. Its insanely complicated, yet well tuned.
And it's still kinda meh compared to some modded ones
This guy is a great presenter, very informative and entertaining lecture. Had my interest the whole way.
wow really? I thought he was a brainrot just for how many comparisons he made at the beginning haha
The jungle with high hills terrain was aweso.e
Amazing work, i still to this day go in minecraft just to explore around, still finding beautiful places in the game, and i have been playing since alpha.
While i like handcrafted maps i have to say procedural gen have way more replay value, there is beauty in randomness unmatched
This was all very interesting. Thanks
The simplified terrain generation really created some cool and interesting terrains. i mean like i have never seen a lake like this 24:38 in minecraft. sure, there is some lakes but they are never as cool as this. i can just run this simplified terrain generation code without any additions like grass and trees, only stone, air and water and it will still be much more interesting than the current terrain generation. Man i can spend hours just looking at what kind of weird shapes this code will give me, unlike minecraft's more basic terrains (its ironic since this code is the "basic" version)
I think the "boringness" of minecraft's current generation is due to how much they have configured the noise, and how many rules they have set in place. It is still possible to see some really wacky generation like that in todays minecraft, but it is waaaaay rarer because of the fine tuning. If they were to unconfigure it a bit, their test chunks would look less like they want it to look like, but also allow for more wacky stuff to happen more often. The problem is balancing the tuning of generation of millions of worlds and their 100s (at most) of test worlds. It makes it very hard to tune it to allow for wacky and "fantasy" generation and also allow for the flatlands and mountains of consistent quality and consistency.
I have been trying to find equations for this THANK YOU ❤❤😊😊
Adding different shapes, irregular tesselated geometries, distinct noise patterns for the variance of shapes and playing with different bits of physics are just many ways these concepts can clearly be used to generate infinite varieties of dynamically generated and immersive ige's for most genres. This video is incredibly broadminded and extremely interesting.
YES YES I NEED THIS NEW WORLD GENERATION NOW
Definitely a very useful video to start learning terrain generation, it is very useful as an introduction. explains everything in a simple and visual way with examples.
I'm thinking about how much smoother it can run with 3D chunks. Exciting questions and possibilities raised in here that made me think of potential mods up and coming programmers could try out for themselves.
This is cool to watch, but my issue with vanilla gen remains, as the generation is still a bit too continental, and therefore aimless in a high scale perspective. Many will call bigger oceans a waste of space, but that's what gives purpose to continents in a first place. Looking at fanmade gens such as Terraforged I still believe that a lot can be done to make the world generation feel satisfying to explore.
Agree and disagree to a certain extent.
Current minecraft vanilla gen feels like the worst of both worlds in regards to terrain generation. Being too 'realistic' to allow for some of the more grand and mystical generation we got in the early versions (pre-adventure update) but not realistic enough to allow for generation to feel 'different' and unique. Or worth exploring.
Random/aimless works very well, again, looking at the earlier versions of the game. But only if it's truly random. And not so overly engineered and rule based that you always tend to get the same generation in the end.
In a certain way it's like stable diffusion/AI generated imagery. Give it too many prompts and you'll get the same image over and over again. Be more loose and restrained in your use of prompts, and you can get a much more interesting and unique output each time. Current minecraft world gen is both too restrictive to allow for everything to feel 'fresh' and different (it kind of all feels same-y) but at the same time the lack of continents or maybe 'tectonic biomes', leads to random blobs of terrain generation that, again, feel same-y in their generic randomness.
@@pagatryx5451 Yeah. Making generation more island-like would actually be amazing if paired with proper optimization, and it would be the way to make everything look distinctive. Sure, the water may feel empty but we could have a proper overhaul of how water biomes feel. Plus, it's a clear tendency for people to have better specs over time, so why not take advantage of that by optimizating it so we can make large render distances something worth it?
@@pagatryx5451Hmm, imo all the problems I had with the world gen were pretty much solved with the caves and clifs update (cellular automaton style biome placement etc)
@@ibisskb If they ever figure out how to use nanite, all of the performance will be put on the data side instead of the rendering side. Lighting might be wonky but it's still the best option.
@@ibisskb not everyone gets better specs every year, I still have my 5 year old pc and don't plan on upgrading anything anytime soon, minecraft is one of the only games i have problems with in newer updates.
that was such an informative video thanks sir
i love the maths behind it and also the multi leveled noises
I'm mind blown by the fact we still use interlaced video today in a world with essentially no CRT TVs
I hope I'm not the only one who think this is really distracting?
It has uses
It's easier to send 60 half frames then 30 full frames
Atleast this is for cable TV stuff
this is amazing i was always wondering how youd get such nice world generation
Just yesterday before finding this video in my recommended, I was looking at my modded (Oh The Biomes Youll Go mod on RAD 2) Minecraft world and wondered how you would go about changing the way Minecraft is generated while still keeping it somewhat realistic and flowing.
only 15 min in but amazing video so far, explained everything really well!
As somone thats tried to code minecraft clones in unity i would always get as far as terrain generation, 3d terrain and biomes but when it came to understanding plateaus and valleys, or even ravines i never truly understand how i could pull it off without just stamping a set structure into the generation. I now understand how i could implement the ravines and other things into the terrain generation. This was a very useful and helpful video for understanding terrain generation. Thank you
Amazing talk!
Interlaced video... My favorite!
Great talk :) It really made my day and expanded my perspective so... thank you a lot a lot like... really!
Finally a speaker that repeats the questions that were asked so we know what's going on.
Yeah, I love noise. Some good memories playing around with different noises in texture creation sandboxes and terrain generators. And I still use them in my compositing job, making animated movies look good or creating FX for them. Maybe to add some fine surface detail like grainy sand that wasn't in the actual render or using 3d noise as a force field for wind strength in a snow particle system.
Though with Minecraft, I'm still playing 1.12.2 for some mods I wouldn't want to play without and I use the Realistic Terrain Generation mod since I like my worlds more earth like than minecrafty with all it's weird floating noise bits. And I wish Minecraft had some more realistic terrain generation itself with tectonic plates and climate that follows the terrain shapes and climate bands instead of the random clouds. I currently use Geographicraft for that.
cool stuff, it looks amazing
Very interesting talk!
Damn Henrick is just amazing!
amazing talk.
that's very cool! thank you
12:42 Can imagine a multiplayer game mode where you have to build a tower on one of the islands by mining islands around it to get material. There are bonuses randomly generated at random heights and then the goal at the certain height.
I am glad this video was recommended to me
Amazing explanation! Always wondered how worlds in minecraft were generated but never found a video as informative and interesting as this. Thank you mister!
the revelation that chunk loading is the video game equivalent to collapsing a wave function
love this guy