Your First 2D GAME From Zero with GODOT 4! **Vampire Survivor Style**

🖪↷PROJECT FILES: gdquest.com/tutorial/godot/2d...
▶︎ GODOT 4 COURSES: school.gdquest.com/godot-4-ea...
Preorder Below Launch Price for a Limited Time Only.
🎓 FREE APP to Learn GDScript From Zero: www.gdquest.com
🎮 FREE INTERACTIVE TOUR - The Godot Editor - www.gdquest.com/tutorial/godo...
🗨 GDQUEST DISCORD COMMUNITY: / discord
------------------------
🖈 CHAPTERS
------------------------
0:00:00 About Roguelite Shoot'em ups/Survivor-likes and Godot
0:01:11 Find the Easter Eggs!!
0:02:05 Word of Advice
0:02:37 Download & Set up the Project
0:04:06 Quick Tour of the Editor
0:05:05 Create the Character
0:10:45 Add Movement to the Character
0:32:55 Create a Game Scene and Add the Character
0:34:01 Add Game Environment and Collisions
0:46:10 Add Mobs that Follow the Player
0:59:20 Make the View Follow the Player
1:04:04 Give a Weapon to the Character
1:08:08 Make the Gun Detect Aim at Enemies
1:14:58 Add Projectiles to the Weapon
1:24:45 Make the Bullets Damage the Enemy
1:28:05 Set up Shooting Mechanics
1:36:47 Add Health and Hurt Animations to Mobs
1:42:38 Add Health Management to Player
1:56:24 Randomly Spawn Mobs
2:06:00 Add Game Over Screen
2:12:17 Congratulations - Add up the Hidden Coupons
--------------------------------
CC-BY 4.0 LICENSE
--------------------------------
Video: creativecommons.org/licenses/...
Attribute To: "CC-By 4.0 - GDQuest and contributors - www.gdquest.com/"
Demo assets: CC by 4.0- "CC-By 4.0 - GDQuest and contributors - www.gdquest.com/"
Demo code: MIT - "Copyright 2023 GDQuest" + MIT license text from opensource.org/license/mit/
#gamedev #godot #tutorial

