Why Minecraft is a Technical Feat | Explaining the Engineering Behind an Indie Icon

preview_player
Показать описание

Have you ever wondered how Minecraft works? It looks like such a simple game, but anyone who has tried to reproduce it, as I have, quickly realizes that this is anything but a simple game. In this video I take a brief look at some of the many technical issues that this game had to overcome in order to become a worldwide hit. I go through various points including: mesh generation, cave generation, biome generation, light calculations and more.

I hope this video informs you a little bit more on why Minecraft is not a simple game, but actually a fully featured engine with many moving components.
---------------------------------------------------------------------
Sources:
---------------------------------------------------------------------
Рекомендации по теме
Комментарии
Автор

To those of you who are about to comment about the horrible audio balance. Yes, I already know it's messed up. Thank you for the feedback and now you don't have to comment haha.

GamesWithGabe
Автор

As a programmer, I feel like this is a great video to explain to non programmers what coding really is. While its easy to get bogged down in the details of a programming language, It's so difficult to illustrate the overarching feeling of how a programmer must approach a problem. This video does that in a very illustrative way.

habibishapur
Автор

On top of that, the game is made in java, which really isn't meant for preformance-optimized video games

The_Horizon
Автор

this gives me even more respect to the people who built the simulation we live in

The_Horizon
Автор

As a full time Minecraft modder, the game is astonishing

SkerDev
Автор

Although I prefer the new lighting system I kind of miss the old sunset, when you saw the light levels updating like a wave that swept across the world. Had something menacing and made you hurry up as night was about to come.

DrUrlf
Автор

This is why my attempt at re-creating Minecraft has taken more than a year thus far, and I've barely got much of anything.
I have basic rendering, and basic world generation, and that's it. 1.5 years of consistent work, and barely anything to show for it.
A lot of people say notch wasn't a great programmer - and that's true about his organization (how the code is organized and how readable it is), but when it comes to the problem solving and creative part of it, he's pretty good.

bluesillybeard
Автор

when i was little i was amazed and convinced that notch himself built every single minecraft world by hand

cucginel
Автор

Minecraft in my opinion is a programming and mathematical wonders, people might thing that a game like minecraft would be really simple to make due to its appearances, but it really is a masterpiece

theducktator
Автор

One correction I'd like to point out in the video, since I've worked with and researched voxel terrain generation before (specifically an optimized implementation of OpenSimplex noise). The method you described in the video is a very basic 2D Perlin noise heightmap. While it definitely was used by the earliest versions of Minecraft, the method in which they use those heightmaps is a little bit different.

To be exact, by stacking layers of noise at different scales to create more variability in the terrain. In a devlog by Notch himself, he had multiple 2D Perlin noise heightmaps to set the shape of the world. One for overall elevation, one for terrain roughness, and one for local detail. For each column of blocks, the height was (elevation + (roughness * detail)) * 64 + 64. Both elevation and roughness were smooth, large scale noises, and detail was a more intricate one.

Basically, with different layers of noise, you can do things like adding noise at different scales for roughness, or multiplying noise to get sharper terrain. This method had a great advantage of being very fast as there was just 16*16*(noiseNum) samples per chunk to generate, but had the disadvantage of being rather dull – there was no way for this method to generate overhangs, cliffs or canyons.

So Notch switched the terrain generation system over into a similar one based off 3D Perlin noise. Instead of sampling the “ground height”, he treated the noise value as the “density”, where anything lower than 0 would be air, and anything higher than or equal to 0 would be ground. To make sure the bottom layer is solid and the top isn’t, he just added the height (offset by the water level) to the sampled result. This produces a terrain with overhangs, cliffs and canyons. Achieved by only creating a cube if the point sampled is above a certain threshold.

