Godot Game Development - Crash Course for Beginners

Поделиться
HTML-код
  • Опубликовано: 12 июл 2024
  • Learn how to use the Godot game engine to create your own platformer game. Throughout the course, you'll learn everything from setting up your first 2D scene and animating the player, to designing enemies, incorporating UI elements, and implementing game-saving features.
    ✏️ Course created by ‪@CodingQuests‬
    💻 Code: github.com/GDSimplified/Platf...
    💻 Assets: ansimuz.itch.io/sunny-land-pi...
    ⭐️ Contents ⭐️
    ⌨️ (0:00:00) Into and Course Overview
    ⌨️ (0:02:08) Downloading Godot
    ⌨️ (0:03:19) Setting Up the Godot Project
    ⌨️ (0:05:21) Your First 2D Scene
    ⌨️ (0:07:32) UI with Control Nodes
    ⌨️ (0:09:41) Main Menu Script
    ⌨️ (0:14:10) Your Second Scene
    ⌨️ (0:16:19) Downloading The Game Assets
    ⌨️ (0:17:11) Fixing Asset Pixelation
    ⌨️ (0:18:12) Making the Player Character
    ⌨️ (0:22:42) Making the Background
    ⌨️ (0:24:29) Understanding The Default Player Script
    ⌨️ (0:26:57) Animating the Player with Scripting
    ⌨️ (0:29:43) Player Camera and Game Window Sizes
    ⌨️ (0:31:24) Animating the Player with AnimationTree
    ⌨️ (0:41:37) Setting Up Paralax Background
    ⌨️ (0:47:31) BONUS! TileMaps and TileSets
    ⌨️ (0:51:30) Limiting Player Movement to Screen Bounds
    ⌨️ (0:52:04) Creating Our First Enemy: Frog Mob
    ⌨️ (0:55:15) Frog Mob AI Scripting: Chase the Player
    ⌨️ (1:04:38) Frog Mob AI Scripting: Hurt and Kill the Player
    ⌨️ (1:09:12) Player Health UI and Scripting
    ⌨️ (1:13:29) Global Game Scripts
    ⌨️ (1:15:37) Saving and Loading the Game
    ⌨️ (1:23:04) Adding Gold Count to UI
    ⌨️ (1:25:35) Set Up Collectable Items
    ⌨️ (1:28:25) Animating Tweens In Godot
    ⌨️ (1:33:28) Timer Nodes for Spawning Items
    ⌨️ (1:37:30) RNG: Random Number Generator in Godot
    ⌨️ (1:39:19) Quick Tip - Organizing Spawning Folders
    ⌨️ (1:40:12) Outro and Goodbye!
    🎉 Thanks to our Champion and Sponsor supporters:
    👾 davthecoder
    👾 jedi-or-sith
    👾 南宮千影
    👾 Agustín Kussrow
    👾 Nattira Maneerat
    👾 Heather Wcislo
    👾 Serhiy Kalinets
    👾 Justin Hual
    👾 Otis Morgan
    --
    Learn to code for free and get a developer job: www.freecodecamp.org
    Read hundreds of articles on programming: freecodecamp.org/news

