For those wondering why we have a bunch of decimals after calling print: Those decimals are the original values from the noise, within the noise-texture… without the modified interpolation or even normalized from 0 to 1… Using .get_image() instead of .noise will normalize and interpolate correctly… the person doing the tutorial didn’t have to change those settings, because .noise wouldn’t recognize them .get_image() is also an image, so, it’ll behave slightly differently- seemingly slower, but probably faster since it’s built-in
@callum.dokkodo10 ай бұрын
I just started using godot this week because I'm a TV/film composer looking to get into game audio. I have a very basic understanding of coding from writing some custom scripts for my DAW. I've been watching a lot of godot-tubers and out of the 8-10 I've watched, your way of explaining and breaking things down really helps me learn. You are very thorough while still covering a lot of ground. This is incredibly helpful in motivating me to keep learning. Thank you
@PsychopatzАй бұрын
OMG, so this is how the seed works when we put it in the minecraft. Thanks for explaining it with many examples, as a visual learner it helps alot to conceptualize this idea
@taylorfisdboss52005 ай бұрын
This is an excellent tutorial. You move quickly through the content, point people back to documentation where possible, and explain things to the exact depth that needs explaining. Thanks for the excellent lesson!
@xarlander627010 ай бұрын
lol I literally just finished your tilemap series 2 hours ago, guess I get to learn more now!
@shisuiuchiha11684 ай бұрын
This is the most helpful explanation of procedural generation I've ever heard, thank you
@nano39369 ай бұрын
Thanks so much! This tutorial is great! I've started learning Godot not too long ago, and I couldn't find anyone talking about procedural tilemap generation in Godot, but your video was very easy to pick up and understand. Great job!
@peter54709 ай бұрын
I've made my first game ever with godot4 last year and back then I would love to have started by your tutorial!
@johnborg3052 ай бұрын
There are not a lot of tutorials for godot, i was lucky to find the exact info i needed from this video thank you so much
@joshhoffman78112 ай бұрын
You're a super good teacher. Thank you so much for this content!
@vejroniottan-n9s10 ай бұрын
Excellent explanations of the whole process! Thanks!
@Agathoarn9 ай бұрын
Been loving these videos. Very helpful. Glad you kept working on this one.
@lucaspawprint18886 ай бұрын
Ty. I didn't even know about set cell, so I think I am way ahead of myself lol. But part of the reason I got here was to see what was possible with tilemap, so thank you for that! :)
@visibletoallusersonyoutube59286 ай бұрын
This is probably more important and productive than most of us give credit to
@martfp8810 ай бұрын
I'm coming from engineering background, a lot of GIS software, python, data analysis (pandas, Machine learning and so on) thanks for introducing the noise functionality! I love it! Random sets and these algorithms are my language. Didn't know Godot had such things, I'm going to have more fun
@rindallbroxmitten7 ай бұрын
This is really cool, thank you so much for making this tutorial series. It helps me a lot!
@aSinkingShip6 ай бұрын
I never thought to use a noise texture as the basis of my proc gen! Thanks for giving me inspiration to mess around with that side of the engine more! :D
@underwood_en6 ай бұрын
this was a fantastic intro to using noise generation to pain a 3D canvas. I've used what you have shown in this video to create an isometric generator prototype ♥
@joaoprogrammer53065 ай бұрын
Thanks for the sharing. Very well explained and insightful!
@gushcraftgaming10 ай бұрын
Small question at 11:21, you drag the tilemap into the script and it auto generates the variable associated with the tilemap. I'm trying to figure out how to do this, as when I try, it only just grabs $TileMap for me.
@JackieCodes10 ай бұрын
hold control before you drop
@MiniGunnR2 ай бұрын
Easy to understand. Thank you.
@AlwaysEast7 ай бұрын
If you're open to suggestions for part 8, could do with a video that shows how to use auto tile alongside procedural generation.
@coderdbd4 ай бұрын
Loved the video, thanks for the explanation!
@DevLorenzdeh10 ай бұрын
Great video as usual! 👍
@kytyzovv9 күн бұрын
I fell in love
@Alex_WilmanАй бұрын
this is insanely helpful ty
@OmarEfren9 күн бұрын
Nice, this helped a lot!
@aaronmaldonado65627 ай бұрын
Hello! I appreciate your contribution. I already have experience creating 2-dimensional terrain, but using Game Maker Studio 2.3. However, I found that this engine turns out to be more complicated than expected, since you often have to design your own noise generation algorithms and other tools that are not always effective. This takes a long time before achieving a satisfactory result. For this reason, I have decided to switch to Godot, which offers more facilities, is very fast, flexible, efficient, free, and I have seen that it has excellent quality of visual effects. To be concise, in GMS2.3 I usually create objects to represent terrain. These objects allow direct interaction, allow terrain modifications, and destruction, as well as the playback of sounds and animations. For example, in a game with a perspective similar to Terraria, the sand block must check to see if there is space underneath to move in that direction. If possible, switch to another type of object, such as a projectile. When this projectile hits the ground, it turns back into a block. I honestly still don't understand how this could be achieved using TileMaps in Godot.
@Eaode4 ай бұрын
I think that example is really telling, actually, because in Terraria when sand is falling it's almost a different entity. You could achieve what terraria does by checking if there's a solid tile below a sand tile. If there isn't, you can delete the sand _tile_ and spawn a falling sand _object._ When the falling sand object collides with solid ground again you can place a sand tile in the tile map where it ended up. In this way you keep all static tiles in the tilemap for efficiency, and only use objects when you need dynamic motion and other such operations.
@aaronmaldonado65624 ай бұрын
@@Eaode It sounds like the most suitable thing to optimize the game. However, if the sand block is simply a tile, it will never be able to check if it should fall, so I suppose that the tile method does not work for certain types of blocks with behaviors like this, although it could work for a dirt block for example. I think that although it is more complicated to develop, it's better, at least in terms of performance, to implement an hybrid model between tiles and other objects to represent an interactive terrain like in Terraria.
@LzulianАй бұрын
Nice tutorial, tks 💜
@ElementalTJ10 ай бұрын
You are the best!
@joshuasteward66727 ай бұрын
Great tutorial! Thanks
@AzaIndustries15 күн бұрын
Thank you!
@PeakTubezАй бұрын
excellent !
@francopadovani14559 ай бұрын
How did you add the atlas texture to the animatedSprite2d ? I am on 4.2.1 and a lot of things have changed but they are still there.
@uDropper9 ай бұрын
YOU ARE AMAZING!
@eskimopie9106 ай бұрын
good shit, thanks for the tutorial
@LucasIbrahim7 ай бұрын
Jackie I think I love you, thank you so fukng much
@magelan879 ай бұрын
hi. can you do a tutorial for multi level isometric tilesets to make the character appear like it's going up the stairs? 😂
@dovos85725 ай бұрын
did you know that you can use match for the if else chain? it would look something like match noise_val: var value when value >= 0.0: stuff continue var value when value
@LopMugi5656Ай бұрын
lov u oov u love u THANKSS
@CharlesLang6769 ай бұрын
Im enjoying these tutorials however going from 6 -> Plant growth to now part 7 procedural generation is confusing as it looks like a completely different project. Like you never showed making the player in the previous videos
@LiloKid6 ай бұрын
Thank you
@Snapper-gaming7 ай бұрын
Link to github repo and asset is down :(
@tomaszdecker58626 ай бұрын
11:20 - How did you do that? I only get $TileMap when i drag?
@dovos85725 ай бұрын
drag to location, then ctrl and then letting go.
@vesogry5 ай бұрын
@@dovos8572 Thanks
@frozztie751110 ай бұрын
damnit, now im confused, the tilemap in "world 2" doesnt have all those trees n stuff D= *edit* well alot of mukkking about and replacing stuff atleast i have the right tileset now =P but when i type out the print commands my debug is ocmpletely empty, prints absolutely nothing ;_; *edit 2* yeah whatever i do all that loads is just a grey screen, i have no idea why ;_; *edit 3* rewatching the video a couple of times, watching the areas i thought i missed. decided to fugg it, just rewatch everything and bam... for some reason im lacking "generate_world()" under func _ready... *bashes head on keyboard* 1.5h trying to figure out whats wrong for something this... stupid... thank god im a special kind of stuborn! xD
@SokarenT4S6 ай бұрын
This reminds me the time i kept trying to follow a tutorial for a java 2d platformer, and never got the world to den cause i missed 1 comma, it took me 6 years of trying to find it out.
@JackieCodes2 ай бұрын
Proud of you for not giving up!
@HtetMyat7910 ай бұрын
Thanks🥳
@purpurwonderful3 ай бұрын
Cool but why is the map also the player?! xD
@adrianvazquez868610 ай бұрын
How did you add the player??
@adrianvazquez868610 ай бұрын
Okay I saw it's on the free assets pack!!
@ravenempty356210 ай бұрын
Oops, I did it again I played with your heart, got lost in the game Oh baby, baby Oops, you think I'm in love That I'm sent from above I'm not that innocent You see my problem is this I'm dreaming away Wishing that heroes, they truly exist I cry, watching the days Can't you see I'm a fool in so many ways But to lose all my senses That is just so typically me Oh baby, oh
@NathanWoyessa5 ай бұрын
what
@morganp72385 ай бұрын
To programmatically generate new maps: var fnl = noiseHeightText.noise as FastNoiseLite fnl.seed = randi() % 10 GenerateWorld()