Reinventing Minecraft world generation by Henrik Kniberg
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
Пікірлер: 697
Asking the audience to stand up is a brilliant way to generate terrain!
@HappyCappy69
8 ай бұрын
LMAOOO
@kipchickensout
7 ай бұрын
-He has to be at least 6 ft tall- He needs to be at most an erosion of -.2 and be far inland
@diamondsimon020
5 ай бұрын
@@kipchickensoutlmao
A really good look into the world of generation, I'm surprised this hasn't caught any traction.
@einootspork
Жыл бұрын
Henrik Kniberg made his own KZread video that's essentially the contents of this presentation. That version has 100K views. kzread.info/dash/bejne/dYeVl7Fvm9Hbp6w.html
@Xfrtrex
Жыл бұрын
shock micro jumpscare
@Treetrain1
10 ай бұрын
@@Xfrtrex boo
@Xfrtrex
10 ай бұрын
@@Treetrain1 TREETRAIN1 JUMPSCARE?!
@Osmiooo
10 ай бұрын
@@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
@ultimate_miner64
8 ай бұрын
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.."
@orbatos
10 ай бұрын
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.
@UJustGotGamed
10 ай бұрын
@@orbatosreliable cubic chunks would leave the sea of children crying for a content update
@themechbuilder6171
9 ай бұрын
@@UJustGotGamed yeah... they should improve what already exists in the game instead of making it bugier
@shadesoftime
9 ай бұрын
@@orbatos not only that, but the fjords are terrible from a gameplay perspective and get old quickly anyway
@Anon1gh3
5 ай бұрын
@@shadesoftime Exactly. Exploration is really annoying until you get an elytra and fireworks.
This was utterly mind boggling. So insanely clever
@MiriadCalibrumAstar
10 ай бұрын
then if u add those realistic terrain generation mods.... i wonder how they are coded and interact with the normal terrain generation.
@Corzappy
10 ай бұрын
@@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.
@MiriadCalibrumAstar
10 ай бұрын
@@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.
@user-xq1rg3qf7j
9 ай бұрын
actually pretty simplistic, I was guessing trig waves and random noise would be used whilst watching and to my surprise they were.
@billcosta
8 ай бұрын
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.
@Android480
9 ай бұрын
The devil is totally in the details for this stuff. The basic terrain is the easy part.
@It-b-Blair
8 ай бұрын
Also not all these features were available in the initial release. This is many years and many snapshots surmised.
@luis-sophus-8227
8 ай бұрын
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
@sirllamaiii9708
7 ай бұрын
@@luis-sophus-8227remember that the entirety of New Vegas was made in 18 months.
@kasamialt
3 ай бұрын
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.
@nothappyz
10 ай бұрын
But there was no explanation of perlin noise, was there?
@bananasplit566
10 ай бұрын
@@nothappyzthere wasn't an explenation of how it's made, but there was an explanation of what it does
@terminalvelocity635
10 ай бұрын
@@nothappyzperlin noise is publically accessible maths, it would be an utter waste to cover it here
@nothappyz
10 ай бұрын
@@terminalvelocity635 did I ever imply that?
@elfireii328
10 ай бұрын
@@nothappyzby saying there is no explination, you imply that you want an explanation... so... yes, you did imply it.
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.
Seems like pretty simple but smart concepts implemented in a clever way.
@log9705
10 ай бұрын
I think you just encapsulated in 1 sentence, the proper approach to computer science.
@mercerwing1458
10 ай бұрын
@@log9705 All science really
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
@WhatIsMyPorpoise
10 ай бұрын
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.
@iveharzing
10 ай бұрын
I'm personally a *huge* fan of the new cheese type caves, because I think they're beautiful.
@whannabi
10 ай бұрын
@@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.
@smugless191
10 ай бұрын
I feel like all of the old caves were spaghetti caves.
@LevaniaMeyano
10 ай бұрын
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
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.
@Saphintosh
5 ай бұрын
It's a shame they removed that by the way. I don't play 1.12.2+ versions
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.
minecraft should make us be able to mess up some generation settings in the world creation menu again
@samwallaceart288
9 ай бұрын
Yeah with how dynamic those 5 parameters are, it'd be cool to have access to it without mods.
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
How does this only have 3k views?!?! That was the most interesting video i´ve ever seen
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
It should be illegal just the fact that this has only 17K views! very underrated work!
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 👍
@ultimate_miner64
8 ай бұрын
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
27:56 I'd want this as a fun generation setting
the silence from the crowd was so loud
As someone who loves all things procedural, this was quite interesting and useful!
@Zabiru-
8 ай бұрын
yeah I had a bit of a mindfuck moment when he spelled it - Procedular - in the slide @ 6:00 though
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!
As a near lifelong player I really enjoyed this insight into world gen!
As a computer science student I'm just watching this in awe, so inspiring! Thank you very much for sharing.
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
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
15:29 this would be so cool in desert biomes
@lumbagoboi1649
3 ай бұрын
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.
One of the best explanations for procedural terrain that I have ever seen.
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.
Great explanation, this man structured his presentation in a really interesting way !
The jungle with high hills terrain was aweso.e
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
This is a fantastic video, thank you for sharing.
Fantastic video! I really liked it. You have done a very good job with your team.
amazing talk, great job! makes me appreciate minecraft even more
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.
I watch lectures, videos, and talks about Minecraft terrain generation every year or two, and I always get something from it.
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.
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! 👏🏼
omg this is phenomenal, cant wait for the next update
great presentation, technical minecraft videos like this catch my breath every time
I’d watch this for hours. Such a good presenter.
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.
@catharsis9789
3 ай бұрын
he joined in 2011?
This concept of reviewing minecraft is so unique compared to others, very cool!
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.
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
i watched all of this, was interested every step of the way
This guy is a great presenter, very informative and entertaining lecture. Had my interest the whole way.
@luis-sophus-8227
8 ай бұрын
wow really? I thought he was a brainrot just for how many comparisons he made at the beginning haha
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?
@kajmak64bit76
Ай бұрын
It has uses It's easier to send 60 half frames then 30 full frames Atleast this is for cable TV stuff
This is one of the most informative videos on Minecraft I have ever watched.
What a job you made friends! Thank for all this stuff with new versions
fascinating. i've played minecraft since 2012(ish) and it's really cool to understand the process behind the worlds i play in!
ive been researching for making my own game. so seeing a lower level of how my favorite game does it, is like Amazingly helpful.
Seems like pretty simple but smart concepts implemented in a clever way.. I’d watch this for hours. Such a good presenter..
@lastyhopper2792
10 ай бұрын
did you just copy a comment from 12 days ago, literally 2 comments away above yours? lol
@xd3athclawx554
9 ай бұрын
@@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."
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.
Thanks for the insights. Very cool.
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.
this is amazing i was always wondering how youd get such nice world generation
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
The Hitchhiker's guide to the galaxy reference was a delightful surprise in such an interesting talk
"hej och välkomna- welcome back" made me laugh
It was incredibly revealing. Especially for someone who is learning to program and has had contact with minecraft, hats off!:)
Great talk :) It really made my day and expanded my perspective so... thank you a lot a lot like... really!
Been doing some basic procedural generation, nice to see they also seem to be looking at desmos graphing calculator to visualyze there formulas :D
Very interesting explanation of the world generation.
i remember a minecraft version where you were able to edit the world generation algorithm before creating a new world and i think this was a great feature... sadly it got removed with the next major update :c
@mkDaniel
8 ай бұрын
I have never understood the values... You can still do that in CubicChuncks mod.
@ReddStrider
8 ай бұрын
I miss old customized and buffet. At least they gave us a whole lot more with datapacks but its just not easy anymore.
What a great video! I play Minecraft and always wondered how the world was built. Now I know!
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)
@xd3athclawx554
9 ай бұрын
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.
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.
@pagatryx5451
10 ай бұрын
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.
@ibisskb
10 ай бұрын
@@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?
@frodolon
10 ай бұрын
@@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)
@puppergump4117
10 ай бұрын
@@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.
@dubl33_27
9 ай бұрын
@@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.
what a great presentation!
Minecrafts terrain generator has always been the one feature that puts it above other survival games for me. Its insanely complicated, yet well tuned.
@kajmak64bit76
Ай бұрын
And it's still kinda meh compared to some modded ones
I have been trying to find equations for this THANK YOU ❤❤😊😊
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.
I fell. Asleep to this❤
This was all very interesting. Thanks
that's very cool! thank you
only 15 min in but amazing video so far, explained everything really well!
Damn Henrick is just amazing!
Seems this is hitting people's recommended now, great insight on how generation works
I like how they recognize weird stuff around minecraft world is a thing and they go for it, incredible speech by the way.
This was awesome i woulda been cheering and whistling when he finished
Even though there's a lot of positives to this new system I still sort of miss being able to find strange biome mixes, like old growth taiga next to mesa. I checked seed map and it's physically impossible 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.
that was such an informative video thanks sir
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
Great stuff.
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.
cool stuff, it looks amazing
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.
YES YES I NEED THIS NEW WORLD GENERATION NOW
Amazing 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.
@matejnovosad9152
10 ай бұрын
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
@ignacioruiz-oriol1182
10 ай бұрын
@@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
@Golgito
10 ай бұрын
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.
@just-mees
10 ай бұрын
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
@matejnovosad9152
10 ай бұрын
@@just-mees I think they were mostly taking about 22:36
23:56 "...you don't need to write tons of code, you can move these dots around." Oh man if only everything was THIS simple...
Amazing explanation! Always wondered how worlds in minecraft were generated but never found a video as informative and interesting as this. Thank you mister!
Very interesting talk!
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
i love the maths behind it and also the multi leveled noises