Godot 4 TileMap Tutorial Ep 7 | Procedural Generation

Поділитися
Вставка
  • Опубліковано 27 вер 2024
  • Itch io Asset Pack : jackie-codes.i...
    Github : github.com/ano...
    Support the Chanel
    Patreon: / jackiecodes
    Links
    Itch: jackie-codes.i...
    Twitch: / jackie_codes
    Twitter: / jackie_codes
    Discord: / discord
    website: jackie.codes
    Equipment:
    Drawing Pad: amzn.to/3VZ9RGn
    Webcam: amzn.to/3ILykvE
    Microphone: amzn.to/3QxOWJw
    Monitor: amzn.to/3WdtVF0
    Mouse: amzn.to/3QA2QuC
    0:0 Intro
    1:09 Saving the Tileset
    2:14 Noise Texture
    5:14 Getting the Noise Values Through Code
    8:50 how the Noise Works
    10:35 placing land and water tiles
    14:19 Adjusting Noise Values
    15:11 Changing the Seed
  • Наука та технологія

КОМЕНТАРІ • 52

  • @callum.dokkodo
    @callum.dokkodo 8 місяців тому +10

    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

  • @taylorfisdboss5200
    @taylorfisdboss5200 3 місяці тому +5

    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!

  • @joshhoffman7811
    @joshhoffman7811 17 днів тому +1

    You're a super good teacher. Thank you so much for this content!

  • @shisuiuchiha1168
    @shisuiuchiha1168 2 місяці тому +1

    This is the most helpful explanation of procedural generation I've ever heard, thank you

  • @johnborg305
    @johnborg305 24 дні тому

    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

  • @xarlander6270
    @xarlander6270 8 місяців тому +5

    lol I literally just finished your tilemap series 2 hours ago, guess I get to learn more now!

  • @nano3936
    @nano3936 7 місяців тому

    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!

  • @lucaspawprint1888
    @lucaspawprint1888 5 місяців тому +3

    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! :)

  • @underwood_en
    @underwood_en 4 місяці тому

    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 ♥

  • @vejroniottan-n9s
    @vejroniottan-n9s 8 місяців тому +1

    Excellent explanations of the whole process! Thanks!

  • @MiniGunnR
    @MiniGunnR 23 дні тому

    Easy to understand. Thank you.

  • @martfp88
    @martfp88 8 місяців тому

    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

  • @rindallbroxmitten
    @rindallbroxmitten 5 місяців тому

    This is really cool, thank you so much for making this tutorial series. It helps me a lot!

  • @joaoprogrammer5306
    @joaoprogrammer5306 3 місяці тому

    Thanks for the sharing. Very well explained and insightful!

  • @DevLorenzdeh
    @DevLorenzdeh 8 місяців тому +1

    Great video as usual! 👍

  • @coderdbd
    @coderdbd 2 місяці тому

    Loved the video, thanks for the explanation!

  • @gushcraftgaming
    @gushcraftgaming 8 місяців тому +2

    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.

    • @JackieCodes
      @JackieCodes  8 місяців тому +5

      hold control before you drop

  • @joshuasteward6672
    @joshuasteward6672 5 місяців тому

    Great tutorial! Thanks

  • @ElementalTJ
    @ElementalTJ 8 місяців тому +1

    You are the best!

  • @uDropper
    @uDropper 7 місяців тому

    YOU ARE AMAZING!

  • @eskimopie910
    @eskimopie910 4 місяці тому

    good shit, thanks for the tutorial

  • @LucasIbrahim
    @LucasIbrahim 5 місяців тому

    Jackie I think I love you, thank you so fukng much

  • @dovos8572
    @dovos8572 3 місяці тому

    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

  • @LiloKid
    @LiloKid 4 місяці тому

    Thank you

  • @frozztie7511
    @frozztie7511 8 місяців тому +8

    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

    • @SokarenT4S
      @SokarenT4S 4 місяці тому +3

      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.

    • @JackieCodes
      @JackieCodes  29 днів тому +1

      Proud of you for not giving up!

  • @HtetMyat79
    @HtetMyat79 8 місяців тому

    Thanks🥳

  • @Agathoarn
    @Agathoarn 7 місяців тому +1

    Been loving these videos. Very helpful. Glad you kept working on this one.

  • @Snapper-gaming
    @Snapper-gaming 6 місяців тому

    Link to github repo and asset is down :(

  • @adrianvazquez8686
    @adrianvazquez8686 8 місяців тому +1

    How did you add the player??

  • @reTiredsolider1
    @reTiredsolider1 Місяць тому

    Cool but why is the map also the player?! xD

  • @magelan87
    @magelan87 7 місяців тому

    hi. can you do a tutorial for multi level isometric tilesets to make the character appear like it's going up the stairs? 😂

  • @CharlesLang676
    @CharlesLang676 7 місяців тому

    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

  • @ravenempty3562
    @ravenempty3562 8 місяців тому +2

    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

  • @AlwaysEast
    @AlwaysEast 5 місяців тому

    If you're open to suggestions for part 8, could do with a video that shows how to use auto tile alongside procedural generation.

  • @francopadovani1455
    @francopadovani1455 7 місяців тому

    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.

  • @tomaszdecker5862
    @tomaszdecker5862 4 місяці тому

    11:20 - How did you do that? I only get $TileMap when i drag?

    • @dovos8572
      @dovos8572 3 місяці тому

      drag to location, then ctrl and then letting go.

    • @vesogry
      @vesogry 3 місяці тому

      @@dovos8572 Thanks

  • @aSinkingShip
    @aSinkingShip 5 місяців тому

    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

  • @peter5470
    @peter5470 8 місяців тому

    I've made my first game ever with godot4 last year and back then I would love to have started by your tutorial!

  • @aaronmaldonado6562
    @aaronmaldonado6562 5 місяців тому

    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.

    • @Eaode
      @Eaode 2 місяці тому

      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.

    • @aaronmaldonado6562
      @aaronmaldonado6562 2 місяці тому

      @@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.

  • @morganp7238
    @morganp7238 3 місяці тому

    To programmatically generate new maps:
    var fnl = noiseHeightText.noise as FastNoiseLite
    fnl.seed = randi() % 10
    GenerateWorld()