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

preview_player
Показать описание

Preorder Below Launch Price for a Limited Time Only.

------------------------
🖈 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
--------------------------------

#gamedev #godot #tutorial
Рекомендации по теме
Комментарии
Автор

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

seanolson
Автор

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

PixelBladeStudios
Автор

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!

yeiskelcisneros
Автор

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!

kosotoru
Автор

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?

diegoandradex
Автор

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!

ItsUnderMotion
Автор

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!

Toon_Pirate
Автор

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

FilenameNULL
Автор

I have seen a lot of comments regarding the fact that they are taking constant damage/losing health no matter what is happening, so I'm commenting here to help future people.

Basically you have to change your player hurtbox collision mask to that of the collision layer of your slimes(a lot of people seem to have missed this part of the video 1:44:00). The reason why you were taking constant damage was probably because your player collision layer was set to 1 while your hurtbox collision mask was set to 1 by default, so your hurtbox will constantly detect the player and hence constantly damage you.

Hope this was helpful

kevinle
Автор

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.

HistoryUnveiled
Автор

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

potinhuu
Автор

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

KnochenMarkSaege
Автор

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.

-Kailinn-
Автор

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

felipecorrea
Автор

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.

awfyboy
Автор

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.

persononyoutube
Автор

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

xelonix_
Автор

A few notes, _generally pertaining to optimizing this project, _ based on my personal preference:


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


*-* 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".

BinaryBolias
Автор

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

arnaudmulton
Автор

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!

carlmeyer