Another note I'd like to add is that Perlin noise had major issues where it produces artifacts along directions of the geometry. More specifically, it tends to align all of its features to the cardinal axes and to the diagonals, which was also something I could visibly notice myself when I was messing around with it. Ken Perlin addressed all of these issues it had and made a newer and enhanced version called "Simplex noise". The word simplex refers to the generalization of a triangle to arbitrary dimensions. To put it simply, in 5:53 as an example, instead of an n-dimensional grid (as said in the video), it uses a grid of triangles instead. It is basically being faster to compute, scales up as needed (x or x, y or x, y, z etc.) and doesn't produce the visual artifacts.

Now one disadvantage of Simplex noise is that it is patented. Basically, no one could use it without Ken Perlin's consent. So this is where OpenSimplex noise comes into play, which is different in it’s implementation from Simplex noise as to not infringe on the patent. Whereas Simplex noise starts with a hypercubic honeycomb and squashes it down the main diagonal in order to form it's grid structure, OpenSimplex noise instead swaps the skew and inverse-skew factors and uses a stretched hypercubic honeycomb. The stretched hypercubic honeycomb becomes a simplectic honeycomb after subdivision. This means that 2D Simplex and 2D OpenSimplex both use different orientations of the triangular tiling, but whereas 3D Simplex uses the tetragonal disphenoid honeycomb, 3D OpenSimplex uses the tetrahedral-octahedral honeycomb. OpenSimplex noise also uses a larger kernel size than Simplex noise. The result is a smoother appearance at the cost of performance, as additional vertices need to be determined and factored into each evaluation.

UPDATE, a little rant: I'd like to clarify more that it isn’t just a single correction I really wanted to point out, but that this video is just technically flawed because it has been dumbed down to entertain casual viewers to the point of clickbait.

Some of the concepts explained in the video are either too simplified that it’s become inaccurate or wasn’t even correct in the first place. Every technical aspect of the game that he wanted to bring out are all common knowledge for game developers (such as culling @ 3:41) that there isn’t a single thing pointed out here that makes Minecraft a technical feat. I’m surprised by how these “full-time epic minecraft coder modder with 99 years of experience” couldn't even notice a single thing wrong over how simplified this is, such as the noise terrain generation part – a topic I researched and worked on for fun in ONLY a week, back in 2019 (when I was literally 12).

Cyclically
Автор

I'm a software engineer and Minecraft is the game that initiated my curiosity into the field. I've thought about and wondered how some of the problems were solved in a game that had such an influential impact on my life. Thank you so much on making a video about it!

Nonsense
Автор

Solid video, now I can appreciate block game even more :L

TapL
Автор

It's always bugged me how people assumed that Minecraft was a simple game just because of it's 8bit inspired art style. This video does a great job of explaining just how complex it really is in a way that's easy to understand. Thank you for this!

brickman
Автор

The video is the main inspiration for my "How Minecraft Works" series

Awesomeplayer
Автор

I think one of the most beautiful aspects of the game is how blocks are given very specific "composable" properties.
For example: The premise of a trapdoor seems quite simple: It's a basement hatch, which opens and closes when you click it.
But then you discover that it's a lock for a water stream, it responds to redstone signals, it makes mobs walk into holes, it triggers observers, it can catapult arrows, etc.
From there on, it's just an infinite rabbithole of "emergent properties", of new things to learn.

odw
Автор

Why doesn't this have more views? It's really high quality.

Drillgon
Автор

I like showing this video to idea guys. Makes them realize that coming up with some random concept is nothing compared to the enormous amount of work required to actually put together a viable product.

epimolophant
Автор

I tried re-creating Minecraft myself and it didn't seem that complicated at first, because all the techniques are known for a long time, but combining them as a single pers(s)on is quite the task

OperationDarkside
Автор

It's kinda sad that before this video went viral, it had mostly technical players discussing stuff but now there are people mostly meming around and talking about non-technical stuff. I am happy that your video went viral though, very much deserved Gabe. Keep the great work up, you're one of the most underrated tech channels I've seen. :)

trayambakrai
Автор

Note: Minecraft doesn't use perlin noise to figure out what height the terrain is, it actually uses it to calculate weather or not a block exists at a specific coordinate. That is what allows it to have overhangs.

x_architecture