So [Applause] My Hi so can everybody hear me not sure always because it doesn’t have a nico or something so let’s music for now i don’t know if you can hear it I’m okay so i think we can start now i see there is a few people tuning in which is great as always it will be recorded so anyway you can watch it afterwards on youtube if you don’t have the time or don’t want to listen uh till the end it’s not big deal So today subject is noise generation so i know a lot of you are maybe afraid of it because it’s actually one of the earliest parts in minecraft i think well not so hard as part but like in terms of algorithm and how it works actually there is uh quite a background in math And all to make actually the noise so it’s quite interesting to to learn about it and also it’s one of the the few parts in the generation code which is actually really slow and you can’t do much about it except changing the nose but we’ll see about it later so yeah So today uh there is a few things that are playing so the first thing which is plan is of course explaining what is actually the noise so what are noise and what are the different type of noise in minecraft then we will see the noise implementation In minecraft and we will see that it’s actually quite different from the regular implementation and then we will see some specific stuff about the noise and actually how to oh oh it evolved in in different version and and so uh i’m afraid i don’t see anyone typing the normal Is no one is typing so look i’m always not sure if i’m talking or not because yeah okay so yeah i can hear it so it’s great okay so i’m guessing we can start maybe not everybody is already in but uh yeah i mean we can’t wait forever for everyone because Hence uh yeah will not start and yeah of course i try to keep them short so it’s about one hour each stream so it it’s not a big one um actually i’m gonna uh i already put in the description some link to some of the stuff i will talk about if You want to check them out later on also uh it’s actually the episode two of uh a minecraft primer introduction of uh word generation and actually i never publish well i published the script that i never published a video so i actually have it here like here i have The video and so on but i never appreciate you youtube maybe i will do it uh afterwards anyway uh so today we are looking about noise um first thing you need to know about noise is that’s actually uh quite easy to make some noise uh you can Actually make some noise just by using a random generator so java random is is all good and you can just pick at some point a random value between zero and one for example and if it’s um above zero just choose a boolean it’s easier on the end so true or false If it’s true then it’s white and if it’s false it’s black and then you have a random map and you get some noise which is like what you can see on the tv or on the old tv as a static noise so that’s what we call white nose or background Noise uh it’s something that it’s quite common and if you look at it uh in 3d uh you will see well it will look some something like that so it’s quite random it doesn’t have like a general shape and it have no continuity in it and it’s quite interesting because actually If you listen it so maybe i hope it will not be too much noise actually you can make it in different form and you can actually make it in in audioc too so maybe uh maybe it goes to youtube i don’t know anyway hey you can urge you listen to white nose and Yeah and so now is basically just choosing a random value that’s the easiest way to to make some noise but actually what we are looking when we are making a game such as minecraft is some kind of courier noise which means that for a given position the position Relative to to it so next to it we’ll have the value that are closest to the position so if i look here here i have a dark spot so it’s quite high in the spectrogram again if i get my spectrogram uh black well depends it can be low or high Let’s say yeah it’s low so black is low and then it goes gray next to it and white so there is a continuity in the noise so if you cut here you actually have some kind of continuity along some line and the parallel noise actually is great for that because it can do A continuity in 2d 3d you can do it in 40 50 in actually any dimension you want it’s just more complex to do but it can be done in any dimension and pillow noise was actually made by this guy so this is ken palin and it was um first time that actually the Procedural noise was made because uh basically the noise before where just so well so random noise white noise we saw earlier or where some noise that we are handmade or using some some over source and it wasn’t great so this guy had the idea to to make a new noise called Parallel noise and the way he wanted to make this noise is actually quite fun it was for tron i’m sure you all know the game uh well it’s a game um the film tron and to make this texture in it a bit random and not bland They use pearl noise to make the texture so all the texture are computer generated and using uh pelonis so if you look at the key page uh so it’s a tip of crazy news developed by ken berlin and it was developed yeah like 40 years ago and yeah it didn’t like the That solution the noise looked like well because it wasn’t good so oh i see people are tuning in great yeah we already started sorry uh so yeah he wanted some noise that looked a bit better so yeah he made apparent noise and actually we felt nice we can do a lot of Stuff and currently minecraft is running uh with felon noise so that’s great and so yeah we’ll talk about how actually it’s done i would just want you to show some some stuff yeah so that’s true topic actually there is different type of noise you can use Praise uh or paranoid which is maybe the oldest but actually it’s not the greatest in making well a great noise so there is what we call the volley noise and there is also the value noise and also there is simplex and so on but yeah each time it improved a lot and Yeah it’s volley it’s not very it’s an error here and each time it improves on speed it improves quality because of course you need to make sure that it’s coherent and make a great noise and it’s not well it looks blurry here but if you look at value-nose it’s A bit sharper so actually it’s uh it’s better so yeah that’s all the noise that well we’ll study today so it’s below noise and simplex noise and but a bit of history about the noise now um i want to just give you a background in how we construct the noise Because i think it’s important and for that well i’m gradually inspired from sebastian lag which is actually well yeah he makes great video and first videos procedural on mass generation has great introduction about noise which i will do right now but if you want to if you didn’t understand what i i Said maybe watch it because actually it’s well explained in it and it will actually give you a lot of insight now we will go to um oh actually a noise is made so and noise actually is just a sinusoid well it’s not exactly a sinusoid but actually it can be represented as a Sinusoid so yeah a combination of sinusoidal of course it’s basically just a line which is doing some some different amplitude among one axis and to make it clear we will level the y-axis amplitude and the x-axis the frequency so yeah if we we expand we’re expanding the frequency and If we are going up or down we are playing on the amplitude of course this v this image are taking from seven like video but it’s just to to make it shorter and to to make uh some noise um we actually generate uh one of those synthesized combining the combination of sinusoid then We mixed them with different octaves so it’s actually the same sinusoid but we are actually reducing it a bit and for that we are using what we call the electricity and the persistence so here there is octave one the octave two which is actually reduced in in the frequency so we have increased The frequency so we have this pattern at the beginning but actually we are getting it five times four times here uh two times two times um here we are getting four times the pattern and then we are sampling them and adding them in inside one pattern and to make sure that actually The first octave have greater importance we are actually defining the the persistence and persistence is actually just making sure that the first octave is better represented compared to the over octave but that’s actually not well i’ll explain i think so maybe we should look at what it Does actually so if we improve the the frequency as we can see we are actually seeing more noise of it so yeah as you can see as we go it’s like a zoom in the we have a noise map and we’re actually zooming when we are reducing the frequency And when we are increasing we are seeing the world map then there is the octave so the octave are basically one at maximum zoom then one at less zoom and one at less less zoom and that can be added a lot more and each time we are making sure to multiply That value of the noise by a certain coefficient which is what will modulate the amplitude so it will make sure that actually this one is better represented and this one is less represented so if we are looking at mixing the different noise so as you can see here it’s only the first Octave and as we are increasing we are moving and we are adding more of the the different octaves in it and we see a lot more relief and it makes a return which is way sharper and have lots of of different parts which are interesting to watch and so yeah of course Uh all of that is buzzy and it’s based on noise so it’s value between 0 and 1 or minus 1 to 1 depending of the value and of course we we can depending of some some function make sure that we can actually have some mountain which are raised Above the sea level and we have sea level which are in tips and for that we just need to actually multiply by by an exponential that’s quite easy and that’s usually what we use when we are doing moving with noise but in minecraft it’s different so we’ll talk about it later So with noise actually you can make the biome just a quick recap because else will maybe forget we saw that actually it’s a biomarker first then the noise are done afterwards and the the noise actually depends of the biome time so this biome is actually let me take a new knot yeah uh It’s actually a a map and on your value different value on each each cell and on each shell you will have a different noise value depending of the bio so for example the chatroid savannah will have a different noise generator than um for example a nursery yeah so the coefficient can be changed Depending on the biome usually when you are doing a game you are doing the overrays so you take a noise so it can be parallel noise volumes value no simplex noise whatever noise and then you use it to actually make the biome here we are already making the biome with uh Well as biom stack we explained uh yesterday and also it’s called diamond square algorithm behind but yeah then we when we are done with the biome we are actually making the noise so that part we can skip and then we can go to the last part which is actually the interesting part Uh that one yeah we don’t care anyway you can find the link on the description so you can tinker with it it’s quite a fun website i think um so yeah you can mess a lot with the with the noise so here let’s just pretend that It’s uh one by um in minecraft so it’s all plain so the noise behaves the same way everywhere you can move the elevation you can move some coefficient to to make sure that some part of the noise are more represented on others um so yeah we can also yeah Move some some octave so here it’s octave for the biome so it’s different but yeah basically in minecraft that’s what we are modifying we are using octa for the elevation and making the the mountains the tips and so on anyway go back to power noise and oh actually It’s done so to understand parallel noise actually you need a bit of background on mats i think and you need actually to understand what is interpolation so if you don’t know what is interpolation let me get the uh let me don’t say okay so let’s just take a pen so interpolation Is basically you have multiple points on the graph and you are trying to best fit some kind of so yeah here so if we want to best fit this line actually we want to make sure that it goes through all the point and for that we can actually make a parabola And because it’s three point so it’s the easiest shape and we can actually make it so so usually what we we do is uh we we take two points then we we divide it by by two so we we make one and one and then we join them and we actually uh apply A function on the on the line and make sure that it actually fits uh the whole shape so we don’t have a an inflection point here we actually have a smoother we’ll discuss an octopus about how actually the noise is used in minecraft later on maybe i wasn’t clear when i explained it But i think it’s better to understand how um parallel noise work beforehand because then it will be easier to explain the algorithm and oh it actually produced some results in minecraft so yeah interpolation is basically just finding the best fit for multiple points in a graph and that’s actually What we are doing here so when we are making the noise we actually don’t have any point so what we are doing is we are not making we could make some point and make the interpolation but actually we can do better we can just make for each Uh sample we take just choose a random slope and if we do so we are actually shortcutting uh the point point point here we are actually just making the line and because we are making saline then we just need to actually make the interpolation between Them and just link them and as you can see here the linking is not very hard it’s quite obvious and to do that we actually use a formula like so and we actually can go in iron x we can do quadratic and go uh cube and And so on and then we well we just prolong them we find the inflection point and then we apply the formula so we we put a slope in between and then we when we have the slope we actually have the basic uh it’s a busy slop curve so Yeah this is just a quadratic question uh which is uh so what’s balabola is it here yeah you can well it looks like that i had seen the the equation of the of the curve and when we have the curve actually you can just uh well making make it Larger or just take a portion so if you take that as your first doctor then you have to your second octave which is that and your third octave which is what and then you can just mix them and you can modulate uh via the amplitude Like we saw in here and we can actually make a curve like that and because of that we have a phenol noise which is here in dot which is actually quite looking random but it’s actually coherent because each point is following the one before and that’s because we have interpolation Okay i think i’ve lost everyone but it was important to mention that behind parallel noise actually it’s interpolation okay so now that we have that out of the table and that we have so what it does in one dimension it can actually go in two dimension And for minecraft we will go to three dimension because it’s actually uh way way complex but yeah so two dimension is actually the same thing as you you saw at the beginning we chose random slop for the first first point but actually we can do so also in a grid But for that we need to use vector because vector have a direction and also well can be a of an amplitude but here we are saying it’s one because it’s a unique vector and it’s easier so it has a direction and an orientation well not sure it’s exactly orientation but yeah so You you have actually um well you have two two value you get from one vector which is what you need because in 2d you need more information than in one t and basically in 2d what we are sampling is actually inside the cell so as you can see a cell has four Point and the four point will be sampled to get the value in in between so to get that we actually uh use well an input operation but for for the 4 vector so that’s done with dot product and if you are not well if you don’t know what Is that product then yeah i’m sorry it’s yeah it’s basis but it’s it’s math behind and you need actually to know what is it to to understand really what the noise is doing but if you don’t want you and then you just say yeah it’s a dot product of the four vector and It does some stuff and it gives you one point and to get the product of two vector well you get it’s simple as a formula and because of that you actually get that which is the the influence of each vector on the on the noise and you get a value for for each For each cell and if you actually sample it for what each sub-cell you want in the cell but you could just say that one cell is one one point then you get actually a noise pipe already and that’s all well it’s interpolation but it’s interpolation with a vector and vector It’s easier to manipulate because it’s just that product and if we go to 3d then we actually have for a cell which is a cube we have actually eight vector and vector is in 3d it’s not in 2d so it can actually well it has one more degree of freedom so it Can move a lot more and in minecraft actually it’s used once but yeah so basically if you want to retain something uh minecraft it use airline noise and simplex noise which we’ll see later on um is basically is just interpolation interpolation between so integration between points and then when you have uh Yeah thanks for right yeah i get it i mean you are not forced to watch a stream it’s recorded so you can watch it afterwards um i mean just some experiment i’m trying to do so to see if actually it it can help you to make it clear for people so be honest It’s just interpretation and then when we have fallen noise then we actually can extrapolate some elevation and from the elevation we’re actually making the mountains and of course uh parallel noise we are actually making berlin noise octaves to make uh the mountains uh builders and so on and little stone and so on So making a real mountain so it looks not just one straight mountain and it with no decoration each well it will look a lot nicer uh palo noise is not exactly used for randomizing uh it’s actually a coherent noise and uh yeah maybe i didn’t put that it’s it’s used to Actually um gives the elevation and it’s going around noise so it means that uh each step if there is actually a relation between the the next and previous point yeah okay so we have seen a lot of stuff about uh different yeah we will not see about the optimization simplex noise actually Is a bit different uh if you want to look at the original paranoia by ken palin you can actually find it on his what website what’s the university one then i linked a nice code pen uh so yeah paranoid use the seed to actually uh well it is java random with The seed so it’s 48 bits and it gives yeah the elevation but uh we’ll talk about that in the next part so just want to conclude the part about the noise in general and how it works so here are some nice stuff you can do with simplex noise and particle Because simplex noise is a lot faster and we will discuss about it and if you want really to know a lot about it about noise then you should actually read that book which is a book of shader and this has a lot of stuff and it’s also in a lot of Language so if you are not a native speaker well you can move it so in in french it’s easier for me to understand but yeah it was used for for the the front movie um yeah it’s quite well explained in that book and also it’s linked in the description so It should be relatively easy to find it i can put it in in the chat but it’s also in the description um i mean i think it’s in description uh i mean i i made yeah it’s all in the description i make sure it yeah so you can find it in the Description but yeah anyway so we have seen all the the noise is made it was actually my first part in the video which is 10 min it was five minutes and here i’m at 30 minutes yeah it was not fast okay uh but actually we are we are done Mostly because we have done a lot of stuff so we have done the first step and actually we can do the second step which is actually the most eastern interesting one let me get some water which is a noisy implementation in minecraft and another implementation implementation minecraft Is used for the overworld of course it’s used also from the end dimension with the simplex noise and it’s also used for the never dimension with some bell noise and let me check it one first time and never lay out yeah it’s a double parlance it’s a mix Of uh two parallel noise inside and also various different uh yeah paranoids which are mixed um get together so let’s take a look at how it is defining the code so maybe let’s take a look at how it was in 1.12 before before everything changed because there is a lot of stuff that I added not at least a 3d noise even if it’s not used so let’s just look at octave first so as you can see you give it a number of octaves so usually it’s eight in minecraft and yeah it’s not really clear here maybe in the improved one oh It it’s not really clear let me get something here yeah yeah no that’s not clear yeah i think biomaterial will be clear for for you maybe well i hope so but so the first thing that um is done is actually well spelling sampler but that’s the palin algorithm which i Described which is actually uh getting is a gradient and it’s actually the that project behind so if you are looking at what is actually a gradient it’s actually a dot product and it’s using uh well a table which is simply stable to go faster but uh yeah But what is interesting is oh actually it’s um it’s done and for that uh we use what we call uh the java random generator so if you didn’t watch the first video then i recommend to watch that zero because i explained what is actually a java random so java random is a prng It uses 48 bits to actually have its internal state updated it’s a lcg so each step it goes it change its state and produce an output so if i get some diagram it changes state internally but each time it gives an output here so we get a value on each type It change and that’s possible only for 2 to the power 48 at maximum then it goes back to the first state and because it’s deterministic it goes at the second state which was already visited so that’s how the parallel noise is actually seeded so it uses a java random object then There is actually the x y and z parameter which i use later on when we are using the noise to make some modification on what x y and z um but what we are using and what is different from the parallel noise algorithm from ken perlin is uh actually we are making a Permutation table with a random next tint which are decreasing so it’s uh 256.21 so the last value will actually be zero yeah and yeah we we get a permutation table and from this permutation table we actually well getting some point of it and making sure of course That they are uh correct uh according to the uh well to the rule of pearl and noise which is uh which are to to have some coherent noise among some also axes so it’s mainly done in 2d in minecraft but actually uh there is a 3d implemented implementation also So yeah it’s not really clear as you you see it so it like that so that’s why i did a 30 minute introduction about the noise because it’s not really what all the code is a bit finicky to look at and then when you have um generated one parent noise you Actually uh make it uh in octaves so each octave is actually a parallel noise and each parent noise is actually conditioned by the language and persistent so as you can see here uh well yeah it’s not really clear again here because it’s used some some fast stuff which are Used to actually improve the speed but uh we are actually uh making sure that we we are well having the octave which are less uh which uh which are well higher making a less important noise in in the global noise so we are following exactly that picture which is to make one octave A second octave which is larger but actually have less important importance in amplitude and so so that’s how we get it that implementation again is a bit optimized so it does some some stuff which are actually not clear in it but yeah then there is a simplex noise so The simplex noise is uh fast nose and because it’s a fast noise uh well it use the same stuff to set itself which is actually to use the java random and to make a permutation table but then again it uses some other stuff which is uh not actually to Uh to sample on the on on a cube so parallel noise actually is uh making the thought product of four vector something like that and it’s getting the dot product at each point in the cell but actually to form the simplex noise we are using a triangle and we are actually uh Sampling in triangle and because there is less vertices we are actually going faster it’s the well the fast random of course there is link to learn about it and yeah simplex noise is used for from a lot more stuff because it’s actually way faster so for the biome for the End dimension for example we are actually using a simplex layer for the the first layer so n biome is simplex layer when there is actually some some other layer which are used for getting the aid correctly and so on and never is actually using the The pellet noise as uh is its layer so it supports 3d but it’s actually way slower and for the overall so that’s for the biomes for the biome so biome ends and never are used with noise and in overall it’s actually the biome stack that’s why it’s uh never there is only Two to the power of 48 and for the end also compared to the world which have 2 to the power of 64. so if we want to recap that let me get the notepad okay so never is actually using parallel noise thus it’s using uh yeah maybe first minecraft noise i’ll actually Um initialize with jeff random which is actually uh really important because what’s mean but their internal state can actually not go above 2 to the power 48 when the never is using power noise so it’s quite slow even if we can actually generate it fast you know current Computer but i mean it’s slow compared to over noise and the end actually is using simplex noise so it’s a bit faster but there is also some caveats which are that mojang is not caching some stuff really fast so actually it’s it’s as equivalent to the never Er in the implementation of of uh voyage then uh when we have so that so that’s actually for the biome because i need to precise that and overall i is using the spim stack which we saw uh yesterday yeah yesterday and that’s two to the power of uh 64 states So that’s different from the nether and and so for a given seed actually there is a 2 to the power of 16 to the power 16 identical never and then but just some stuff you can derive from that information if you want actually to to look um at What we it matters actually in the world uh it’s actually how the noise is used to to make the the mountain and the relief in minecraft and that’s done thanks to the chunk generator and the chunk generator basically so that’s minecraft 1.12 is using uh three parallel noise which are the main noise To generate a eight map so eight map is basically so let me get but basically you have a chunk so let’s chunk again not good at driving but yeah that’s a chunk and uh eight map is basically just uh getting value for each of the possible coordinates in that chunk Also it in the y in the x and the y axis as a z axis and for each of them you will get a value but of course it’s coherent because it’s using a parallel noise behind so um each actually noise will be current so if you have a shape In it actually will propagate in every direction so it you will have something that looks like a mountain in vienna and of course there are some conditions so at some point it will convert to air to air so because it’s too high and um if it’s below sea level it will be stone Or gravel or dirt or something like that and that’s done in joint item up so there is what we call the main noise the main limit and the max limit which are used to well make actually the a the different uh well to mix again some noise and make sure that they They all give some really fun good and um how to say it so some good good shape or to the to the terrain um maybe we could get back to uh oh i don’t remember exactly so it was i think that one no it’s not that one maybe that one it’s that one Uh so if i go back to my first uh so it’s basically just uh making sure so if that’s its uh main balance when when you are adding a second noise and the third pillars and you are mixing them you are making the radius a bit more uh Well better because you are adding more noise and making sure that they are mixed how many tutorials will i make actually i don’t know i have something prepared for tomorrow so tomorrow at least um maybe oh i don’t know it depends if i have some topics to go Basically it’s it’s not really tutorial it’s just information general information about stuff that i want to share anyway uh so yeah in in minecraft there is actually three octaves which are made together in one chunk so again in one chunk like that and then uh each time So the trunk is filled when there is actually some other stuff which are done which actually is replacing the block in it so we have actually a skeleton which is made of stone here and maybe a water and then when when all of that is done the air is not Changed of course but at the limit of the stone there’s actually dirt which is generated there is also cross at the just above so yeah there is grass here uh there is dirt here and if it’s in the water here in the water then there is a gravel which is made just below And so on and of course after there is a population stage and in the public section stage there is the vein which are made and the vein are dirt vein and so on well that’s after all but the first part is making a skeleton which is using some stone air and water And that’s used actually in most of the dimension as the first step in generating because it’s easier to to have some skeleton of what the noise look like then actually modifying the block id accordingly so do some rule so strength generator end actually is using the the same stuff so It is using free noise when it’s replacing each of the value which are well the stones here and so on with actually the end stone and well so there’s different stuff it needs to to put in and that’s done for every chunk generation so each each ref is using actually Some parent noise behind the scene except for the part where it actually generates the dirt and and so on because that’s done with simplex noise so that’s actually how it’s done in minecraft uh i know it was not really clear for lots of people and when i will listen to It i will say yeah it’s not clear at all but maybe we can look actually at minecraft so if we go back to minecraft go to 1.12 when actually was possible to modify stuff because yeah beforehand it was not really possible to modify stuff so that’s actually the fun part we which I showcased some stuff and it’s actually not me explaining a code and so on because that’s boring i know for a lot of people if we go back to what we could do before which is actually to modify some stuff world generation customized could actually go to the next page Next page and actually change some of the noise thing we could actually change the scale of the main noise so amongst x z and y axis which is what i am called well this is my nose which is a general shape and we can actually change the depth which Will actually increase the profi the well the depth of the ocean also will increase the height of the mountain in some way as eight also increases eight but yeah so different eight are actually um in well in uh they are in the same condition like they are multiplied Together so they give one of us over there is also well the limit you can put and you can actually uh depending on the biome uh put some some depth or more scale depending on the volume so that’s what i i meant when the biome can influence the noise it’s basically that depending Of the biome you can actually scale differently so let’s say for example that we we scale among the x-axis z-axis and the y-axis so if we do so and we generate so that’s a random seed we don’t care we’ll see easily but what happened um so And so that’s plain so you don’t see a lot of stuff actually you will not see anything because you are scaling accordingly on each dimension so you will see some floating but it will not be something that you could actually see because you are actually just deleting The world noise so you are actually just making it so well you see more of the small noise but yeah you will not see a large difference between standard generation if you go at the mountain you can actually see what i meant by just deleting the noise So as you can see here the interval between the the different step is actually way larger and that’s because you don’t have as much of the of the small noise so you are forced to have some all higher step because you are seeing a lot of the Small noise which is deleted so you are seeing less interval so let’s say that before the interval where like so uh know the interval uh like so yeah like so so you’re actually seeing less of the noise which mean that actually you are well seeing some some Some stuff which look a bit weird but not real but different than my standard minecraft generation and that’s basically what we remove which is uh well i think boring because actually it was fun to mess it with our own and yeah no generation is actually something that it’s really interesting And you can make some pretty stuff with it it just needs to be well tailored so it actually makes some some interest in your game and that’s why minecraft use some specific value for example uh some of you which know the god might know about like so that one 60 Is it nine did i actually missed it done done it here here oh yeah that one for example which is actually just a value that was chosen because it was great for what noise some of of value um well specific because it’s actually a pi and so on but um Those value are just because it was great uh with fasting uh compared to over setting and yeah it was chosen like so uh you can actually for example change the defects exponent so you are changing the exponential curve for example well it’s not exactly exactly the exponential curve but it’s like so so It’s like when we go back oh and close it yeah we’ll see easier so let me get but actually uh so yeah here actually seeing it’s a bit iron let me find bikes of mountain ah it’s so slow why ah maybe because i’m streaming you know that might be why okay Uh so yeah you might not see it actually uh yeah you might see it here but me might be here you can see it actually um so here you’re actually seeing some of the dev effect which well yeah you don’t see really but like yeah it’s tried so Um one question was it worth finding pack png well it was requested by a lot of people and finding it just made it so we can focus on some other stuff i think well and plus people were happy to find back that it exists and so Uh well um i mean i have no response uh well written for that like for me back png was just one over project and yeah it was fun to work in like um i had well i learned a lot about alpha and beta but yeah anyway so yeah actually you can mess around With a lot of coefficient and modify a lot of stuff in the biome generation and that’s actually the interesting part about about it um i think i cover well oh it is used in minecraft so it is used for the biome and and never but it’s also used for the elevation And the ref one sorry so to make the mountain to make a cliff to make um plane because the plane actually are off somewhere f uh to make well so this is a death so it’s a trench let’s say it’s a trench um and so on like you can actually make A lot of stuff with noise and that’s basically those menus in in minecraft so i don’t know what i’ve planned for the left oh it evolved oh yeah because it changed a lot between the version so yeah of course if you want to tinker with it There is some libraries well you can you should use the copy of minecrafter windows generation or you can use it in rust there is actually a repo called noise noise errors so it’s on github again on github and also in credit.eu and yeah there is a spelling and the simplex Noise which are implemented but now let’s open alpha because yeah we talk about uh pack png but we can actually talk about alphas also and in alpha actually the the noise was quite similar there was uh the three main noise but the coefficients were different so as you can see the coefficients were A bit different well there was still this coefficient but like uh the y was was changed later on and there is also the surface and the different noise which are used to again uh modulates um the intensity of the three main noise and then you have uh when you are so That’s to generate a noise column which are actually if i go back to my drawing this so that’s a nice column and the noise column then um sample in the x and the set current plane and then you actually make the citron so for that you are actually You’re interpolating because you are not actually making all the noise column so if i want to actually be clear i need to make a new drawing don’t save it so actually uh when we are making some some noise to try to chunk we are actually making it In a five by five uh that’s one two three five five by five great then invite five by five grade we fill it uh as a noise column and of course we are not making uh it uh till the word height we are actually making it Uh 16 17 or 32 depending of uh if it’s why uh 128 or why 2000 not 200 256 and then when we have each of this uh 505 column we are actually uh sampling uh by interpolating for each of the cells so we are taking this cell this cell this Cell and we are actually making a four by four out of it so we are using four value to actually make four by four and inside we are actually sampling everything to uh well we are interpolating everything so to make it so they actually look current And have some stuff so that mean in like well in in alpha and so on there was some weird artifact because of what oh it was done and there was actually some some error in all the noise was taken into account so that made a few stuff Weird but as you can see it’s done here so basically we are taking the oh yeah i’m sorry yeah we are taking eight of course because we are in 3d so we are taking one two three four and then the eight uh below and we are actually Uh taking a two by two by two cub and we are sampling the middle of the two by two by two okay yeah and yeah we are taking the four noise value when we are for the four by four time eight we are actually uh making sure that it’s correctly interpolating And we are making the stone skeleton so we can actually even replace it with different uh block depending of the position so we can put sand gravel and modify the eight a bit so to write to elevate a bit so we can add some uh dirt on and also some grass on top So yeah that’s basically how it’s done in alpha it was really simple then actually it didn’t change a lot it was just well made better because the coefficients were tinker with and also they they made sure that they actually sample uh a lot more to to be sure that they Well they get the most of it but it’s also the same stuff so we have the eight value here then we are actually making the four by eight by eight because uh yeah we are actually needing well we are something a lot more here and then We well we are making the the same skeleton of einstein and yeah i know it’s uh four by eight by eight so that means that y is a x four and x where is that is eight but yeah basically it didn’t change a lot it’s always the same stuff we are actually making Parallel noise column when we are sampling the column in a two by two by two and we are making a larger map of it which actually is made from less data so we are actually making more data from what we are we have actually here as noise So that’s why there is some weird artifact but that’s not important because uh as you can see like it’s a general shape what matters if it’s only you know well in a quarter of a trunk it’s okay like if it’s a full shank then it will not be okay but like Because it’s one 64 of a chunk or one one sixteenth of a chunk it’s okay to have less data to to make actually the stuff because most of it anyway will be either air or just done so what’s important is the transition in between so anyway i think i cover most of the Stuff i know it was actually not well maybe a bit long maybe not well explained for some stuff so if you have any question just well don’t hesitate i mean the point is actually to interact i mean i have well a few questions but they are not really related to Those generation which is a shame i think but yeah i mean i didn’t warn anybody about it it’s like just random stream and i know it can be hard because people are not used to it but yeah um if we are well looking at the last project in minecraft at home for example We are looking for airbrine and airline is actually some some interesting stuff you can can use in alpha 1.0.16 in the noise because there is actually some error in it so for instance there is error in in all the different surface nodes are calculated because the coefficients are just wrong So you can use that um also there is other stuff that are changed so you can actually use that to attack the noise but again the noise generation is quite slow because behind the scene it’s using parallel noise and parallel noise is hard to generate because It’s not optimized as much as some other stuff like like i said um parent noise is a is a cube well actually it can be a a well it’s a square in 2d or cube in 3d and simplex is just a triangle and if you are going In 3d then it’s a tetrahedron so it’s actually also easier because there is less vertices and so less vector to sample but yeah simplex as also is limit because it’s not as good as the noise as well as it can be when it’s uh merged together so each each noise has a different Advantage compared to server and well you can you can search on what is the base noise and you will find different response depending of the well what you are looking actually for so let me put some random word um yeah but of course it’s uh this is a comparison of my relationship enough Uh yeah i don’t think exactly what i want um it’s bad maybe if i look for google because google loves it oh maybe there is but uh taking time to load the well yeah not too well it’s not that big anyway um i think if i can’t link something It might be a supercoder i think let me fetch the link because uh some of its stuff are quite fun to watch uh i think it will be something like that let me find the quite clever purple uh no that’s not the one so yeah but that guy um basically yeah It made a few stuff which are interesting so you can watch different noise in in minecraft uh so simplex terrain i think that’s the one but to watch simplex yeah so standard simplex noise so you can have like noise which are actually way amplify paranoias which is quite balanced which is a normal Generation in in minecraft uh cubic noise which is um i think it’s an open source alternative which actually gives some interesting patterns but actually well it might look to the mainland like some not random metal whirling noise which usually is called as one of the best noise because it makes one nicer turn So what’s good uh foot idle let’s press it i don’t know about it yeah i’m guessing we need to follow that okay it’s coming soon anyway yeah um if you want yet to mess with that i’m guessing it’s just a mod so yeah yeah it’s just a mod so you can Uninstall it and you can play with it i think it’s nice to watch wetlay 2 then you can learn about the algorithm implement them yourself like in different languages and then you can just play with it but minecraft is using well pale noise for the trunk generation and simplex noise for the biome In the end and also some of the lattice part of the trunk generation like the dirt item but yeah i think that concludes everything i think i will put that link in the description because it’s quite nice to uh to watch and i think yeah so yeah okay and Let’s add it to the description so thanks all for tuning in i think yeah it was maybe not clear everything but i hope a lot of you have well gotten some of the stuff i i said and yeah so we saw all nodes generated uh we saw yesterday that oh biome generated And we saw that well the day before yesterday but all structure works and oh also java random work so i think that tomorrow will be about something else and i have two subjects i want to talk about uh this first one might be art because it’s actually a lot of Math and linear equation so it was about latici but i think i will put that next week because actually i needed to i’ll need it to to be a lot clearer and maybe my few can help on it so tomorrow will be about recursion and recursion i mean like oh minecraft Generation work or stronghold generation work and uh and so on so that will be a fun subject again it will be a lot of explanation but there is a few visualization that could happen and it’s again some part of minecraft you need to to know uh if you Want to do some scene fighting because it’s useful so yeah thanks for tuning in and again same hour tomorrow for recursion see ya Video Information
This video, titled ‘Seedfinding tutorial part 2: Terrain Gen and Noises’, was uploaded by Neil on 2020-09-11 08:12:29. It has garnered 555 views and 22 likes. The duration of the video is 01:12:35 or 4355 seconds.
this is the third stream, we are going to look at Noise generation and how it is used in Minecraft. Because it use generic algorithm, here some materials that will use in the video:
https://github.com/SuperCoder7979/simplexterrain
https://www.youtube.com/watch?v=wbpMiKiSKm8 https://www.redblobgames.com/maps/terrain-from-noise/ https://eev.ee/blog/2016/05/29/perlin-noise/ http://paulbourke.net/fractals/noise/ https://cochoy-jeremy.developpez.com/tutoriels/2d/introduction-bruit-perlin/#LV-C https://mrl.nyu.edu/~perlin/doc/oscar.html#noise https://thebookofshaders.com/11/?lan=fr https://codepen.io/DonKarlssonSan/post/particles-in-simplex-noise-flow-field
http://libnoise.sourceforge.net/glossary/#octave https://www.youtube.com/watch?v=MRNFcywkUSA