Комментарии • 1,5 тыс.

  • @CodingQuests
    @CodingQuests 9 месяцев назад +531

    For anyone struggling with the assets, the original artist changed the format of the assets into sprite sheets. The location of the sprites have changed as well but you just have to look through the folder! HOWEVER, at 21:03 i go over how import the sprite sheet instead of single sprites!

    • @Nugget40385
      @Nugget40385 9 месяцев назад +8

      yeah not rly i have no idea what to do with the spritesheet with all the sprites

    • @CodingQuests
      @CodingQuests 9 месяцев назад +7

      @@Nugget40385 I show at 21:03 like I just said

    • @Nugget40385
      @Nugget40385 9 месяцев назад +5

      @@CodingQuests yeah i saw that, but appling that to the big spritesheet wasnt intuative, didnt rly get what u meant by "bc its 2 horizontal and 1 vertical". got it tho

    • @pinkiepiedanceparty
      @pinkiepiedanceparty 9 месяцев назад +2

      thank you for tutorial in regards to placing the panel for the sprite to land on when you play the project my sprite falls right through the panel and doesnt seem to have collision ive gone back through the vid but cant seem to find anything ive done differently that would allow this to occur. i have the 3 collision shape 2d all made unique and the panel as well

    • @Northwatch1214
      @Northwatch1214 8 месяцев назад +1

      @@Nugget40385 i thought it was pretty straightforward. learning new things can be hard sometimes though

  • @jesusisc0mings00n3
    @jesusisc0mings00n3 10 месяцев назад +2033

    This video is about to blow up, thanks to Unity.

    • @abdulrahmanal-romaihi9593
      @abdulrahmanal-romaihi9593 9 месяцев назад +67

      here for the same reason lol

    • @Programetr
      @Programetr 9 месяцев назад +53

      Returned to godot, thanks unity.

    • @Teymuur
      @Teymuur 9 месяцев назад +40

      3 years ago found godot hard and used unity now i realize how good of an engine it is

    • @pengoo1933
      @pengoo1933 9 месяцев назад +7

      Thats why Im here lol

    • @Tobsson
      @Tobsson 9 месяцев назад +10

      This is like the only reason why I'm here and not trying to learn unity.

  • @lilredcutie0
    @lilredcutie0 10 месяцев назад +1605

    Welcome fellow Unity refugees 😊

    • @jevestops3879
      @jevestops3879 9 месяцев назад +36

      Thank you😂

    • @gjohgj
      @gjohgj 9 месяцев назад +17

      😅

    • @Valuepak
      @Valuepak 9 месяцев назад +12

      😂😂

    • @Shuhkky
      @Shuhkky 9 месяцев назад

      Of course the unity monetary thing had to happen 1 year into my games development 🥲😂

    • @amigoRBLX
      @amigoRBLX 9 месяцев назад +37

      Start welcoming roblox refugees too…

  • @muaowa
    @muaowa 9 месяцев назад +339

    Nearing the end of this mini-project. Felt like a 10 hour course in disguise with all the pausing, note-taking, and following along! Thank you, this was pretty helpful :)

    • @Nemsys16
      @Nemsys16 6 месяцев назад +3

      I can feel that

    • @NostalgicChuk
      @NostalgicChuk 5 месяцев назад +1

      What notes did you take, if you don’t mind me asking?

    • @muaowa
      @muaowa 5 месяцев назад +5

      @@NostalgicChuk anything I kept forgetting and going back to. Especially with why some of the script was written the way it was so I can learn more about it separate from this tutorial

    • @wolfmantattoosjl8631
      @wolfmantattoosjl8631 4 месяца назад

      yo any help for 34:34, my frame wont switch@@muaowa

    • @itsmeJonB.
      @itsmeJonB. Месяц назад +1

      can I copy your notes

  • @Ninjujitsu
    @Ninjujitsu 11 месяцев назад +219

    Thank you very much it was very easy to get up and running.
    Some notes from my personal experience, you move your mouse very quickly and tend to skip over what you're clicking on. It's natural for you but for us learning the software when we blink and you're on a new screen it's confusing so it would be nice if you either announced what you're clicking on or have a mouse click animation. You also do it when you're making new nodes, you click on the root/parent before you make the node but you don't say this and so I was making nodes with the wrong parents. And when you did the animation of the player, you would reset the timeline back to zero before you added the animation but you didn't mention this and it took me a while to figure out what I was doing wrong there.

    • @EienMugetsuTensho
      @EienMugetsuTensho 9 месяцев назад +15

      I agree with this. Also sometimes the zoom will cut out on what he is clicking on.

  • @kidmd64
    @kidmd64 Год назад +843

    This guy is heavily caffeinated but full of good information.

    • @CodingQuests
      @CodingQuests Год назад +14

      very true 🤣🤣

    • @MiturGrunge
      @MiturGrunge Год назад +58

      I know, right? I had to watch this at 0.75 speed to follow :D

    • @streamdungeon5166
      @streamdungeon5166 9 месяцев назад +27

      @@MiturGrunge I tried at 0.5 and still leaving now with a headache looking for better tutorials elsewhere...

    • @jaykelley103
      @jaykelley103 9 месяцев назад +12

      Prolly adderall lol. But yeah this video is really good and its helping sooo much

    • @stabbedbyapanda
      @stabbedbyapanda 9 месяцев назад +6

      Definitely, finished it but definitely annoyed and frustrated. Super anti-calamitic with that last bit

  • @ejun251
    @ejun251 6 месяцев назад +74

    It blows my mind how simple Godot is compared to Unity ('m migrating from there). The pythonic code is intuitive and there's basically no setup needed at all. Getting all the auto complete suggestions without having to do any setup was amazing. I'm blown away. Christmas coding it looking to be an amazing time

    • @Battleooze17
      @Battleooze17 6 месяцев назад +1

      I was thinking the same

    • @mikicerise6250
      @mikicerise6250 6 месяцев назад

      It's okay, though I'm definitely sticking with C#. xD Unlike Unity, Godot actually supports modern .Net 6 instead of Framework from the Jurassic. xD

    • @tonystdeng
      @tonystdeng 6 месяцев назад +1

      dude just invented pythonic as a new word that discrib programming languages.

    • @geordiemartinez
      @geordiemartinez 5 месяцев назад +1

      I work in python every day. Don't really know C#. Was able to instantly figure out what was going on and help fix my kid's game that wasn't working. I'm a fan of C# now.

    • @Ricky_and_Mimi
      @Ricky_and_Mimi 5 месяцев назад +1

      Fr, Javascript coder here and it all just makes perfect sense to me

  • @fotoreportaze5797
    @fotoreportaze5797 Год назад +307

    It goes a bit too quickly for me, so I had to hit pause a few times in order to catch up. But, all the good stuff is there and I found this even more fun than Unity. Thank you. I will definitely experiment more with Godot.

    • @360dom360
      @360dom360 Год назад +40

      I've seen other tutorials do a visual indicator every time they click and I think that would be really beneficial here

    • @kinkatse2589
      @kinkatse2589 11 месяцев назад +11

      Exactly this

    • @Chiller31916
      @Chiller31916 11 месяцев назад +9

      Friendly recommendation: Might be a good idea to click Settings>Playback Speed>Custom to slow down videos. Sometimes I listen to videos at 0.95 or 0.90, slow enough to keep up but quick enough he does not sound drunk lol

    • @suppervillain
      @suppervillain 10 месяцев назад +13

      Oh, you're definitely going to enjoy this more than Unity..

    • @DiavoJinx
      @DiavoJinx 10 месяцев назад +4

      Definitely set this vid to 75% playback speed & he sounds like a normal human. Whomever uploaded the vid clearly sped it up first to shorten the total time. :-/

  • @BoredPodcaster
    @BoredPodcaster 10 месяцев назад +76

    Great intro to the program, it even got the gears turning in my head to the point where I even added a hop motion to the frogs. For those who aren't sure how to do that, just go back and reference how you made your player jump, as well as the section where you made the frog chase the player, and it's pretty simple to add.
    If shooters are your thing, and you need to add the actual shot, just remember; this guy just showed us how to spawn something in at 1:33:28. I know most people will probably think that's obvious, but if you're just starting out, it can be very hard to see the forest from the trees.
    I actually came from Unity, which to me was overly complex. I've worked with Gamemaker since around GM6, and learned GML back in the day. Unity is a great engine, but Godot 4 is definitely the engine for me as a hobby game creator. It's going to be fun creating that game I've been wanting to make for years and never finished.

    • @kyleglendinning9414
      @kyleglendinning9414 5 месяцев назад

      I really appreciate this comment, you got me to try and set up frog jumping on my own and it led me down a small rabbithole of learning a few new things on my own

  • @SpookieD00kie
    @SpookieD00kie 10 месяцев назад +90

    Hi everyone who left Unity

  • @Avatinfernus
    @Avatinfernus 7 месяцев назад +46

    Doing this tutorial now with Godot 4.1.3 and at 59:46 that did not work. I had to use self.global_position to get the frog's correct positioning. if I just used position or self.position the 'x' was always set to 0 somehow. For the player, position and global_position were always the same.

    • @smeennu
      @smeennu 7 месяцев назад +7

      duuuuuuuuuuuude you are a life saver, i have been fighting this for 2 days trying to figure out what went wrong. Thank you so much.

    • @Lion-up5rz
      @Lion-up5rz 7 месяцев назад +2

      This is my line of Code: var direction = (player.position - self.global_position).normalized () if I am Running this its Crashing always at this line and I dont know what i am doing wrong? Even if i set the line to var direction = 1 and delete the other lines following its crashing it dosent make any sens

    • @mikicerise6250
      @mikicerise6250 6 месяцев назад +2

      Yep. Did it with 4.2 and also figured GlobalPosition was what was needed. I'm not clear on what position returns... it definitely seems to be a position relative to some node, but I'm not sure which.

    • @mmhmmlala
      @mmhmmlala 6 месяцев назад

      @@Lion-up5rz i had a few crashes for this reason and i fixed it by checking the mobs tree in the world scene. i had some mobs as children to others and it would crash every time i went near the child node.

    • @piotrdanielczuk198
      @piotrdanielczuk198 6 месяцев назад

      GUYS! Just move "Player" from node2d and remove node2d(player), after saving everything works fine :) Good luck (I used version 4.2.1)
      ruclips.net/video/pHIi7Vte7Xk/видео.html

  • @vid2422
    @vid2422 Год назад +192

    Ok seriously guys, now you've done everything!
    thank you so much, I'm happy to see my favorite game engine covered by my favorite learning channel, you're awesome!

    • @konjecture
      @konjecture 10 месяцев назад +2

      Have you made your favorite game with it yet?

    • @MageSkeleton
      @MageSkeleton 9 месяцев назад

      Godot may end up being "everyone's" favorite game engine at this point. i've not heard anything about Python.

    • @BenitoBeni1414
      @BenitoBeni1414 8 месяцев назад

      Bit there’s only 1 level😅

    • @urdadtai
      @urdadtai 4 месяца назад

      @@MageSkeleton because GDSCRIPT is very much like python and I'm a python developer myself so this engine was gold for me

  • @aloewishus
    @aloewishus 10 месяцев назад +71

    This is nice but a bit frustrating to follow and things get messy in the coding area when you're following along and then code gets edited and moved around it gets pretty confusing.
    Also add the yellow cursor dot for the mouse as it is hard to follow where you are going sometimes as newbs are unfamiliar with the interface.
    Just helpful critique for next video.

    • @thecasualfly
      @thecasualfly 8 месяцев назад +3

      And slow down... I used to be in charge to training at my old job and with very technical complicated processes and it's easy for eager techs to go fast and be excited about the topics training on but you could see the trainee eyes gloss over from overload.

    • @alpha4TW
      @alpha4TW 3 месяца назад

      @@thecasualfly u can pause and hes speeding up so that the vid is not 10 hrs and not annoying for everyone who knows the interface.

    • @3bears744
      @3bears744 Месяц назад

      you're never going to get a coding tutorial that isn't moving code around. He is doing this to show how things work. If you dont like it, which i totally get, just skip over it and try and copy what you see when its more finalized. He at least moves his code in a way that doesnt break things in his own tutorials, this tutorial is by far the cleanest one i've seen in ages.

  • @dankodev
    @dankodev 10 месяцев назад +35

    This video is about to blow up after what Unity did

    • @jesusisc0mings00n3
      @jesusisc0mings00n3 10 месяцев назад +1

      lol I literally wrote the same comment almost word for word. Then I sorted by Newest and there you are, three hours previous lol

  • @MetaDataAutomation
    @MetaDataAutomation 5 месяцев назад +8

    I can see some other comments having this same issue, so here is the resolution
    The part where you setup the health 1:10:05 causes the game to crash for many BECAUSE he cuts out the part of dragging the playing into the script. You want to drag the child player (not the parent node) into the script.
    func _process(delta):
    text = "HP: " + str(get_node("../../Player").health) is the correct code.

    • @eric.is.online
      @eric.is.online 5 месяцев назад

      Thank you so fucking much. Been banging my head against this for an embarrassing amount of time. This is a cool tutorial (and hey, the price is right), but he does skip steps.

  • @of-emesis
    @of-emesis 6 месяцев назад +8

    Great crash course. I even surprised myself by actually making the connection from the menu to the world scene by myself. Just shows how intuitive Godot is. great stuff!

  • @acuencadev
    @acuencadev 9 месяцев назад +12

    Thanks for sharing. This is a much better introduction than the one in Godot documentation. Keep up the good work!

  • @tylervalois5257
    @tylervalois5257 8 месяцев назад +10

    You left me drowning in cherries! I can't make them stop spawning lol excellent course for getting the basics down and I like that that you went through the whole thought process in the code and bug checking not just "put all these lines in and you're good". Definitely checking out your channel for more!

  • @Richi0h
    @Richi0h 6 месяцев назад +7

    Honestly, just making a working quit button is fulfilling. Never learned this stuff in school at my age, fun to learn!

  • @nickst2797
    @nickst2797 Год назад +490

    Please one tutorial for an FPS in Godot! Everyone interested, please thumbs up, so the creator can see the trend!

    • @CodingQuests
      @CodingQuests Год назад +34

      hehe, im currently working on a 3d RPG series right now, but FPS might not be out the picture :)

    • @nickst2797
      @nickst2797 Год назад +4

      @@CodingQuests Waiting for everything! Thank you!

    • @devantejeffries3810
      @devantejeffries3810 10 месяцев назад +1

      ​@@CodingQuests I can't wait to play it

  • @Wanderer255
    @Wanderer255 8 месяцев назад +26

    I've been working my way bit-by-bit through this tutorial for about a month now. Folks weren't kidding when they said it was a ten hour course compressed into 1:41. I've tried a ton of "basics of so-and-so game engine" and always ended up getting bored or stopping partway, but this is the first one I've actually seen all the way through to the end. As frustrating as your speed could be sometimes, it really forced me to stop, replay, and pay attention to parts and to do a little legwork to understand what was going on, which I think ultimately helped me internalize the concepts better. I even appreciate you not editing out the parts where you messed up and had to go back and fix things, since it gives a taste of problem solving. It also gave me the chance to notice them before you did, which made me feel accomplished and like I actually understood the core concepts.
    Thank you so much and I look forward to sampling your other tutorials.

  • @josephlai9404
    @josephlai9404 Год назад +1

    Excellent ! Covers all the main features in an efficient and sufficient amount without being too overwhelming. Thanks!

  • @5tycho
    @5tycho 10 месяцев назад +26

    Really good intro to godot. I think this could easily have been twice or more longer in duration because of how often I had to pause but that's no biggie, that's what the pause button is for.

    • @alexomar9168
      @alexomar9168 10 месяцев назад +5

      I had to watch this guy at 1.5x. It's way too slow. There are plenty of 10+ hour tutorials out there but this guy speed-running the info is the best thing I've ever seen for godot.

    • @Tobsson
      @Tobsson 9 месяцев назад +2

      @@alexomar9168 Agreed. I rather have this and the ability to just pause/go back rather then listen to a chipmunk never getting to the point in 2x speed.

  • @frankrobertosalascastillo4200
    @frankrobertosalascastillo4200 Год назад +7

    This channel is wonderful. Not only does it have wonderful courses but it also allows me to find hidden gems on RUclips. 😀

  • @kylev6532
    @kylev6532 2 месяца назад +5

    Jesus christ man.... you click things before you're even talking about them. This tutorial is super smooth if you already know what you're doing and don't need to take it slow. Still works if you don't. It's just rough

  • @rebeccatest123
    @rebeccatest123 9 месяцев назад +59

    For all the poeple with problems with the new asset set.
    In the downloaded files is a file with the name GodotProject, can´t import it in godot but if you open it there is another GodotProject file in it, open that too. Then you can drag enemie, music, pickups, player and world in Godot then skip the video to min 20:45 there he is showing how to use spite sheets.
    Hope that helps everyone =)

    • @pickanapple
      @pickanapple 9 месяцев назад +3

      TY so much!

    • @stumblebumgames
      @stumblebumgames 9 месяцев назад +8

      As of today, since the Asset download has changed, this should be the top PINNED comments. I was stuck on this part for about 30 mins. Thanks for the help

    • @BanjinTsuki
      @BanjinTsuki 9 месяцев назад +2

      You are a hero. Thank you for this!

    • @RokeJulianLockhart.s13ouq
      @RokeJulianLockhart.s13ouq 9 месяцев назад +2

      I still only see a sprite tileset.

    • @refraf8030
      @refraf8030 7 месяцев назад

      I love you, this helped so much

  • @lyagushka9724
    @lyagushka9724 Год назад +13

    Really nice Video, thanks so much for making it!
    I had zero experience with gdscript whatsoever but while I was watching your tutorial I managed to make the frogs actually jump after you and while in death animation you can use them as a platform to reach higher areas. Thanks so much for the inspiration!

    • @BoredPodcaster
      @BoredPodcaster 10 месяцев назад +1

      Lol same! That, for me, is what has made me decide to use Godot from here on, because it's not terribly hard to figure out new things to add, and even debug.

  • @Kike699
    @Kike699 7 месяцев назад +10

    Never realized Godot is becoming this big. Back in summer of 2019, I took a CS Game Development course and had a month to work in a team of 4 to create a game and applying Agile/Scrum methodology. We didn’t know which game engine to choose from that suited our game but decided to go with Godot while every other team chose Unity. From what I remembered, we did an indie game and put in minimum 3 hours a day to learn Godot scripting language. I learned so much about applying CS fundamentals from Godot than any other courses I’ve took to graduate. I’m glad Godot is getting more recognition.

  • @supertron6039
    @supertron6039 5 месяцев назад +5

    Finished this course! Tweaked a couple things too as I was learning and coding alongside. There's quite a lot to learn in Godot, especially all its inbuilt methods, properties and the GDScript language. Will try to make more games to get better!

  • @Grimm-hb7ek
    @Grimm-hb7ek Год назад +2

    Awesome that my favorite game engine got featured hopefully you'll guys will release 10 hour courses too❤

  • @datboi1102
    @datboi1102 9 месяцев назад +1

    I love you so much for making this. I was having issues with the dodge the creeps tutorial and I prefer this one much more

  • @peachlingg
    @peachlingg 4 месяца назад +2

    Watching this now, and want to thank you all so much for the work put into this! I really struggle with paying attention to tutorials, and so far this is perfectly paced for me to remain focused. Thank you so much for sharing your knowledge!!

  • @christophermyers6372
    @christophermyers6372 Год назад +15

    Finally a Godot Course !! FCC strikes again.

  • @MaDoubleTV
    @MaDoubleTV 10 месяцев назад +13

    To help anyone along the way!
    I was having this issue where the "Player Detector" wasn't detecting my player at all. I found out that if you go to the frog itself, you probably have two "CollisionShape2D" so what I did was select the one NOT underneath the Player Detector, but the other one. and change the shape of the collision box, I changed it to a circle for example, and had the other one that IS underneath the Player Detector, become a rectangle. Turns out, my issue was that they were both colliding with each other and they were the same exact size. I was trying to figure this out for over 45 minutes and well, there you go. Hope that makes sense to some of you and helps some of you out! :)

    • @Camtugames
      @Camtugames 8 месяцев назад +1

      So isntead mine is over detecting and it constantly says 0 1 or -1 in output

    • @impoow
      @impoow 7 месяцев назад +1

      @@Camtugames Dude, I’m having the exact same issue, did you manage to fix it?

  • @LainWest
    @LainWest 8 месяцев назад +2

    This was an amazing tutorial, thankyou so much for making it. Took me almost 8 hours to get it all working right but I learned so much

  • @dad33r
    @dad33r 8 месяцев назад

    Great job. Good explained. Pasting was phenomenal! I loved that i didn't need to speed it up. Gave me solid overview of Godot.

  • @yayvey
    @yayvey 7 месяцев назад +7

    THE BEST tutorial so far. Actually explains every step of the way of what each function does unlike most tutorials that just make us copy their code.

  • @domthebest3173
    @domthebest3173 8 месяцев назад +5

    anyone who is confused at 13:00 why the get_tree function isnt working it is because you have to press tab after the function for it to be used by the function took me a while to figure that out

  • @martinchiasson-duguay4722
    @martinchiasson-duguay4722 5 месяцев назад +1

    Awesome video! It's pretty rare that I watch a video from the beginning to the end, and this one was very interesting and let's admit that you pointed out so many differents mechanics that we all beginners or intermediate Godot users would surely needs in so many different projects. Thanks CodingQuests! Loved it! :)

  • @ThaMentalGod2003
    @ThaMentalGod2003 4 месяца назад +2

    8:26 "so we're not gonna touch this (TouchScreenButton)" nice touch right there 😂

  • @matthewreeve4681
    @matthewreeve4681 7 месяцев назад +11

    Thanks, great video. Despite what some other comments say, I appreciate you showing that something doesn't work and then 'fixing' it. It helps separate the individual functions and provides more rationale on why each line of code is there. I think it's a good approach for providing more context and trying to teach the viewer to think critically rather than just copying.

  • @markfdesimone
    @markfdesimone 9 месяцев назад +25

    I recommend watching this at 75% speed. Terrific introduction so far! I'm not feeling intimidated at all yet :)

    • @ThatPieTheLegend
      @ThatPieTheLegend 8 месяцев назад +1

      i use 50% speed and still have to rewind

    • @smoothjamskillmoure
      @smoothjamskillmoure 6 месяцев назад +1

      Dude thanks for reminding me you can change speed, this is like trying to learn from a squirrel on coke.

    • @astrocatsoft
      @astrocatsoft 5 месяцев назад +1

      I'm watching this at 1.25.

  • @GenTink
    @GenTink 7 месяцев назад +1

    This was excellent, thank you. I actually feel like I learned stuff that I'll remember beyond the scope of this one tutorial project. I was even able to expand on this a bit, which is exciting.

  • @marcelodevasconcellos
    @marcelodevasconcellos 7 месяцев назад

    Amazing quick course! I have tried to learn a bit of Godot before but never managed to actually learn it. Your video helped me a lot! Thanks!

  • @kevinbonet7783
    @kevinbonet7783 4 месяца назад +7

    Small but hopefully helpful bug fix:
    -For some reason, the instruction around 59:00 did not work for me (frog jumping left or right)
    -instead of the line:
    var direction = (player.position - self.position).normalized()
    -I had to use the line:
    var direction = (player.global_position - self.global_position).normalized()
    -i figured it out by putting on some print statements and trying out both position and global_position.
    -Using .position always resulted in a value greater than zero, therefore the condition could not depend on if direction > 0
    -Using .global_position, resulted in positive value when approaching from the right, and negative when approaching from the left, which i believe was the intended result of the original line.

    • @ZenArcanaSpaKalamata
      @ZenArcanaSpaKalamata 3 месяца назад +1

      Thank you! I was trying to find what was wrong with the code for like half an hour because of this!!! Now it finally works correctly

    • @user-cw7yi1ew1z
      @user-cw7yi1ew1z 2 месяца назад

      dude you are a life saver thank you

    • @tmsenioropomidoro7243
      @tmsenioropomidoro7243 Месяц назад +2

      god i spent like 2 hours wanting to smash my head on the keyboard because it just didn't work, but your correction actually worked, thank you, you saved my keyboard

    • @3bears744
      @3bears744 Месяц назад +1

      oh my fing g...you have saved me :D For some reason i went to bed and everything was working perfectly. Woke up, opened godot...and my frog only went left XD
      You have saved me so much time, i was trying to rewrite this again *cries*

  • @MerriemWeebster
    @MerriemWeebster 10 месяцев назад +11

    Here after the amazing installation fee announcement from Unity

  • @3bears744
    @3bears744 Месяц назад

    Awesome tutorial! Please keep them up! You are easy to follow and straight to the point. You explain how things work well! I definitely echo the showing the mouse work bc i spent a lot of time trying to figure out where you grabbed the player path from but I can't believe how easy you make it to jump from Unity to GoDot.
    I got so far in unity i was almost up to a real game :D I was very frustrated by the current options for GD tutorials before I found yours

  • @Bitboxx
    @Bitboxx 6 месяцев назад

    Thank you so much for this course! I'm switching from Unity and went through this course day one of learning Godot today to try and get a hang of where everything is in this editor, and it has helped me a lot! Definitely going to check out CodingQuests other videos as well.

  • @kaaime
    @kaaime Год назад +35

    Null explains topics really well! I highly recommend him if you're interested in learning more about Godot and supporting a small content creator! One of the best Godot content creators for sure.

  • @gillesreyna1272
    @gillesreyna1272 Год назад +8

    Excellent course, I'm loving it. Quite fast paced so make sure you know how to rewind in youtube !

  • @EverythingCoding29
    @EverythingCoding29 3 месяца назад +2

    thank u bro. i made a "go back to main menu button" after making the play and quit buttons and bro it felt so rewarding. thx for the awesome guide btw

  • @FightWither
    @FightWither 9 месяцев назад +9

    used to use unity now im onto godot

    • @deniskhakimov
      @deniskhakimov 9 месяцев назад

      I'm here for the same reason, frens 🙏

  • @GenericInternetter
    @GenericInternetter Год назад +19

    i've been bashing my head against a brick wall in godot for days now, then suddenly this tutorial appears posted just 3 minutes ago?!
    amazing timing! thank you!

    • @CodingQuests
      @CodingQuests Год назад +3

      I hope it helps!

    • @edge3220
      @edge3220 Год назад

      Their channel GDQuest has tons of tutorials. This one here looks really cool and well put together, though.

    • @frankrobertosalascastillo4200
      @frankrobertosalascastillo4200 Год назад +1

      @@CodingQuests I subscribed to your channel. I have always wanted to learn how to use Godot. Thank you so much for the tutorial.

    • @CodingQuests
      @CodingQuests Год назад +1

      @@frankrobertosalascastillo4200 your very welcome my friend! I wish you luck in your journey to learning Godot!

    • @urdadtai
      @urdadtai 4 месяца назад

      @@CodingQuests slow down brother, you're explanations are too fast

  • @ronaldwingate2192
    @ronaldwingate2192 3 месяца назад +1

    This is exactly the crash course I needed. I always felt that I needed to know the full ins and outs of the programming language and software to become a game dev, but overloading your mind with info regarding different types of nodes at the beginning of the learning process can be discouraging. Just having the basic tools and knowledge that I need to make the basic/essential features of a game has put me in a place where I can explore Godot's features while naturally following my curiosity and creativity. Thanks!

  • @8nfinityXP
    @8nfinityXP 8 месяцев назад

    So glad I came across your channel thanks for what you've been doing!

  • @shayaharon5015
    @shayaharon5015 10 месяцев назад +40

    Who else is here because of unity's pricing changes?

  • @fraterlaxatvincula
    @fraterlaxatvincula 10 месяцев назад +13

    Bet this video is getting alot more views now.

    • @MobileDecay
      @MobileDecay 10 месяцев назад

      I'm not even a dev and I'm watching it. I hope Unity burns! 😡

    • @ngocson2486
      @ngocson2486 10 месяцев назад

      true

  • @darchankaen1307
    @darchankaen1307 Год назад +2

    This is AWESOME. Thanks!

  • @wolfindragonsclothing
    @wolfindragonsclothing 6 месяцев назад +1

    Started recently and playing this for the pass couple of days and got through it. Your an amazing teacher.
    Deserved all the replayed watched times I gave it 😂😂

  • @sammyomrani268
    @sammyomrani268 11 месяцев назад +15

    "theres actually a better way to animate so we are going to delete all this"
    me- *DEEP BREATH*

  • @jenssolesen6592
    @jenssolesen6592 9 месяцев назад +8

    If you get hundreds of errors after importing the Sunny assets, you can fix that by deleting the __MACOSX folder in each of the 4 files. That fixed it for me atleast

  • @vkronik
    @vkronik Год назад

    thats what i was waiting for it! thanks.

  • @antoinedupont3284
    @antoinedupont3284 3 месяца назад +1

    The most straight forward guide I've seen
    After 50 minutes of the video, I already made a level on my game (after struggling for 3 hours on my side to understand what he's doing and how)
    I tried learning from other videos before this one but it led nowhere, too much theory

  • @lucaffo99
    @lucaffo99 10 месяцев назад +18

    Here for new Unity fees 🖖

  • @BaconEggsRL
    @BaconEggsRL 10 месяцев назад +17

    Finished the tutorial! Great job, very helpful. One thing I was confused on though was the animations, it seems like there are several methods of animation (AnimationSprite2D, AnimationPlayer, AnimationTree) but it was never really explained why use one over the other. Thanks!

    • @RichRBLX
      @RichRBLX 8 месяцев назад +6

      in the tutorial he mentions he's going to go other both animationplayer and animationtree, yet he never does.

    • @CT2507
      @CT2507 4 месяца назад

      Yea, that part made me angry! He makes it too confusing. Also he doesn't explain why make those key frames at all when the sprite sheet comes with animated sprites? Is it because he wants to be able to control the animations after with code? The animation part was unnecessarily complex and frustrating.

  • @DomTheTev
    @DomTheTev 6 месяцев назад

    It's been crazy since I watched this video. Just wanted to say thanks because this video helped propel me to where I am now in game development. Thanks! :D

  • @eagleblast
    @eagleblast 11 месяцев назад

    probably the best clear exmplanation thank u so much champ !

  • @ChrisAirsoft556
    @ChrisAirsoft556 7 месяцев назад +3

    36:00, resuming tomorrow. This has been great so far, tysm

  •  Год назад +26

    Thanks for a very good tutorial. Nice progression, and I also enjoy the small mistakes left in, so that you see how things work out in real life, and how to figure out what went wrong :)

  • @GabrielTobing
    @GabrielTobing 5 месяцев назад +2

    Godot is so beginner friendly im crying man
    im so happy to find something that i can actually understand and it doesn't just bombard me with so much stuff

  • @alexmcgreal836
    @alexmcgreal836 6 месяцев назад

    This was so useful and very well put together, i will be checking out your other stuff for sure!!
    the Dokimon tutorial looks like it has some awesome stuff in it, thanks so much for this, as someone who is just now picking Gadot up with zero experience it's invaluable knowledge!! 😄👍

  • @juanmiguelroman2701
    @juanmiguelroman2701 Год назад +37

    To anyone having trouble about the frog going the wrong way, ensure that the CharacterBody2D is flushed with the CollisionShape2D, AnimatedSprite etc. What happened to me was that the CharacterBody2D was misaligned causing the player.position to be wrong making the frog go the wrong direction. Hope this helps!

    • @TheZachtobie
      @TheZachtobie 9 месяцев назад

      You just saved me a lot of headache

    • @xeno_.33
      @xeno_.33 9 месяцев назад +1

      i have the same problem, but i don t know how to solve it..

    • @xeno_.33
      @xeno_.33 9 месяцев назад +4

      what do you mean with "misaligned"

    • @beansRage
      @beansRage 7 месяцев назад +1

      I also ran into an issue where not matter how I set the script up for Frog.gd I could not get the frog to flip left. I just swapped the true false values, ran and swapped back to original format and worked for me!

    • @leynieraragon9417
      @leynieraragon9417 7 месяцев назад

      Did you get it to work?
      @@xeno_.33

  • @birdoflames329
    @birdoflames329 8 месяцев назад +5

    at 1:04:06 you can use frame duration which makes a frame last for longer (if you wanted to add 8 frames you would put 8 in the frame duration, for example)

  • @WillItTattoo
    @WillItTattoo 9 месяцев назад

    Thank you for making this tutorial! Helps me out in my coding journey!

  • @alexandrucernea6462
    @alexandrucernea6462 8 месяцев назад +1

    the best tutorial for beginners. thanks, now i know the basics and can start my dev journey

  • @julienb5815
    @julienb5815 Год назад +22

    31:24 I don't really get why we had to use AnimationPlayer to fix the jump and fall part, it can be done just as well by removing the fall frame from the "Jump" animation in the AnimatedSprite2D, and creating a new "Fall" animation with that fall frame in it.
    I mean, I get that AnimationPlayer provides more flexibility, but in the context of this tutorial I don't see the use for it.
    Also at 31:50 you mention that you prefer AnimationTree but you'll start with AnimationPlayer and transition to AnimationTree later, but eventually AnimationTree just vanishes into thin air at 37:05. Confusing

    • @skpcboy
      @skpcboy 11 месяцев назад

      real

    • @kyuos
      @kyuos 11 месяцев назад +2

      its because a Crash CURSE not a Course

    • @mikicerise6250
      @mikicerise6250 6 месяцев назад +3

      Yeah it wasn't needed for what he said it was, he ended up fixing it in a different way (with a gajillion conditional if statements hammering away every frame ;)). Anyway that entire way of doing things was just hideously sloppy and unmaintainable, and I ended up refactoring the whole thing to make the Player into a state machine instead because, even if Godot tolerates it, I just do not like the idea of clobbering the Play method 600 times a second telling it to play the same animation it's already playing. It does hammer in an important point about Play, which is that it does not restart animations that are already playing (if it did, his code would not work). It'd be a better video if he explicitly explained that, though. You can kind of follow along and see where he's fudging things if you have prior experience, but for an absolute beginner who is taking his word as gospel, there are some inaccuracies in there.

  • @DanielScutt-nq6ky
    @DanielScutt-nq6ky 8 месяцев назад +21

    58:00 - With my code being identical, I was getting an output of "Left" regardless of which side I approached the frog. I printed off the player position and frog position and found that the player position was always the same whether I came from the left or the right. I'm getting Godot as a flatpak so maybe there's some issue there.
    What I did to fix this was to use 'body' instead of 'player', since we already have that information passed in to the function. No need to instance more information. Then I used body.global_position rather than body.position @thepie's comment here on the video. However, I did not invert the frog's position.
    ex:
    var direction = (body.global_position - self.position).normalized()

    • @pradyutghosh7909
      @pradyutghosh7909 8 месяцев назад +2

      You just saved my life man, I was going nuts over this

    • @llamamanguy
      @llamamanguy 8 месяцев назад

      Line 17:Identifier "body" not declared in the current scope.

    • @llamamanguy
      @llamamanguy 8 месяцев назад +6

      fixed with: var direction = (player.global_position - self.global_position).normalized()

    • @Rorshacked
      @Rorshacked 8 месяцев назад +1

      Exactly what I was looking for; I just about gave up and figured that one day I will learn how to make enemies chase the player in two directions, but then I saw your comment. Thanks for this! Worked like a charm

    • @joshua4785
      @joshua4785 7 месяцев назад

      THANK U BRUHHH LIKE AHHHCCKKKK

  • @wooshylooshy
    @wooshylooshy 9 месяцев назад

    set up my 1st project in c#! this was a great base for getting it done thanks man

  • @reasonforsmth8727
    @reasonforsmth8727 11 месяцев назад +2

    Mate, thanks a lot, that was a tough journey, but inspirational one

  • @BaconEggsRL
    @BaconEggsRL 10 месяцев назад +16

    at 59:53 for the direction I had some trouble getting this to work. turns out when you create the parent node2D for mobs and player you should lock those at (0,0) to keep them from moving. Otherwise you might do what I did and accidently move the reference point for one and not the other. Hope that helps

    • @eliseolara5055
      @eliseolara5055 10 месяцев назад

      We’re you able to get the frog to drop/react to gravity? For some reason nothing seems to be working with the frog even through my code is written correctly, at least I think it is

    • @BaconEggsRL
      @BaconEggsRL 10 месяцев назад

      @@eliseolara5055 should be same code as player for gravity iirc

    • @kirilrusanov9195
      @kirilrusanov9195 9 месяцев назад

      thanks pal!

    • @davidmunoz6897
      @davidmunoz6897 9 месяцев назад

      I'm having trouble with direction. The mobs detects the player always to the right with no regards for its position. "With lock those at (0,0)" What did you mean? The position?

    • @rkdehddus
      @rkdehddus 9 месяцев назад

      @@davidmunoz6897 For the Frog's parent node "Mobs", go to the section "transform" and set its Position value to (0, 0).

  • @CT2507
    @CT2507 4 месяца назад +3

    Very nice tutorial. I like you dont explain too much but go straight to the point.
    A little suggestion. Please use a click sound whenever you click somewhere with your mouse. You move and talk so fast that sometimes its not clear if you clicked or just hovered your mouse. Also a mouse highlight would be nice for the same reasons.

    • @CodingQuests
      @CodingQuests 4 месяца назад

      I agree! thanks for these tips!

  • @BazookaLuca
    @BazookaLuca 6 месяцев назад

    Thank you so much for this tutorial it has helped me lots to get back into game development after the whole Unity fiasco!
    Just starting out with game development and Unity was really demotivating when that happened so this tutorial ended a long hiatus

  • @rerere1569
    @rerere1569 3 месяца назад

    damn really cool tutorial, easy to follow(esp if you have coding background), sometimes have to pause to figure out things, but still very nice!
    thanks a lot CodingQuests

  • @dannytoons
    @dannytoons 10 месяцев назад +10

    Thank you Steve Jobs, now I can leave Unity

    • @matthewprince6157
      @matthewprince6157 9 месяцев назад +1

      ?

    • @dannytoons
      @dannytoons 9 месяцев назад +1

      @@matthewprince6157the guy in the beginning looks like steve jobs, and unity is screwing game developers

  • @alexkramerblogs
    @alexkramerblogs 10 месяцев назад +6

    Jumping onto this video, for no reason 👀

  • @leavesareflowers4539
    @leavesareflowers4539 Месяц назад

    Beginning on my game dev journey, thanks for the amazing tutorial! :)

  • @DRUYD
    @DRUYD 6 месяцев назад

    Fantastic quick intro course, thank you for this

  • @AhLottaAntwan
    @AhLottaAntwan 10 месяцев назад +20

    Who’s here after the Unity announcement?

  • @spicemasterii6775
    @spicemasterii6775 Год назад +13

    I was waiting for Godot.
    Thank you.

    • @FlowerBot
      @FlowerBot 9 месяцев назад +2

      I see what you did there, if only the young'ns would pronounce it properly :D

  • @theloa7154
    @theloa7154 8 месяцев назад

    thank you. I managed to make this in an evening after work. I have a lot to learn but this helped a whole lot.

  • @b.c.a683
    @b.c.a683 3 месяца назад

    wow , without any struggle all worked for godot 4.2. Amazing content please keep continue !

  • @Aaron-mj9ie
    @Aaron-mj9ie 11 месяцев назад +13

    This guy does an incredible job explaining everything, I give this a 9.5/10 as far as tutorials go. However, one of the things that's really hard to convey through a tutorial is mouse movement and control input. This guy fidgets way too much, quickly clicks between things while he's explaining stuff, and goes over huge swaths of material in just a brief instant that means I have to pause, rewind, and replay a lot of moments throughout. OTHER THAN THAT, this was a great tutorial!

    • @denisl9661
      @denisl9661 9 месяцев назад +2

      yeah, as a learning experience it's bad. I don't get the upvotes

    • @Tobsson
      @Tobsson 9 месяцев назад +1

      @@denisl9661 it's a crash course to get you familiar with Godot. Not an indepth course. This is something for someone who already has some knowledge in the subject (not godot, but programming or working with anything similar) and just want something to go of from before reading the documentation.
      Take it for what it is. You won't learn every detail in a 2 hour video. Having that expectation is just unreal.

    • @denisl9661
      @denisl9661 9 месяцев назад +3

      @@Tobsson it literally says "for beginners" in the title. I've been programming 10+ years and didn't like this tutorial. Chris tutorials has a better one for example, although shorter.

    • @GenTink
      @GenTink 7 месяцев назад

      @@denisl9661 because different people learn differently. I'm watching at 1.25 and while I do pause and rewind occasionally, overall I'm following it. It works for me, so I "liked" it. ¯\_(ツ)_/¯

    • @ChatTheChad
      @ChatTheChad 5 месяцев назад

      @@GenTink I find it very hard to believe that you just download Godot, looking at it for the first time, and you are playing it at 1.25 and keeping up just find.
      I'll admit I'm completely new to game dev, but I have done all of the unity courses and now looking at Godot, I type extremely quickly and I couldn't keep up. There's no way to watch what he is doing FASTER THAN REAL TIME and still keep up.

  • @kasperchristensen8416
    @kasperchristensen8416 9 месяцев назад +6

    Thanks for taking the time to makes this tutorial. Much appreciated. However, as more than one comment below has pointed out, it wouldn't hurt if you slowed down a notch 🙂 I don't know if you're suffering from ADHD or if you're just an unusually energetic person, but it is in fact quite difficult to follow along your video as a newcomer; especially when you are clicking buttons and jumping around the program without informing the viewer about what you are doing 😉

    • @jacobpage8028
      @jacobpage8028 9 месяцев назад +1

      You can put it on 0.75 speed if you need or go back if you miss anything.

  • @JL-ez2gv
    @JL-ez2gv 6 месяцев назад

    Thanks FCC and thanks again Omar for this course, I already have learned how to create a Tower Defence game in the Omar's channel and I have learn a lot.

  • @ghosterntt7183
    @ghosterntt7183 5 месяцев назад

    This is an awesome course!!!!
    I love it!!!
    Thank you so much for creating this video!!!!!!

  • @user-ge9gr8gl8e
    @user-ge9gr8gl8e 11 месяцев назад +7

    Thank you so much for your tutorial and it has been greatly helpful. The only question I have it's that, when you are instantiating "Cherry", why did you get "@Cherry@3" but I got "@Area 2D@3". I want the Cherry version, too. I changed and check my configurations mutilple times and even try created new one. All of them get the names similar to "@Area 2D@3", "CharacterBody2D@3“ etc... Always the underlying class name instead of the name I created. Did Godot updated their naming conventions? I know we can solve this by add_child(cherryTemp, true) tho, still curious....

  • @RangoAnimations
    @RangoAnimations 9 месяцев назад +5

    1:10:02
    I think i might be doing something wrong since when I enter the code, I get an error
    "The parameter "delta" is never used in the function "_process()". If this is intended, prefix it with an underscore: "_delta" and "Invalid get index 'health' (on base: 'Node2D')."
    I'm very confused since I put
    var health = 10 in player

    • @Luna-ip4ri
      @Luna-ip4ri 6 месяцев назад

      Did you manage to fix this

    • @MetaDataAutomation
      @MetaDataAutomation 5 месяцев назад

      How's you go with this?

    • @MetaDataAutomation
      @MetaDataAutomation 5 месяцев назад +1

      @@Luna-ip4ri Did you maange to work it out? Sucks coming so far and having the thing crash every time now ...

    • @Luna-ip4ri
      @Luna-ip4ri 5 месяцев назад +1

      @@MetaDataAutomation yes I forgot to do caps in player

  • @ShaolinMonkster
    @ShaolinMonkster 11 месяцев назад

    thank you for the course!

  • @stoufa
    @stoufa 6 месяцев назад

    great course! thanks for sharing! 🎮😄

  • @asliceofgreen6155
    @asliceofgreen6155 9 месяцев назад +5

    the assest pack your using is broken now, i used another few sources and i cannot for the love of me get my background to move when pressing play is it a dimention issue when i mirror there is no duplication on my screen

    • @Topeydopey
      @Topeydopey 9 месяцев назад

      nope buddy, its not broken, the author just compacted it as a spritesheets and at 21:03 he shows you how to import the spritesheet in question. Your background not moving could be a code issue / you put the script on a node it's not supposed to be.