Пікірлер: 900

  • @seanolson6958
    @seanolson69585 ай бұрын

    For anyone else that encounters mobs sticking to the player when they collide from above, be sure to disable all moving platform layers of the `CharacterBody2D` nodes. In the Inspector panel of the `CharacterBody2D` nodes for both the player and mob, expand `CharacterBody2D` > `Moving Platform` and disable all layers in `Floor Layers`.

  • @balas2cents

    @balas2cents

    5 ай бұрын

    Thanks for this fix.

  • @Gdquest

    @Gdquest

    5 ай бұрын

    @seanolson6958 Thanks for contributing and being around.

  • @miadietrich7347

    @miadietrich7347

    5 ай бұрын

    This worked, thanks! What's the explanation for why this worked, though?

  • @Gdquest

    @Gdquest

    5 ай бұрын

    What triggered this behavior is that by default, Godot 4 has calculations to detect moving platforms, for side-scrolling games. So if a character is on top of a moving platform, it'll move the character with the platform. In this case, when the slime walks above the Player Character, Godot thinks that the Player is a platform and the Slime is on top of it so it moves the Slime with the Player Character. Ideally, in Godot, the "Moving Platform" should not be on by default because it doesn't make much sense outside of platformers. Thanks @seanolson6958 for sharing the fix with everyone. I'll try to add a caption for it in the video.

  • @miadietrich7347

    @miadietrich7347

    5 ай бұрын

    @@Gdquest This makes perfect sense, thank you for the explanation!

  • @PixelBladeStudios
    @PixelBladeStudios3 ай бұрын

    Finally a tutorial that covers the "why" and not just the "what". Well paced, clearly explained and properly sized to make it digestible. Thoroughly enjoyed making this Vampire Survivor. GDQuest is my go-to place for all things Godot!!

  • @Gdquest

    @Gdquest

    3 ай бұрын

    So rewarding to read that. Thank you.

  • @sameeryachouh9097

    @sameeryachouh9097

    3 ай бұрын

    @@Gdquest I second that! The explanations you gave for everything that we typed were awesome. It helps so much when you explain the syntax and the logic behind the programming!

  • @mikk.t.7824

    @mikk.t.7824

    2 ай бұрын

    "Science isnt about what, its about why." Quote i made inspired by Cave Johnson

  • @diegoandradex12
    @diegoandradex123 ай бұрын

    This was one of the best videos on the channel. Here are some questions about how we could improve the game, like Brotato style, I mean how we could start these: 1 - How to add a wave system? 2 - How to add upgrade items? 3 - How to make enemies drop coins to buy items? 4 - How to make trees breakable and drop items? 5 - How to make a home screen, with settings and character selection? 6 - Create character properties and update as items are picked up?

  • @natecooper01

    @natecooper01

    3 ай бұрын

    This was a tutorial, these are good follow on questions that I'm looking forward to learning more about as well. I'd add: 1 - How to add multiple enemy types and randomly spawn them 2 - How to add multiple items/weapons and randomly spawn them 3 - How to add item tiers, e.g., normal, rare, legendary

  • @real_rob251

    @real_rob251

    3 ай бұрын

    Will you cover these at some point?

  • @kaus05

    @kaus05

    3 ай бұрын

    ​@@real_rob251 nah bro go ahead and find them on your own itll be more fun

  • @Deathzuki.

    @Deathzuki.

    17 күн бұрын

    yeah please do these things it will help a lot of people including me GDQuest!!

  • @Deathzuki.

    @Deathzuki.

    17 күн бұрын

    yeah please do these things it will help a lot of people including me GDQuest!!

  • @BinaryBolias
    @BinaryBolias5 ай бұрын

    A few notes, _generally pertaining to optimizing this project,_ based on my personal preference: *-* References to existing objects, such as _"HappyBoo"_ for the player character, can instead be done via an _@export_ variable to allow for greater versatility; if the node changes location in the scene tree, for instance _(even without a unique name),_ Godot will automatically update corresponding _@export_ variable entries. *(@export var happy_boo: Node2D)* This also makes changing the referenced object easy, and not require an update to the script. *-* Function calls pertaining to animation, such as the player character's, can be done from _func _process()_ rather than _func _physics_process()_ for efficiency, as the latter tends to be run more often, so purely visual effects would generally be better handled within _func _process()._ *-* It may be desirable to use a static variable for the enemy's reference to the player character, though I rather use a normal variable I named "target_node" _(instead of "player"),_ which I could change on a per-enemy basis to define arbitrary locations for each enemy to travel towards, which I can use to give enemies more interesting behavior. Enemies could, for instance, randomly decide to travel to nearby trees, or other nearby enemies, or could additionally have behavior for moving away from the target, and thus randomly travel away from a nearby enemy or tree instead. *-* _@export_ variables may be good to have for packed scenes as well, such as the gun's bullet scene. *(@export var bullet: PackedScene)* Godot will handle updating the scene reference when the file path is changed from within the Godot editor. *-* Instead of setting both the _global_position_ and _global_rotation_ of a newly spawned bullet individually, the _global_transform_ value (which includes rotation and position) can be copied from the gun to set _position_ and _rotation_ at the same time. *-* An excuse to introduce the functionality of _Path2D_ and _PathFollow2D_ is nice, but I prefer to use a bit of math and get a proper circular border to spawn enemies on. What I did was create a new "CreepSpawner" scene inheriting from _Node2D,_ and with a single _Timer_ child node to handle spawn timing. The _CreepSpawner_ has an export variable for what kind of enemy it spawns _(multiple enemy types could hypothetically just be done with multiple spawners),_ and another export variable for its desired spawn radius. When its timer elapses, it chooses a random angle with _randf_range(0.0, TAU),_ then turns that angle _(spawn_angle)_ into a position based on radius _(spawn_radius)_ with _Vector2(spawn_radius, 0.0).rotated(spawn_angle)._ I can then just have the _CreepSpawner_ be a child of the player character; a new enemy has its _global_position_ set to the spawner's _global_position_ plus the randomly chosen position. It might sound like a lot, but it's basically just two extra lines of code in the enemy spawning function, rather than dealing with any _Path2D_ node. Using a wide, rectangular path as shown in the video produces uneven spawns, as most of the path is angularly concentrated toward the top and bottom and corners; a square would be less bad, a regular hexagon less still, but a circle is perfect. Side-note: My function to choose an angle does happen to be minutely biased to the angle of 0, as TAU radians is equal to 0 radians, but it's impossible to observe in practice. *-* The "Motion Mode" of player character and enemies should be set to "Floating".

  • @Craulback

    @Craulback

    5 ай бұрын

    Very helpful, thanks! Although func _physics_process is synced to the "physics ticks per second" you set in project settings (default 60), and func _process is run as fast as possible on every rendered frame.

  • @alejmc

    @alejmc

    4 ай бұрын

    As a totally newcomer explorer to all things Godot, this post is amazing as it answers many questions I had. I was feeling very uneasy with too many ‘preload’ and ‘nodes’ string based lookups… as it seems that any change: the hierarchy or renaming the nodes would create problems right away. There was still that ‘has_method’ one though, will see about that later.r Don’t get me wrong, this tutorial has been great, I even like the Path2D idea as it gives artistic freedom to any designer to create crazy spawn paths if need be; but there are definitely so many things I would like to know more about… GDScript seems to work perfectly with the existing built-in functionality but will have to dive deeper into more custom tailor made things. Is it easy to make a pool that reuses bullets? Do we have to or in Godot is fine without them (as it’s reference counted)? Using a full IDE like Rider? Etc

  • @BinaryBolias

    @BinaryBolias

    4 ай бұрын

    @@alejmc For a bullet pool, the bullet-firing weapon could be provided with its "pool" of bullets _(as child nodes)_ on startup, with each of these bullets able to be "active" or "inactive". Instead of instantiating a new bullet each time one is to be fired, the weapon would need to find one of its inactive bullets to activate and shoot, with each bullet merely deactivating itself instead of freeing itself from memory upon hit or age-death. Maybe the weapon could simply have an integer variable for which index value (of its child array) to be looking for an inactive bullet at, and increment this value by 1 whenever it sucessfully fires a bullet or notices the corresponding bullet at the index is already active. *Alternatively **_(likely a lot better),_* the fired bullets could send signals to their corresponding weapon when they deactivate, and the weapon could have an internal array of unfired bullets. _The signal sent would include a reference to the bullet node itself._ In this case, the gun would fire the last element of this array _(removing from and adding to end or arrays is most optimal),_ thus activating the bullet and removing it from the array, and any bullet which sends its deactivation signal to the weapon gets added back to the end of the array. The weapon can thus only fire if the size of this "inventory" (or "bullet clip/magazine") array is nonzero. This system minimizes the instantiation and deletion of objects, which could be quite nice for performance, but it _of course_ introduces stricter limitations on how many bullets can be active at once. I think such limitations could be an elegant aspect of design, especially if incorporated diagetically, such as, _in this case,_ with a gun which isn't resupplied from external sources, but rather has limited ammunition which (magically?) travels back to the gun after having been fired, or perhaps instead a magic staff which must continuously provide energy to all active projectiles, and thus has a limit to the quantity of them which are simultaneously active. Otherwise, Godot seems to have nice garbage management systems. Anything inheriting from _RefCounted_ is automatically cleaned up when no longer referenced, and the _queue_free()_ function is generally a good option for nodes and such. *The online documentation with extra information and tutorials can be found at docs.godotengine.org* Bonus idea: Enemies with enemy spawners as children. Maybe enemies can create _(temporary)_ paths as they walk, which additional enemies may spawn from.

  • @alejmc

    @alejmc

    4 ай бұрын

    @@BinaryBolias that’s quite a complete take on pools! Thanks! Could call for a generic pool management, maybe even Godot internal for all things pooling. In a full production environment I think I would go for enemies, bullets, VFX, etc to be as such.

  • @Gdquest

    @Gdquest

    4 ай бұрын

    I hope you stick around. Some of the choices made in the tutorial were deliberately aimed at simplifying the cognitive load but many of your observations lend themselves to an excellent second iteration. Thanks for posting them.

  • @FilenameNULL415
    @FilenameNULL4155 ай бұрын

    I really like the Godot Engine. This tutorial really helps for a lot of begginers. You're making a good job!

  • @Gdquest

    @Gdquest

    4 ай бұрын

    So glad it works well :)

  • @kosotoru2321
    @kosotoru23215 ай бұрын

    This is huge, I picked up Godot a few days ago and watched a bit of a different tutorial but never actually made any progress because of how overwhelmed I felt. Today I decided to give it another chance and you guys upload this. Thanks!

  • @awfyboy
    @awfyboy5 ай бұрын

    The use of path2d to spawn mobs was very smart! Great tutorial. I've been using Godot for 3 years and have even finished a game, and yet I've learned a lot of new techniques from this video.

  • @Gdquest

    @Gdquest

    5 ай бұрын

    That's really very nice to read. It's exactly the balance I was hoping for the tutorial between being accessibile to beginners but still useful to experienced devs. Thanks a lot.

  • @yeiskelcisneros2298
    @yeiskelcisneros22985 ай бұрын

    This was such a great start in game development. I was looking for an updated tutorial and a Vampire Survivor style project was an amazing idea. Thanks!

  • @Toon_Pirate
    @Toon_Pirate3 ай бұрын

    Truly one of the best tutorials I've ever followed. I usually give up after 30 minutes due to bad or confusing directions and getting stuck, but I had no problem following along with this one all the way through. And I'm really happy with the results that's given me a good foundation to build upon!

  • @BonnieMallet
    @BonnieMallet5 ай бұрын

    Just want to confirm this is a great tutorial and worth the time. It is split up into sensible chunks, so you don't need to watch the whole thing in one go and can easily go back and review. The author is obviously experienced at teaching and I felt there was has high empathy toward the student (compared to some other tutorials out there). It can be daunting learning a new complex UI with a plethora of options, but GDQuest does a really great job of making sure you understand what he is doing and why. So all in all... Great tutorial! I agree with the others, definitely something fun you can do on a lazy Sunday afternoon! Super fun! Thanks GDQuest! Great job... PS: I also had to do two runs of the vids! I missed the 'Easter Eggs' on the first run because they pop up real fast and I was poking around in Godot! So pay close attention! There is a little 'whistle' when they pop, so if you hear one of those - make sure you are looking at the tutorial, not you Godot editor!

  • @stevenrivera6464

    @stevenrivera6464

    4 ай бұрын

    I'm glad I'm not the only one this has happened to! I've counted 3 coupons, is that right?

  • @BonnieMallet

    @BonnieMallet

    4 ай бұрын

    @@stevenrivera6464 - I had to go look at my notes... but it looks like there are 4. At least that appears the case when I did it.

  • @stevenrivera6464

    @stevenrivera6464

    4 ай бұрын

    @@BonnieMallet - ah, thanks for that!

  • @aydnsafi2054

    @aydnsafi2054

    Ай бұрын

    what are those coupons? for discount?

  • @BonnieMallet

    @BonnieMallet

    Ай бұрын

    @@aydnsafi2054 - -It was, however I think they no longer apply. I believe they have expired and are no longer valid.- Edit: Looks like I was wrong! See below. Maybe is the best option is to just collect 'em and have a go! Still worth looking at the tutorial though! It is a corker.

  • @ItsUnderMotion
    @ItsUnderMotion5 ай бұрын

    I just subscribed yesterday after going through your Godot 2021 series for a few days and successfully making the Dodge the Creeps game, and this is the first new video I see on my feed. Best surprise ever! Thank you for making Godot so accessible to aspiring game devs!

  • @HistoryUnveiled310
    @HistoryUnveiled3105 ай бұрын

    Thank you so much for this amazing video. Was waiting for a Godot 4.0 tutorial for so long. Great job by you guys and Nathan especially.

  • @felipecorrea6472
    @felipecorrea64725 ай бұрын

    I started learning Godot this week and a vampire survivor like was first little project I wanted to do, I searched for a tutorial literally the day before yesterday, thank you guys

  • @potinhuu
    @potinhuu5 ай бұрын

    This is the best tutorial that i've seen so far. even moderate devs can learn much on this one ! this is GOLD. i'll share with every dev i see

  • @KnochenMarkSaege
    @KnochenMarkSaege4 ай бұрын

    This is one of the best tutorials for development I've ever seen. Thank you so much for all your content & the app to get started with GDScript. Also, explaining all these shortcuts when you need them is a blessing on it's own. It feels so intuitive to use the Godot engine :D

  • @miadietrich7347
    @miadietrich73475 ай бұрын

    I went from launching Godot for the first time to completing this tutorial in just a few hours! This is really exciting, and so much more accessible than my attempts with Unity. I also found all the easter eggs, what a clever way to earn discounts. I applied them all, and have preordered the courses for next year. :) It's clear you're all very passionate about how to teach in the most effective ways. I'm really impressed, and looking forward to the rest of this journey. Thank you!

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Thanks a lot for taking the time to write this. It's a refreshing coffee break in the middle of burning the midnight oil.

  • @CaptainDouchie

    @CaptainDouchie

    5 ай бұрын

    whats the easter eggs if u dont mind sharing xD, im trying to purchase the course as a gift for my friend who will be studying game dev next year

  • @forestgames03

    @forestgames03

    5 ай бұрын

    ​@@CaptainDouchie he asked not to share it + to watch the video if you want it

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Thank you for respecting that :) The intention is not to prevent anyone from getting the coupons. It's to encourage everyone to compete the tutorial.

  • @Xonides

    @Xonides

    4 ай бұрын

    @@Gdquest I can assure you that folks like myself will watch it twice simply because we missed the coupons. I didn't realize until over halfway through the video that the whistling was supposed to be a cue to look for the code. I thought it was my roommate trying to distract me or an ad on one of my other windows.

  • @-Kailinn-
    @-Kailinn-5 ай бұрын

    You did a great job making this really engaging, I didn't intend to get through so much since I go back to work tomorrow after a 2 week break. I started and the time went so fast I didn't realise I was close to done already. Thank you.

  • @xelonix_
    @xelonix_5 ай бұрын

    Great job as always! I will be learning this during the holidays!

  • @arnaudmulton3161
    @arnaudmulton316114 күн бұрын

    There are many godot tutorials on youtube and how-tos but none so finely detailed and as clear as yours, you got a new subscriber. Very high quality video

  • @persononyoutube3000
    @persononyoutube30005 ай бұрын

    This is really great. As a programmer that's used Unity casually in the past, I've taken a few half-hearted stabs at Godot in the past and never really understood the "scenes and nodes" paradigm. A hands-on project format like this really helped. Now I feel like I have a pretty solid foundation of Godot and can continue on from here. Thanks for this.

  • @kazabon_
    @kazabon_5 ай бұрын

    I want to thank you and the team for all the time and effort you put into these videos and content, it feels so goo to create the first project on the journey of Game Development! Rivers of Gratitude

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Thank you for writing. It feels nicer to work knowing people enjoy what we make.

  • @hithisisandreas
    @hithisisandreas5 ай бұрын

    Wow, this was super fun and really empowering! I can't wait to apply this to a solo project! Thanks GDQuest! ❤

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Thanks a lot for writing this. I hope you showcase your project in the Discord server. It's always nice to see where gamdevs start and what they end up making over time.

  • @dingus4138
    @dingus41385 ай бұрын

    What crazy timing, I just picked up Godot a few days ago and have been building a VS like game and was running into some issues and then this video gets released today! Looking forward to going through this, thanks!

  • @carlmeyer96
    @carlmeyer96Ай бұрын

    This is such a great tutorial. Thank you so much! As someone that does programming full time this hits the sweet spot between explaining enough learn godot but not spending too much time explaining the basics. I have really enjoyed following along and looking forward to expanding the project using my own sprites!

  • @kalgorian
    @kalgorian4 ай бұрын

    Thy for the Video. I'm 50 plus and just started to learn this kind of stuff. Great tutorial for beginners. Looking forward fore more.

  • @Gdquest

    @Gdquest

    4 ай бұрын

    Awesome! I hope you have a lot of fun with making your own projects. You're welcome to join our Discord server and share whatever you make. Some people are extremely helpful with feedback and sharing what they learn. You can find the invite in the description.

  • @betadyne9559
    @betadyne95595 ай бұрын

    Such a good job you guys are doing ! It's been almost a year since I started thanks to the similar video you released in Godot 3.5 that really helped me make things click ! I reached a level now where I think I should be the one doing tutorials on some advanced code structures !

  • @Gdquest

    @Gdquest

    5 ай бұрын

    So heartwarming to read that!

  • @speedylom1170
    @speedylom11703 ай бұрын

    This is an amazing tutorial! I learnt a lot of ways to do things simply via existing Godot systems that I just didn't know were there. Thank you so much for taking the time to create this 😁

  • @Jell0yee
    @Jell0yeeАй бұрын

    This is the best godot tutorial I’ve seen! I like that it shows what to do and why to do it and sadly lots of other tutorials don’t do this

  • @Lansamatv
    @Lansamatv5 ай бұрын

    Please continue uploading tutorials like this, also board games like billiards and chess and implement multiplayer in the games, thank you very much ❤

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Thanks for the suggestions :)

  • @rockyhitcha9604
    @rockyhitcha96045 ай бұрын

    1:31:44 Hi, I noticed a small tweak that might help. Try swapping these two lines of code: %ShootingPoint.add_child(new_bullet) new_bullet.global_position = %ShootingPoint.global_position This should give us the effect we’re looking for. Keep up the great work!

  • @kristianlovealot

    @kristianlovealot

    4 ай бұрын

    I had an error here ... Found out my mistake was that I wrote "$ShootingPoint" instead of "%ShootingPoint"... silly me...

  • @six5618

    @six5618

    4 ай бұрын

    Thanks man this was driving me crazy! I was wondering why my bullets kept spawning away from the gun.

  • @GameFolklore

    @GameFolklore

    3 ай бұрын

    @@kristianlovealot Found out my mistake was that I wrote "%shootingPoint" instead of "%shootingPoint"... silly me...

  • @samuilzaychev9636

    @samuilzaychev9636

    2 ай бұрын

    @@GameFolklore Thats the same thing though. If you were talking about his reply in the first one a "$" is used instead of a "%"

  • @shado905

    @shado905

    Ай бұрын

    I had no idea why the bullets werent working. Thanks!

  • @Snoows-bu4oi
    @Snoows-bu4oi4 ай бұрын

    The more time passes, the more I love Godot. My first little game! Really great, thanks again and keep it up, your channel is awesome !!!!

  • @supjay3945
    @supjay39452 ай бұрын

    This tutorial is the most friendly to follow I have attempted. I was able to follow along without issues as far as instructions. I paused it a few times to input the codes and I did not finish in one sitting, but was able to pick up without issues. I have seen videos that jump around too quick or move there mouse too sudden. Thankyou

  • @diruthewinner
    @diruthewinner5 ай бұрын

    I use POP os too and I only know one youtuber that uses linux for game development - GDquest!

  • @WesCrockettCA
    @WesCrockettCA3 ай бұрын

    Was able to follow this tutorial really easily. Even added in tree-spawning directionally (so they spawn randomly but only in the direction I am currently moving). I plan to customize it too, to show spawn counts and kill counts as well as have the gun follow the mouse rather than getting the nearest mob. I think doing simple customizations like this will really help understand the logic. The only area I got tripped up with was collision layers/masks. I missed the step to set the hitbox collision layer and it took me a while to figure that one out.

  • @Gdquest

    @Gdquest

    3 ай бұрын

    Thanks for highlighting exactly where you had an issue! This allowed me to go back and watch the editing there and think about the recording and how to improve it.

  • @WesCrockettCA

    @WesCrockettCA

    3 ай бұрын

    ​@@Gdquestfor sure! I think a little demo showing what happens if you have the wrong layers set. In my issue, my PLAYER was set to the wrong layer and it caused damage to itself. When I had damage set to 500 I would insta-die on load.

  • @Gdquest

    @Gdquest

    3 ай бұрын

    That's really great info! Thanks a bunch.

  • @paidexGames
    @paidexGames5 ай бұрын

    Thank you for the video. I'm very excited to start the courses

  • @drgapinski
    @drgapinskiАй бұрын

    Finally got around to working through this tutorial and it was great and easy to understand. I look forward to more in the future!

  • @DrunkenLeaf
    @DrunkenLeaf5 ай бұрын

    I had no idea that the access as unique name was a thing. that's killer for onready variables so I don't have to worry about re assigning the node path every time I reorganize my node tree.

  • @MrEnvisioner

    @MrEnvisioner

    5 ай бұрын

    You can also export statically typed node variables to likewise get a node regardless of path. Pro: it works in any scene. Con: you have to assign the path in the Inspector ahead of time. Example: `@export var my_sprite: Sprite2D`.

  • @Mahti77
    @Mahti775 ай бұрын

    This is nice, but how is this "From Zero" if you have pre-build tscn-files to import? ;)

  • @ariton2990

    @ariton2990

    5 ай бұрын

    True though. Might be an unpopular opinion but I hate when people do that in tutorials.

  • @Gdquest

    @Gdquest

    5 ай бұрын

    It's about learning from zero. We provide learn gdscript from zero, for people who have never coded before, Godot tour 101 to introduce the editor, and then they can jump on to this, effectively allowing them to start learning from zero.

  • @Grafii2198
    @Grafii2198Ай бұрын

    Honestly this tutorial sparked my interest in making games, and it was really fun making it in godot, I tried many tutorials in the past for various engines but this is the one that clicked with me! Thank you so much for making it! Are you planning on making a part 2 for it? With more in depth mechanics like, stats, waves, perhaps even maps and most importantly levels and items. I think it is essential for these kinds of games and having a guide on how to do that would provide so much knowledge for creating so many things and not just the ones for the purpose of this project!

  • @---bl3sr
    @---bl3sr3 ай бұрын

    For a long time i've been wanting to learn godot and it seemed so daunting but this was a lot of fun! Thank you so much

  • @yeahitsmesofkinwhat
    @yeahitsmesofkinwhat4 ай бұрын

    It kind of bothers me that you said "You should know at least a little bit of coding" then go on to explain what a zip file is and how to unpack it. Those two things are diametrically opposed. If you added in a corollary that this part is for beginners, or a timestamp to skip this part, I'd have less of a gripe.

  • @Gdquest

    @Gdquest

    4 ай бұрын

    We provide a free course to learn code from zero in the video. We just don't want to slow down the video by having to introduce every code concept. Overall it's designed to be very accessible.

  • @ColinBroderickMaths
    @ColinBroderickMaths2 ай бұрын

    "From zero" "Here is a ready made project" Come on.

  • @parkerpierce8931
    @parkerpierce89314 ай бұрын

    Fantastic experience getting through this, learned a LOT!

  • @ratboyboyrat
    @ratboyboyrat4 ай бұрын

    Very good tutorial, thank you! Keep up the high quality content.

  • @drpainnuk3d
    @drpainnuk3d5 ай бұрын

    Awesome stuff man! Great vid as always! Looking forward to the course :)

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Thanks a lot for the kind comment :) :)

  • @alexmcgreal836
    @alexmcgreal8365 ай бұрын

    This was so helpful, only just started out with Gadot and I have been watching some scripting tutorials, so this really helped bring it all together. Thank you so much for doing a tutorial where you actually explain the script, this really helps a beginner like myself and makes it so much easier to grasp a fundamental understaning of not only what I am doing, but why, something many other tutorials do not do. Many thanks!! 😁👍

  • @arioche
    @arioche2 ай бұрын

    one of the best tutorials I have ever seen in YT. thank you.

  • @MrDinoc
    @MrDinoc2 ай бұрын

    what a well presented tutorial. i feel so confident after watching this.

  • @zonca07
    @zonca075 ай бұрын

    Excellent as always! Keep it up!

  • @infinite2692
    @infinite26924 ай бұрын

    Mission accomplished! Looking forward to advance now, thank you!

  • @LoranBriggs
    @LoranBriggs5 ай бұрын

    Well done! Glad I watched this video first when trying out Godot.

  • @siamemex1555
    @siamemex15553 ай бұрын

    Thanks for the tutorial. Total beginner and I found it really clear and helpful. Brilliant.

  • @paulbergel9191
    @paulbergel91915 ай бұрын

    absolutely loved the tutorial -- thank you!

  • @roger166
    @roger1662 ай бұрын

    I love you so much,getting into godot has been easier thand expected with this goated tutorial

  • @jordantangco9187
    @jordantangco91873 ай бұрын

    Absoutely incredible tutorial. I was getting super frustrated with Godot, but this has really helped me out!!

  • @thiagoknot
    @thiagoknot18 күн бұрын

    Man, this tutorial is incredible, thank you so much

  • @jajajaja4865
    @jajajaja48659 күн бұрын

    Thank you. Wonderful tutorial!

  • @bladzium1098
    @bladzium10984 ай бұрын

    This tutorial is one that everyone should do! Amazing work

  • @Mack_the_Knife
    @Mack_the_Knife3 ай бұрын

    I was accumulating all of this info over days through forums and small tutorials and here everything is compact in one video. Guess i still learned some more but this would have been great 😅 Thanks for the great vid!

  • @kaustubhgupta168
    @kaustubhgupta1685 ай бұрын

    Thank you so much for the tutorial!!!

  • @Haddedam
    @Haddedam2 ай бұрын

    This is a great tutorial and absolutely on a proffessional level compared to other amateur efforts. I finally understand what does what and why. And it manages to do the harder thing: not over explaining.

  • @ishanj2021
    @ishanj20215 ай бұрын

    Thanks for the tutorial! It'll be really helpful.

  • @asmitsaxena5387
    @asmitsaxena53873 ай бұрын

    I just wanted to say , that , I've completed very short (just adding trees in the scene and before) and the tutorial is so well explained , it carries developer tips to quickly improve , and makes coding easy too , I had never found any tutorial that good , If you want to learn godot , It is highly recommended

  • @WiLDbEAsTGameSHere
    @WiLDbEAsTGameSHere5 ай бұрын

    I was trying to learn how to make a game in godot 3d i learned shader gpuparticals 3d and how to make a basic first person controller and a few more essential parts of godot 3d in 4.2 . I wanted to go back and learn a little bit of 2d before going forward . You are a life saver . Thankyou gdquest ❤

  • @AlonElishkov
    @AlonElishkov4 ай бұрын

    Thanks for the great tutorial. Really effective jump start for newbs, zero errors or bugs and very clear.

  • @wizard_under_the_hill
    @wizard_under_the_hill5 ай бұрын

    Fantasic tutorial, loved it!

  • @blackcitadel37
    @blackcitadel375 ай бұрын

    Very cool. I want to build a vertical shmup with Godot instead of a roguelike but the knowledge presented here will be quite useful for both projects.

  • @esshahn
    @esshahn4 ай бұрын

    Amazing tutorial, thank you so much!

  • @sidraptor
    @sidraptor3 ай бұрын

    Thank you so much! Great tutorial!

  • @Bahuuba
    @Bahuuba29 күн бұрын

    Amazing tutorial! Had so much fun with it and I'm amazed at the end product! I added a little extra by importing the sprite of the pistol in the gun's code, so that I can flip it depending on where the target enemy is. Looks more natural and it was a fun challenge to figure out on my own :)

  • @HighnessCuts
    @HighnessCuts3 ай бұрын

    Completed this Tutorial. ❤ Thankyou

  • @FunnyVideos-ni4iu
    @FunnyVideos-ni4iu4 ай бұрын

    very good teaching style! liked and subbed

  • @roe__jogan
    @roe__jogan5 ай бұрын

    This is really excellent. You're a great teacher! Strongly considering sighing up for the online courses.

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Thank you for the kind words. I'm happy you enjoyed the tutorial!

  • @zuztech
    @zuztech14 күн бұрын

    thanks for the video, this help me to jump into my first game jam

  • @jonsmiff
    @jonsmiff4 ай бұрын

    Quick question: I'm not done with the tutorial so maybe you come back to it, but it seems like the weapon_pivot marker is unnecessary, since the code is rotating the parent Area2D node. Am I wrong? I took the pistol out of the Marker2D and nothing changed...

  • @betonassu
    @betonassu2 ай бұрын

    Amazing tutorial! Thanks a lot for that :D

  • @stepankondaurov5615
    @stepankondaurov56152 ай бұрын

    Really helps, thanks a lot, you rock !

  • @TheThescroll
    @TheThescroll3 ай бұрын

    This was intuitive and easy to follow, I'm very impressed with the quality of the tutorial! Thank you for putting this together, this has inspired me to give Godot a shot!

  • @Gdquest

    @Gdquest

    3 ай бұрын

    Very happy to hear that! Thank you for your feedback :)

  • @RTW590
    @RTW59022 күн бұрын

    Very easy to follow and very useful. Thank you!!!

  • @guyug6940
    @guyug69405 ай бұрын

    Perfect timing! about to try this!

  • @guyug6940

    @guyug6940

    5 ай бұрын

    leaving off on 1:39:40

  • @MrInsanityInBlack
    @MrInsanityInBlack5 ай бұрын

    Absolutely Loved It!

  • @JuanYusteDelValle
    @JuanYusteDelValle5 ай бұрын

    This is fantastic. Thank you so much! When will you guys release the character animation vid? Really looking forward to checking that one out

  • @samuraihoedown4761
    @samuraihoedown47612 ай бұрын

    Really good tutorial, thank you!

  • @d-n539
    @d-n5395 ай бұрын

    Very clear, thanks a lot !

  • @11nephilim
    @11nephilim20 күн бұрын

    Gotta say this is an *excellent* tutorial, I've been looking for more after finishing the Brackeys ones but kept running into "beginner" ones that failed to explain the "why" of things enough to really build an understanding of what's going on. After watching this though a lot of things started making a ton of sense! I managed to make a basic lil addition to the script that flips the gun sprite so it's not upside down when it goes to the left of the character! It might be a simple change but it adds some polish and it's the first new "feature" I've figured out how to code by myself! Gonna see if I can figure out how to implement more new stuff tomorrow... maybe a wave system? Should be fairly easy to check if all the mobs are dead and then set a timer until a new wave begins, and then increase the mob spawn rate each wave.

  • @bearwater8747
    @bearwater87475 ай бұрын

    MY son and I are taking the week to learn this course. thank you so much for making this. We will let you know how it turns out

  • @spiderbro9496
    @spiderbro94965 ай бұрын

    You guys are the real heros

  • @Bippoo
    @BippooАй бұрын

    This was a great tutorial thanks a lot!

  • @sashetha9548
    @sashetha95482 ай бұрын

    Exceptionally explained and easy to follow! Already thinking about some simple features I could try to implement from another tutorial. All in all, feel like I learned a lot in a very short period of time.

  • @Gdquest

    @Gdquest

    2 ай бұрын

    Thanks a lot for the feedback :)

  • @blattymeow
    @blattymeowАй бұрын

    Thank you for this tutorial, absolutely wonderful start to create my own simple 2D game! :)

  • @Gupatik
    @Gupatik3 ай бұрын

    The first time, I entred, watched the first 36s then subscribed to make sure I don't miss this golden content here!!

  • @sumgue4964
    @sumgue4964Ай бұрын

    Awesome tutorial, it was a lot of fun and you are damned good at explaining everything, I never got lost. Subbed and bell'd.

  • @Saurus990
    @Saurus9904 ай бұрын

    This was a very good tutorial, definitely gonna check out your courses.

  • @Gdquest

    @Gdquest

    4 ай бұрын

    Thank you for this feedback! :) It gives us a boost while working on coursework.

  • @watdatu876
    @watdatu87627 күн бұрын

    I'm going back to Godot development (started with Godot 3) and this is such an great Godot 4 tutorial. Even though I'm using C# in following this tutorial, the great explanation/tips in this tutorial and improved Godot 4 C# docs really helped me in my journey back to game development using Godot. Thanks!

  • @dousbrata
    @dousbrata4 ай бұрын

    Thanks you very much for the lesson!

  • @Gatrehs
    @Gatrehs5 ай бұрын

    For anyone with as terrible hearing as me: at 29:40 he's saying Ctrl+D A second note on that, it doesn't select all instances of the text, you might have to press it multiple times.

  • @cranklin5773
    @cranklin57733 ай бұрын

    For anyone having problems at 1 51 53. Go to your bullet script change your variable direction equals vector two from "RIGHT" to "UP" helped me allot

  • @arnaud3184
    @arnaud31845 ай бұрын

    Congratulation! Great learning material for beginner to experts wanting to learn Godot!

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Merci ! Happy to read that.

  • @lucas_pscheidt
    @lucas_pscheidt3 ай бұрын

    thanks for this amazing tutorial!

  • @DeviantPlot
    @DeviantPlot5 ай бұрын

    excellently done, Nathan! quite the upgrade from the oldie Dodge the Creeps tut :) this should go into the official docs and replace the previous one on the Getting Started section there.

  • @Gdquest

    @Gdquest

    5 ай бұрын

    Thank you! I'm glad you liked it. We'd have to take GDQuest's name out if it were to go into the Godot Docs. That would prevent us from making a living and continuing to push content out.