Тёмный
No video :(

How to Create an RPG in Godot 4 (step by step) 

DevWorm
Подписаться 35 тыс.
Просмотров 282 тыс.
50% 1

In this series I'm going to be going over everything you need to know in Godot 4 to create your own Godot games so after you can go off and make Godot games on your own. I know you will learn so much from this series and I'm very exited to teach it. In this episode we are going to keep it simple sense it is only episode 1 and create player movement and animations.
Download Free art pack: game-endeavor....
make sure to download the free as that is all we will need for this series.
Link to smooth movement in godot 4: • How to Create SMOOTH P...
----------------------------------------------------------------------------------------------------------------------------------------
Thank you so much for watching I really hope this video helped.
if you did enjoy then please go and click that subscribe button to help out the channel. I means so much and I love your feedback in the comments to let me know what it is that you enjoyed. Again thanks so much and I would love to see you again!
have a great rest of you day and of course be safe :)
- thanks DevWorm,
----------------------------------------------------------------------------------------------------------------------------------------

Опубликовано:

 

27 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 737   
@dev-worm
@dev-worm Год назад
link to the full series: ru-vid.com/group/PL3cGrGHvkwn0zoGLoGorwvGj6dHCjLaGd
@legendhowl
@legendhowl Год назад
how did u split the sprite sheet
@aynonms
@aynonms Год назад
@@legendhowl 6/10
@legendhowl
@legendhowl Год назад
@@aynonms wdym
@aynonms
@aynonms Год назад
@@legendhowl 6 vertical, 10 horizontal
@legendhowl
@legendhowl Год назад
ik but it becomes blurry for me
@Marandal
@Marandal 11 месяцев назад
i am a refugee from Unity. Thank you dev-worm for this tutorial! I really appreciate your in-depth explanations of what things do and how they operate.
@dev-worm
@dev-worm 11 месяцев назад
Glad it could help!
@idontknoq4813
@idontknoq4813 9 месяцев назад
I'm also a refugee. Thanks for the tutorial.
@Vocodedvoice
@Vocodedvoice 9 месяцев назад
Same
@1997AlexB
@1997AlexB 8 месяцев назад
Godot welcomes refugees of all nations!
@enderpig99
@enderpig99 8 месяцев назад
@@1997AlexB im an unreal refugee it was tough😥
@microwire007
@microwire007 11 месяцев назад
Just saying "Hi" to all the other new Godot users who have jumped ship in the past couple of days. I only just started learning game development about 4 weeks ago on Unity, I'm thinking now is a good time to focus on a different tool.
@Diertstarr
@Diertstarr 11 месяцев назад
Unity refugee here; starting the toots - so far so good - no problems, easy to pick up. Thank man! See ya in the next one!
@qmerk2661
@qmerk2661 2 месяца назад
first off, im loving the tutorial so far. im already on ep. 4 but i figured id ask this here. i am pretty new to game dev and godot. so im pretty sure this is not the best way to go about this but id rather have my character have diagonal movement as well so i changed the code under the func player_movement(delta) part to func player_movement(delta): if Input.get_action_strength("Move_right"): play_anim(1) current_dir = "right" elif Input.get_action_strength("Move_Left"): play_anim(1) current_dir = "left" elif Input.get_action_strength("Move_Down"): play_anim(1) current_dir = "down" elif Input.get_action_strength("Move_Up"): play_anim(1) current_dir = "up" else: play_anim(0) var input_vector = Vector2.ZERO input_vector.x = Input.get_action_strength("Move_right") - Input.get_action_strength("Move_Left") input_vector.y = Input.get_action_strength("Move_Down") - Input.get_action_strength("Move_Up") input_vector = input_vector.normalized() if input_vector: velocity = input_vector * speed else: velocity = input_vector move_and_slide() now heres the thing. this took me forever to try to figure out (because im new to this stuff) but everything works as i wanted it to, and im happy about it, and honestly proud of myself for getting it to work at all lol. but im just gonna ask anyone that may know more then i do, if i did something wrong here that may bite me in the butt later on. im not asking for some nit picky answer just so you can try to flex your knowledge with an advanced answer, im only asking if, for me(a beginner thats just gonna use this tutorial to have a project to practice learning with(kinda like a starting template)) if this is a BASIC way to do this, and if its fine or not. thank you in advance
@aintnico
@aintnico Месяц назад
Thank you, i was searching for this, saw so many tutorials i was going to just go with it
@lithium1497
@lithium1497 23 дня назад
Beginner here myself, always look at the comments of the Video. Somewhere below user @sashabellor4344 posted a script below, but it was missing a line in the func _physics section, will copy below the correct code that worked for me after I fixed it up. @export var speed = 100 func _physics_process(_delta): var direction = Input.get_vector("left", "right", "up", "down") velocity = direction * speed move_and_slide() Voila, simple as that.. Just make sure to go into your Project > Project Settings > Input Map > Bind your keys "left" "right" "up" "down" to each separate Arrow/WASD, or the script will launch like 1000 errors a second looking for un-mapped buttons. Good luck sir, I was getting frustrated because the code in the video wasn't working properly either, and the previous comment from Sasha was slightly off, as when I tried func _physics_process(delta) It would debug an error saying it required a _delta .. hence, func _physics_process(_delta): and for some reason this no longer spits out any debug issues + works in all 8 directions.... 4 hours later RIP Saturday Night. Edit: After hours of frustration, this was all scrapped and followed the original tutorial, getting the animations to work was such a pain, I am sticking to what is shown to us.
@brakefox5106
@brakefox5106 21 день назад
@@lithium1497 Thx bro! You helped me. Hi from Brazil.
@lithium1497
@lithium1497 20 дней назад
@@brakefox5106 You are very welcome! Much love from Canada
@sashabellor4344
@sashabellor4344 2 месяца назад
With Godot 4 there's a shortcut to 2d Topdown player movement! @export var speed = 100 func _physics(delta): var direction = Input.get_vector("left", "right", "up", "down") velocity = direction * speed move_and_slide() ("left", "right", "up", "down" = defined inputs created in my input map) That's it and your character will move in 8 directions!
@dev-worm
@dev-worm 2 месяца назад
thank you! i’m sure this can help so many!
@hansuswurstus888
@hansuswurstus888 8 дней назад
also we can remove anim.flip_h when moving up and down due to different sprites that don't need to be flipped.
@LoganSie
@LoganSie Год назад
As someone who is new to coding in general and godot, this tutorial is beyond amazing! It would be great if your future videos you made mechanics which we could simply add and expand on. Will continue to watch this series and the rest of your videos because i feel there isn't as much resources for godot 4 in terms of learning and this video alone is very inspiring! Thanks!❤
@dev-worm
@dev-worm Год назад
so glad to hear that, im working on some really exciting tutorials right now
@ilguardiano8718
@ilguardiano8718 Год назад
the legend is back, more powerful than before
@Makiyes-gaming
@Makiyes-gaming Год назад
Just as a tip if your animation doesn’t work after all the code make sure the animated sprite is a child of the player and not the collision box
@mohamedbennasroune7633
@mohamedbennasroune7633 9 месяцев назад
BRO U SAVED MY DAY FR I WAS WONDERING FOR HOURS WTF WAS I DOING WRONG THANK YOU SO MUCH
@gripychipy
@gripychipy 5 месяцев назад
Thanks
@ValentineInWonderland
@ValentineInWonderland 3 месяца назад
Bro my character literally doesn't show up at all 😭 not sure what I did wrong tho, because I literally followed this exactly
@jeremiahhoney650
@jeremiahhoney650 3 месяца назад
@@ValentineInWonderland same all I get is grey screen
@user-ky3fm8ku3j
@user-ky3fm8ku3j 8 месяцев назад
to move the player you could use this instead of the huge amount of if statements:- const SPEED = 100 var direction : Vector2 = Vector2.ZERO func _physics_process(delta): direction = Input.get_vector("left", "right", "up", "down") if direction: velocity = direction * SPEED else: velocity = Vector2.ZERO move_and_slide() it works the same.
@doublecc6234
@doublecc6234 8 месяцев назад
How would you implement the animation code into the character movement code?
@user-ky3fm8ku3j
@user-ky3fm8ku3j 8 месяцев назад
@@doublecc6234 I used Animationtree, I learned the way from this video it is very helpful, ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-WrMORzl3g1U.htmlfeature=shared Animationtree make things more simpler and easy.
@TheEndTimes101
@TheEndTimes101 4 месяца назад
The issue with this code is it adds diagonal movement if the player hits left and right at the same time. Diagonal movement in itself is not a bad thing but you will need new animations and more code to get it working. His code keeps that out and it fits top down feel better. Not saying there's not a better way.
@user-ky3fm8ku3j
@user-ky3fm8ku3j 4 месяца назад
@@TheEndTimes101 yeah to fix it add . normalized here direction = Input.get_vector("left", "right", "up", "down"). normalized and it should be fixed.
@CozyThreadsAU
@CozyThreadsAU 14 дней назад
The other code wasn't working for me but this is. Thanks!
@AMINEI-wl9rk
@AMINEI-wl9rk 3 месяца назад
extends CharacterBody2D const speed = 100 var current_dir = "none" func _ready(): $AnimatedSprite2D.play("front_idle") func _physics_process(delta): player_movement(delta) func player_movement(delta): if Input.is_action_pressed("ui_right"): current_dir = "right" play_anim(1) velocity.x = speed velocity.y = 0 elif Input.is_action_pressed("ui_left"): current_dir = "left" play_anim(1) velocity.x = -speed velocity.y = 0 elif Input.is_action_pressed("ui_down"): current_dir = "down" play_anim(1) velocity.y = speed velocity.x = 0 elif Input.is_action_pressed("ui_up"): current_dir = "up" play_anim(1) velocity.y = -speed velocity.x = 0 else: play_anim(0) velocity.x = 0 velocity.y = 0 move_and_slide() func play_anim(movement): var dir = current_dir var anim = $AnimatedSprite2D if dir == "right": anim.flip_h = false if movement == 1: anim.play("side_walk") elif movement == 0: anim.play("side_idle") if dir == "left": anim.flip_h = true if movement == 1: anim.play("side_walk") elif movement == 0: anim.play("side_idle") if dir == "down": anim.flip_h = true if movement == 1: anim.play("front_walk") elif movement == 0: anim.play("front_idle") if dir == "up": anim.flip_h = true if movement == 1: anim.play("back_walk") elif movement == 0: anim.play("back_idle")
@TrueFalses
@TrueFalses 3 месяца назад
thanks legend 👍
@connorburnett4245
@connorburnett4245 3 месяца назад
@@TrueFalses doesn't work for me the game crashes ever time i load it
@Wolfframe
@Wolfframe 20 дней назад
Thank goodness it worked! Thank you, kind man! =)
@Boerke
@Boerke 15 дней назад
I usually favor reading over videos for learning new things, but the main benefit of video in learning game development is that you can match results much better. The problem arises when stuff doesn't work, and you have to keep scrolling for that tiny step you missed or did in another way. I created the script using the asset tree, by right-clicking the scripts folder and adding the script. This doesn't attach the script to the CharacterBody2D node. After about half an hour of scrolling through the video, I finally noticed in the inspector that no script was attached, so I simply attached it there and it worked. Turns out I missed the click on the attach script button in the video. Thanks for the series, it's going to be a fun one.
@armyofchickens6062
@armyofchickens6062 Год назад
At 19:30, Instead of the ready function with the animation, inside of the animated sprite 2d you can set an animation to be the default when it starts, saves some coding
@davidbouman8928
@davidbouman8928 11 месяцев назад
but with the ready function you can have multiple different start animations for different scenes, i.e. if you want the character to start facing the right in a boss fight.
@ericspeak6110
@ericspeak6110 Год назад
THANK YOU for the work that your doing, this channel right now is the reason I havent given up again on my dream. Thank you,
@dev-worm
@dev-worm Год назад
Glad to hear it, Im wishing you the best and I cant wait to see your finial game!
@missharley2118
@missharley2118 11 месяцев назад
So much better and faster than the outdated one I spent all day trying to debug, THANK YOU SO DAMN MUCH. I do need to learn how to type faster though, you type so quick I have to keep pausing and rewinding to pause it haha!
@deadjuice1880
@deadjuice1880 5 месяцев назад
Learning from watching is tough and slow. A few good tips: Watch the video first. Then follow along after. Observe, take in what you can, and then go along with it. You're here to learn, but you can get stuck in a mental trap by following instructions, and not having time to understand. Also, put it to like 0x75 speed with the gear icon in RU-vid. Good stuff to learn here, but also, the instructor moves way too fast, while you are trying to follow. No fault on them or you, this is a great series of tutorials, and there is a lot to be learned here.
@gonzaloramirez3261
@gonzaloramirez3261 Год назад
Thank you from Argentina, this video is of great help to me as I start a project I have in mind. It's undoubtedly a huge advantage to have this! Greetings.
@dev-worm
@dev-worm Год назад
so glad to hear that!
@tomoyaokazaki2138
@tomoyaokazaki2138 4 месяца назад
dude, i like how much you covered in this one video. I also had my doubts tbh with how the animation was coded in, but it worked perfectly on my end like it did on your end! Whenever that happens, you know it's an amazing tutorial. I can't wait to watch your other tutorial videos for this series!
@dev-worm
@dev-worm 4 месяца назад
goodluck in the rest of the series!! thanks!! if you ever need anything then please let me know!
@RansomeColeman
@RansomeColeman 3 месяца назад
Thanks for the tutorial! As someone old to coding but new to game dev going through the different features was very helpful. I spruced up the player_movement a bit to allow diagonals, sharing here in case others are interested. I started the current_dir a bit different as well with var current_dir = "down" func player_movement(delta): velocity.x = 0 velocity.y = 0 if Input.is_action_pressed("ui_down"): current_dir = "down" velocity.y += speed if Input.is_action_pressed("ui_up"): current_dir = "up" velocity.y -= speed if Input.is_action_pressed("ui_right"): current_dir = "right" velocity.x += speed if Input.is_action_pressed("ui_left"): current_dir = "left" velocity.x -= speed if velocity.x || velocity.y: play_anim(1) else: play_anim(0) move_and_slide()
@arcanerefrain
@arcanerefrain 3 месяца назад
This was very helpful, thanks! I added a few lines of code right above the "if velocity.x || velocity.y:" line to fix the problem of diagonal movement being faster than straight movement: if velocity.x && velocity.y: velocity.x *= .71 velocity.y *= .71 I know the "correct" way to solve this problem is to use normalized vectors, but for simple 8-directional movement this is a quick fix that doesn't require reworking the existing code.
@dev-worm
@dev-worm 3 месяца назад
code looks amazing!! good work!! thanks for sharing it for others as well!
@RansomeColeman
@RansomeColeman 3 месяца назад
@arcanerefrain oh nice, I've read about the diagonal problem, appreciate the lookout!
@kristianlavigne8270
@kristianlavigne8270 8 месяцев назад
Pro tip: If you split it up into smaller functions such as move with move("left") and play_move with play_move("left", "side") and so on you can vastly simplify the code, more readable, composable and much less duplication. if/else and nesting statements is the bane of software dev.
@degariuslozak2169
@degariuslozak2169 9 месяцев назад
So hard to find good quality tutorials for Godot 4,glad I found this one. Although for some reason if I use "delta" in the player movement function,no movement works whereas if I remove it,it works. Edit: for some reason,Godot didn't attach the script the player node. Idk how that happened,lol. all fixed now
@Yinithyn
@Yinithyn 9 месяцев назад
How did you fix it? I think I'm having the same problem.
@JayTohab
@JayTohab 4 месяца назад
While the game I want to make isn't from this genre, this is still good practice for me to get used to working with Godot! Thanks!
@dev-worm
@dev-worm 4 месяца назад
I completely agree with you!! goodluck!! let me know if you need anything at all!
@ethandfriends2
@ethandfriends2 Месяц назад
Thank you man, here’s hoping I can use this for an adventure game
@dev-worm
@dev-worm Месяц назад
i hope everything works out for your game!! if you ever need any help just let me know!!
@gruby4498
@gruby4498 10 дней назад
As the starting animation, you can just select starting animation in AnimatedSprite2D node (A+ icon in animation bar), great tutorial by the way, thanks for it!
@dev-worm
@dev-worm 9 дней назад
that’s a good tip! thank you! also i am so glad to hear that you liked it!
@lexolotlgod
@lexolotlgod Месяц назад
Holy cow my dude, BREATHE! I slowed it down to 0.75 speed and I'm still constantly pausing to catch up. xD
@dev-worm
@dev-worm Месяц назад
ah i’m sorry!! hope you were still able to get all the information out of it!
@pafinnoobmufin5037
@pafinnoobmufin5037 9 месяцев назад
Thank you so much, I just finished series yesterday and tried to do this part alone and almost did it but I am happy that I found different solution to animations and it works
@sanitycheck574
@sanitycheck574 Год назад
every godot4 tutorial maker is a hero!!!!!!!!!!!!!!
@dallisfrancis1136
@dallisfrancis1136 9 месяцев назад
I have watched a lot of videos about Godot and yours are the best . Your video literally explained everything and I was able to succeed in what I was trying to do
@dev-worm
@dev-worm 9 месяцев назад
so great to hear! if you ever need help with anything then let me know!
@BigJim1976
@BigJim1976 4 месяца назад
This was infact informative! I used to mess around in unity as a hobby years ago when I was a kid. Kinda dropped it because I just never knew what I really wanted to do with it, plus at that time I was used to writting in Java script, which did not translate well with the tutorials at the time. They were mostly wrote in C#, and trying to translate it to Java script when you barely knew code at all was rather difficult, lol. So I've been really wanting to get back into making some games for fun, and Godot seemed like a pretty good opportunity to do so, but I just couldn't figure out a good place to start. This video has atleast given me 1/2 a mind of what I'm trying to do, and how to do certain tasks, I will will follow the rest of this series with joy, and pleasure. Thank you good sir!
@dev-worm
@dev-worm 4 месяца назад
thank you!! i believe Godot is the best place of anyone to get started with development! and Im wishing you only the best!! if you ever need anything then please let me know! ill be glad to help!
@MijmerMopper
@MijmerMopper 8 месяцев назад
I am so glad I got in the habit of using a bit different names then you do, simply because it helps me keep track of why the things work the way they work, rather then just follow along.
@eddyxc1697
@eddyxc1697 3 месяца назад
hey bro, appreciate the tutorial. always enjoy creators who present things in a fast, but concise way
@dev-worm
@dev-worm 3 месяца назад
I appreciate that! hope it helped!! thank you bro!
@glitcheddivinity
@glitcheddivinity Год назад
This is amazing. Thank you so much! As an absolute beginner, this was easy to follow. So excited for the rest of this!
@dev-worm
@dev-worm Год назад
so glad I could help, if there is anything else you need then please let me know.
@RM_3D
@RM_3D 22 дня назад
First time loading Godot. I don't know coding or Godot, i'm an environment artist usually use Unreal and have wanted to dabble in pixel games and this is the most straight forward tutorial i've found yet. I tried 4 or 5 others trying to get a character to move and they all had problems and wasn't clear. I understood the code and what it was trying to accomplish. Will definitely be swapping the sprite sheets for my own down the line but its nice to have a base to start from.
@dev-worm
@dev-worm 22 дня назад
I am so happy to hear that!! I am glad to help at anytime no matter what it is that you need!! So feel free to reach out!!
@funmtg1272
@funmtg1272 7 месяцев назад
watched this video today and plan on watching the rest in the series. very helpful and informative.
@dev-worm
@dev-worm 7 месяцев назад
so happy to hear that! thank you, hope the rest of the series is helpful
@ricardogaudi2754
@ricardogaudi2754 Год назад
Thank you very much!!! you have no idea how much this video helped me out, i've tried lots of videos and i mean a LOT and still didnt get as far as i got using this video. Keep up the good work man👌
@dev-worm
@dev-worm Год назад
glad to hear that bro
@indieviktorian7206
@indieviktorian7206 Год назад
Your tutorials are the best!!!❤❤❤❤
@dev-worm
@dev-worm Год назад
Thank you so much :)
@General_Havoc
@General_Havoc Год назад
Hello! Just wondering if you could do a series on how to Create a Platformer in Godot 4. It would be really cool!
@GyHUN95
@GyHUN95 Год назад
Great series! I see everywhere this method, instead of using seperate directions: var moveDirection = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down",) velocity = moveDirection * speed. Can you explain which would be the difference, or the best use case for a simple movement code? func _physics_process(_delta): handleInput() updateAnim() move_and_slide() func handleInput(): var moveDirection = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down",) velocity = moveDirection * speed #Anims are: Idle_LEFT, Walk_RIGHT, etc... func updateAnim(): if velocity.length() == 0: if $anim.is_playing(): $anim.stop() $anim.play("Idle_" + direction) else: direction = "DOWN" if velocity.x < 0 : direction = "LEFT" elif velocity.x > 0: direction = "RIGHT" elif velocity.y < 0: direction = "UP" $anim.play("Walk_" + direction)
@MetaDataAutomation
@MetaDataAutomation 7 месяцев назад
I've been scrolling the comments wondering the same. It's tough when learning as I want to know what is the best practice. In this video we seem to use a bunch of lines to achieve a fairly simple movement controller.
@ingred4860
@ingred4860 Месяц назад
Hi! I have been using renpy for about five years now, and yes I love making visual novels, but think its time to branch out! I know im late, but thank you so much for making such good tutorials!
@dev-worm
@dev-worm Месяц назад
thank you!! I am just glad to help!! I wish you only the best in your Godot journey!! If you ever have any questions feel free to reach out!!
@Carmidian
@Carmidian 3 месяца назад
I saved your playlists under "awesome tutorials", I love following along with tutorials that you get an end product thank you so much for doing it. If you're looking for ideas would love to see a 2D side scroller beat em up. Like double dragon or golden axe
@dev-worm
@dev-worm 3 месяца назад
Ill look into it!! thanks!! hope the tutorial helps!! if you end up having issues just let me know so I can help!
@fleurspr5432
@fleurspr5432 Год назад
I just wanted to say thank you for making this tutorial. It's really easy to follow on!! 🥰
@dev-worm
@dev-worm Год назад
Glad it was helpful!
@Xalantor
@Xalantor 7 месяцев назад
This is EXACTLY what I was looking for. Thank you for your hard work!
@dev-worm
@dev-worm 7 месяцев назад
so happy to hear that! thank you! hope everything is able to help you out!
@sashax2845
@sashax2845 День назад
Maaan its awesom!! thank you a lot!!! finnaly iv made 8way isometric animation without AnimationPlayer wich is only good for killing left mouse button and my nerves
@dev-worm
@dev-worm День назад
haha!! if you need any help feel free to ask!! Im here for you bro!
@mariamejia936
@mariamejia936 5 месяцев назад
Thank You. Leaving a comment for youtube engagement. Would appreciate future videos digging deeper into learning the coding language if possible
@dev-worm
@dev-worm 5 месяцев назад
thanks man means the world! for sure!! looing into those types of tutorials now! thanks for the suggestion!
@mariamejia936
@mariamejia936 5 месяцев назад
I'm so glad you appreciated my comment, I am always looking for learning actual code and even after buying books I never feel a concrete place to start, godot keeps me hopeful@@dev-worm
@MonkeySense
@MonkeySense 6 месяцев назад
i wrote the character movement code exactly the same, stopped the video to check, than checked again. every single line of code is marked as an error.
@rjyo1236
@rjyo1236 2 месяца назад
Maybe your language is not the same as his
@komahanaru
@komahanaru Месяц назад
Grate tutorial. I did a few mistakes. Like making the Animatedsprite2D a child of CollisionShape2D and I also placed he elif in the wrong place, messing up my animations. But it made me read the code and understand it better trying to solve it. I like your pacing and explaining too makes it easy to look back over certain parts.
@billathonjohn
@billathonjohn 6 месяцев назад
TYSM! I thought I was a failure when I tried this, because where it says func play_anim(movement): var dir = current_dir var anim = $CollisionShape2D/AnimatedSprite2D I forgot to write current_dir, which made the animation bug out and stop working! When I looked at it I smacked myself on my forehead and was satisfied with my sweet success! Thanks again and I will surely finish this tutorial in no time! You earned a sub ;)!
@dev-worm
@dev-worm 6 месяцев назад
thanks!! ahh i hate when something so small like that happens!! glad you could figure it out!!
@billathonjohn
@billathonjohn 6 месяцев назад
your welcome!@@dev-worm
@minkhe
@minkhe 7 месяцев назад
You deserve more attention this is one of the best tutorials I've seen
@dev-worm
@dev-worm 7 месяцев назад
so happy to hear that, thank you!
@randykeith1203
@randykeith1203 8 месяцев назад
I followed your directions to the letter until 12:28 but I don't see my character on screen at all in the debug edit: for some reason the scene was on world and not player but still cannot move my character in debug
@narrow_way12
@narrow_way12 7 месяцев назад
same
@Picksol
@Picksol 7 месяцев назад
If you still haven't fixed your non-moving character it may be because your input system for "ui_right" etc. only using the arrow keys, you need to put in the WASD movement yourself by going to Project --> Project Settings --> Input System (in the tab bar) --> Then putting them in for each of the ui_right ui_left. If that didn't fix it, you may not have move_and_slide() or not calling the method he made in process, or you may not have made the script differently from him and that made it not attached to the player
@InconnuO_O491
@InconnuO_O491 Год назад
The best tutorial about the basics in godot I've seen
@MrSevenEleven
@MrSevenEleven Год назад
if you use the animationplayer node instead, you can script other key changes with it, as well as play sound through audio player nodes also, you can change the speed with a slider on the character node inspector if you just "@export var" the speed variable. you can actually do a lot with this, like control the variable with other scripts
@Blitz289581
@Blitz289581 11 месяцев назад
Where would one be able to find a more in depth explanation or tutorial of what you're talking about?
@nobodyinparticular80
@nobodyinparticular80 9 месяцев назад
I find animation player always preferable. I get that people could use something simpler, but for any object with more than a couple frames, animation player really should be used because of the power of keyframing everything.
@WanderfromSOTC
@WanderfromSOTC Месяц назад
Hopefully I will push through and finally make a game.
@dev-worm
@dev-worm Месяц назад
i wish you luck!! my advice to you is to not rush yourself but to try and stay consistent!! If you ever need any help just let me know!! im here for you!!
@user-lc9oo1iz1t
@user-lc9oo1iz1t 10 месяцев назад
As a Unity refugee, I thank you
@chonkhihumtsoe4879
@chonkhihumtsoe4879 9 месяцев назад
This is a great tutorial. Just started Godot and came across this video. You explain things really well
@dev-worm
@dev-worm 9 месяцев назад
Glad it was helpful! And I'm so happy to hear that!! If you ever need anything then please let me know!
@aChannel13813
@aChannel13813 9 месяцев назад
im pretty well versed in c#, but for learning the built in gdscript functions i think this is a great series especially given its up to date.
@casachezdoom2588
@casachezdoom2588 Месяц назад
At first my intention was to use C# with Godot, since I had already started using it in Unity, but most tutorials use GDScript. Honestly, I don't mind GDScript at all and I feel like the transition in learning is pretty quick plus you don't need an external editor which simplifies the workflow.
@chase7767
@chase7767 9 месяцев назад
I drank each time he says "right" and died of alcohol poisoning at 13:32
@mathislalonde353
@mathislalonde353 6 месяцев назад
you killed me 😂😭
@calebcasual
@calebcasual 11 месяцев назад
This is awesome, I know there are tutorials for pixel art as well but It'd be really cool to see a full tutorial one day that goes over making all the art assets and then the game as well.
@dev-worm
@dev-worm 11 месяцев назад
I completely agree!!
@demiangarden
@demiangarden Год назад
Just started following this tutorial series! So excited for what's next!!
@dev-worm
@dev-worm Год назад
so much coming soon! hope the series helps you!
@SleepersCat
@SleepersCat Месяц назад
This helped me so much ty, you are a very nice guy.
@dev-worm
@dev-worm Месяц назад
aw thank you!! i appreciate it so much!! glad it helped!
@dr.goshleorio8343
@dr.goshleorio8343 Месяц назад
I've tried a bunch of Godot tutorials gotta say this one is the clearest and worked the best for me. Keep up the good work!
@dev-worm
@dev-worm Месяц назад
so happy to hear that!! thank you!
@Jardras
@Jardras Месяц назад
Thanks for the Tutorial. Starting to get into game dev and Godot seems to be fitting :D
@dev-worm
@dev-worm Месяц назад
glad to hear godot seems like the correct fit for you!! i wish you only the best with your godot journey! and if you ever need anything just let me know!!
@1997AlexB
@1997AlexB 8 месяцев назад
Very helpful and at a good pace to follow along to. Thanks for that, will be continuing with this series thill the end.
@dev-worm
@dev-worm 8 месяцев назад
glad to hear that... if you ever need any help with anything then dont be afraid to ask!
@marshmellow9834
@marshmellow9834 15 дней назад
I love the video and though I had some issues I did learn alot so thank you vary much!
@dev-worm
@dev-worm 14 дней назад
i am so glad you were able to overcome the issues!! and happy to hear you learned a lot!! goodjob!
@JaiLeeroy
@JaiLeeroy 10 месяцев назад
You may be the Griffpatch of Godot sir. Thank you for the amazing tutorial!
@MootPotato
@MootPotato 9 месяцев назад
i like your background music in the videos. Think it helps me to pay attention. Thanks for keeping the videos to the point and not making them hours long bc this is working for me
@0liwiersky
@0liwiersky 10 месяцев назад
its my first game in godot ever (apart from the one where I added a 3D model and gave up) and i'm literally crying 😭
@charliejones5318
@charliejones5318 2 месяца назад
This is how I did the player movement: func player_movement(delta): velocity.y = speed * (int(Input.is_action_pressed("ui_down")) - int(Input.is_action_pressed("ui_up"))) velocity.x = speed * (int(Input.is_action_pressed("ui_right")) - int(Input.is_action_pressed("ui_left"))) move_and_slide() velocity.x = 0 velocity.y = 0 (edit) the animations might need a bit of a different system
@Slipping_thru_the_Seams
@Slipping_thru_the_Seams Год назад
i got it working, this is so exciting!! thank you so much
@dev-worm
@dev-worm Год назад
so glad it works!
@IMPRIMIREJOANN
@IMPRIMIREJOANN Месяц назад
For the people who use it, here is all the code: extends CharacterBody2D const speed = 100 var current_dir = "none" func _ready(): $AnimatedSprite2D.play("front idle") func _physics_process(delta): player_movement(delta) func player_movement(delta): if Input.is_action_pressed("ui_right"): current_dir = "right" play_anim(1) velocity.x = speed velocity.y = 0 elif Input.is_action_pressed("ui_left"): current_dir = "left" play_anim(1) velocity.x = -speed velocity.y = 0 elif Input.is_action_pressed("ui_down"): current_dir = "down" play_anim(1) velocity.y = speed velocity.x = 0 elif Input.is_action_pressed("ui_up"): current_dir = "up" play_anim(1) velocity.y = -speed velocity.x = 0 else: play_anim(0) velocity.x = 0 velocity.y = 0 move_and_slide() func play_anim(movement): var dir = current_dir var anim = $AnimatedSprite2D if dir == "right": anim.flip_h = false if movement == 1: anim.play("side walk") elif movement == 0: anim.play("side idle") if dir == "left": anim.flip_h = true if movement == 1: anim.play("side walk") elif movement == 0: anim.play("side idle") if dir == "down": anim.flip_h = true if movement == 1: anim.play("front walk") elif movement == 0: anim.play("front idle") if dir == "up": anim.flip_h = true if movement == 1: anim.play("back walk") elif movement == 0: anim.play("back idle")
@dev-worm
@dev-worm Месяц назад
thanks for sharing that with everyone!! I hope it is able to help!
@cena6665
@cena6665 2 месяца назад
anyone able to help? just started and having an issue. code looks like whats shown but maybe something different since im using 4.2? no errors in debug just stops working and stack frames shows up? something about going right as up and down seem to work fine? if dir == "right": anim.flip_h = false
@Nesisorator
@Nesisorator Год назад
Isn't thte whole process of picking the right animation in the code a bit convoluted? Do you really need that current_dir variable and that play_anim(1) in every if statement? I mean you could just pass the velocity vector into the function (play_anim(velocity) ), get its direction inside that func and pick the right animation with that, right? Also concatenating the Input check with all that elif statements creates some sort of hierarchy for the inputs, with "right" having the highest and "up" the lowest. I think you can do something like velocity.x = Input.is_action_pressed("right") - Input.is_action_pressed("left") velocity.y = Input.is_action_pressed("down") - Input.is_action_pressed("up") this has less hierarchy but pressing left and right at the same time cancels each other out and it allows diagonal movement.
@dev-worm
@dev-worm Год назад
i was trying to keep diagonal movement out of it, but i guess that works. thanks for letting me know
@doublecc6234
@doublecc6234 8 месяцев назад
Could you go more in depth of how to setup the code for the animation
@masicbemester
@masicbemester 5 месяцев назад
Edit: it works!! Just had to multiply the integer difference by the speed value, like this: velocity.x = speed*(int(Input.is_action_pressed("ui_right")) - int(Input.is_action_pressed("ui_left"))) velocity.y = speed*(int(Input.is_action_pressed("ui_down")) - int(Input.is_action_pressed("ui_up"))) When I copied and pasted this right after func player_movement(delta):, it says "Invalid operands "bool" and "bool" for "-" operator" and I don't know how to fix this. Is the problem about the types of values being subtracted? What should I change for this to work? Does setting the input "bool" to an "int" fix this (I thought about this when remembering a beginner Python tutorial even though it's GDScript because I assumed there's at least a similarity here) or is my lack of coding experience showing?
@aneerudh1712
@aneerudh1712 Год назад
Omg thank you so much. I was just struggling with the new version! Keep going👍
@dev-worm
@dev-worm Год назад
this series will be very helpful for sure, I learned a lot about the new godot version just from making this little game lol
@Welebam5308
@Welebam5308 6 месяцев назад
@@dev-worm I am having a little difficulties, i tried changing the version but it didn't work, my problem is that "Cannot call non-static function "play()" on the class "AnimatedSprite2D" directly. Make an instance instead"
@Dracossaint
@Dracossaint 3 месяца назад
SO for anyone following along, at the time of this tutorials release the current version of godot was 4.0.2
@dev-worm
@dev-worm 3 месяца назад
good point!! thanks for mentioning that for others!
@Dracossaint
@Dracossaint 3 месяца назад
​​@@dev-wormNo problem. It had me stuck for a few days trying to follow tutorials. I'm so used to old versions of a program being destroyed once the new one's out. that I didn't even think about it at first. Thank you very much for this learning resource and your hard work
@shawnLittle-sq4nr
@shawnLittle-sq4nr Месяц назад
im going get my friend to follow this i did it a few moths back and he just started today so yeah hope fully and do good on it
@dev-worm
@dev-worm Месяц назад
tell him I wish him the best of luck!! and if he ever needs any helps just to leave a comment and I will get back to him!! thank you for sharing this series with him! it means the world!
@UnderArea51
@UnderArea51 Год назад
Godot 4 turned out to be really awesome!
@dev-worm
@dev-worm Год назад
it really is
@drinkwwwaterrr
@drinkwwwaterrr Год назад
Thanks man this is awesome especially since most tutorials are still stuck on Godot 3
@lowpolypal
@lowpolypal 10 месяцев назад
Such an easy-to-follow tutorial thxs a bunch!
@dev-worm
@dev-worm 10 месяцев назад
so glad to hear that!!
@DremorusReborn
@DremorusReborn 10 месяцев назад
Thank you for the tutorial! I've managed to do this :D Keep making these!
@tommasotezza1319
@tommasotezza1319 Год назад
I just found this series , I'm so exited to start it
@devinegamingtv3427
@devinegamingtv3427 2 месяца назад
When I run the game after all the script is added, I get a stiff picture of my character that moves around without animations, Godot is giving me this "AnimatedSprite2D node not found!"
@devinegamingtv3427
@devinegamingtv3427 2 месяца назад
I fixed it. The problem was me naming the animations starting with a capital letter, but inside the code without capital letter. I'm replying to myself to help others if they could face the same problem :)
@Leonidas_CJ
@Leonidas_CJ 2 месяца назад
Legend
@TheWizardsRoom
@TheWizardsRoom 14 дней назад
Fantastic tutorial. I just suck at this stuff.
@LivingLikeGaryYT
@LivingLikeGaryYT 5 месяцев назад
what ever you name your animations MAKE SURE you make it the exact same in your code for it to actually play your animations. i struggles with this for a while because i make some capital letter mistakes
@dev-worm
@dev-worm 5 месяцев назад
yes!! very good point! glad you mentioned that for others!
@ADAMOR_52
@ADAMOR_52 Год назад
do u plan to add stuff like armor, different zones with stronger enemies, inventory where you would get the loot and then you can sell it in shop and buy the better armor, weapons, potions, etc? - I haven´t watched the vid yet, I´m learning from a different tutorial atm but after i finish that I will move on this one
@dev-worm
@dev-worm Год назад
i plan on doing that in a future series witch will happen right after this one is finished, the game will be on survival so all that will be in the game, on this series i just want to keep it more on the simple side because of all the new players to godot 4 and to be honest im still getting used to the new functions in godot 4.
@davildur
@davildur 6 месяцев назад
Thank you for this tutorial. I am glad that i found this one!!
@dev-worm
@dev-worm 6 месяцев назад
glad to hear, thank you! hoping everything is working smoothly for you!
@h-angrygirl
@h-angrygirl 5 месяцев назад
Hola DevWorm te saludo desde Uruguay, no sé inglés pero algunas palabras entiendo, sumado a que he visto suficientes tutoriales en español como para ir entendiendo el razonamiento de lo que haces y/o dices por lo cual puedo seguirte sin problemas, muchisimas gracias por compartir tus conocimientos
@vladcozma687
@vladcozma687 Год назад
I Found a better way to make the movement with less boilerplate: func player_movement(delta): if Input.is_action_pressed("down"): velocity = Vector2(0, speed) elif Input.is_action_pressed("up"): velocity = Vector2(0, -speed) elif Input.is_action_pressed("left"): velocity = Vector2(-speed, 0) elif Input.is_action_pressed("right"): velocity = Vector2(speed, 0) else: velocity = Vector2(0,0) I used "down", "right", "left", "up" because i put the keys into the Input map, also used Vector2 for less work. everything else should be pretty easy to understand
@vladcozma687
@vladcozma687 Год назад
Also a lot less boilerplate for the sprite making using match function match dir: "right": anim.flip_h = false if movement == 1: anim.play("side-walk") elif movement == 0: anim.play("side_idle") "left": anim.flip_h = true if movement == 1: anim.play("side-walk") elif movement == 0: anim.play("side_idle") "down": if movement == 1: anim.play("front-walk") elif movement == 0: anim.play("front_idle") "up": if movement == 1: anim.play("back-walk") elif movement == 0: anim.play("back_idle")
@gametube1375
@gametube1375 Год назад
I have been waiting for this player
@mihirparab2172
@mihirparab2172 Год назад
tysm!! this series is going to help a lot for sure....❤
@keithestanol3771
@keithestanol3771 10 месяцев назад
Thank you for this! This first one was easy to follow the somewhat complex concepts and I managed to get it working. I've bought the premium art pack and I'll be busy with all 8 of the videos in this series. Again, SO MUCH THANKS! I'm coming in from pygame for what it's worth.
@mdnghtppl0000
@mdnghtppl0000 Год назад
great video, clear and concise
@bubbathesomewhatreal
@bubbathesomewhatreal 8 месяцев назад
This is a great tutorial, but my character isn't moving. My guess is that maybe something small got changed in the way things are named. The code is: extends CharacterBody2D const speed = 100 func _physics_process(delta): player_movement(delta) func player_movement(delta): if Input.is_action_pressed("ui_right"): velocity.x = speed velocity.y = 0 elif Input.is_action_pressed("ui_left"): velocity.x = -speed velocity.y = 0 elif Input.is_action_pressed("ui_down"): velocity.y = speed velocity.x = 0 elif Input.is_action_pressed("ui_up"): velocity.y = -speed velocity.x = 0 else: velocity.x = 0 velocity.y = 0 move_and_slide() 3 Month+ Edit: I've changed the code a little bit to use custom keybinds for WASD, but this should be translatable to "ui_(direction)": extends CharacterBody2D const speed = 100 func _physics_process(delta): player_movement(delta) func player_movement(detla): if Input.is_action_pressed("move_right"): velocity.x = speed velocity.y = 0 elif Input.is_action_pressed("move_left"): velocity.x = -speed velocity.y = 0 elif Input.is_action_pressed("move_down"): velocity.y = speed velocity.x = 0 elif Input.is_action_pressed("move_up"): velocity.y = -speed velocity.x = 0 else: velocity.x = 0 velocity.y = 0 move_and_slide()
@ZemoGames
@ZemoGames 8 месяцев назад
I have this same exact issue, have you found a solution for it yet??
@doublecc6234
@doublecc6234 8 месяцев назад
I have the same exact issue
@CozyThreadsAU
@CozyThreadsAU 14 дней назад
I had this same problem too, make sure that with move_and_slide() that there is only one little symbol before it (idk what its called)
@esy2bear970
@esy2bear970 Год назад
extends CharacterBody2D const Speed = 100 var crntDir = "none" func _physics_process(delta): Player_Movement(delta) #Movement func Player_Movement(delta): if Input.is_action_pressed("ui_right"): crntDir = "right" playAnim(1) velocity.x = Speed velocity.y = 0 elif Input.is_action_pressed("ui_left"): crntDir = "left" playAnim(1) velocity.y = 0 velocity.x = -Speed elif Input.is_action_pressed("ui_down"): crntDir = "down" playAnim(1) velocity.y = Speed velocity.x = 0 elif Input.is_action_pressed("ui_up"): crntDir = "up" playAnim(0) velocity.y = -Speed velocity.x = 0 else: velocity.x = 0 velocity.y = 0 move_and_slide() func playAnim(movement): var dir = crntDir var anim = $AnimatedSprite2D if dir == "right": anim.flip_h = false if movement == 1: anim.play("Walk_S") elif movement == 0: anim.play("Idle_S") if dir == "left": anim.flip_h = true if movement == 1: anim.play("WalkS") elif movement == 0: anim.play("IdleS") if dir == "down": anim.flip_h = true if movement == 1: anim.play("WalkF") elif movement == 0: anim.play("Idle_Front") if dir == "up": anim.flip_h = true if movement == 1: anim.play("WalkB") elif movement == 0: anim.play("IdleB") print(velocity) i dont why but when i move there is no idle animation , it stop but with walk animation , anyone can help?
@gamingmemento1195
@gamingmemento1195 Год назад
maybe you did something wrong idk though
@ros1eeee
@ros1eeee 4 месяца назад
Super helpful!! Thank you!!
@dev-worm
@dev-worm 4 месяца назад
thank you! goodluck in the rest of the series! and if you have any questions then please let me know!
@cbjaxx1413
@cbjaxx1413 Год назад
THIS MADE MY DAY
@giovannisena4853
@giovannisena4853 4 месяца назад
Hey, thank you for covering this, one thing I wanna know is what would I do to make a party following system, I'd appreciate it
@stiffidy
@stiffidy 7 месяцев назад
Can someone please explain on what Renderer to use? Because the video starts instantly with a scene already made.. Forward+, Mobile or Compatibility? Thanks.
@CHR1SMOV1ES
@CHR1SMOV1ES 7 месяцев назад
In the top right Corner of the Video you can see that he uses currently "Forward+". You can always change this settings later, but you probably have to adjust settings.
@agam3z153
@agam3z153 2 месяца назад
The parameter "delta" is never used in the function "player_movement()". If this is intended, prefix it with an underscore: "_delta".
@miaoumixed4268
@miaoumixed4268 9 месяцев назад
Thank you for this tutorial. Coming from "another engine" and for now, it is very easy to follow and understand as I have some background in 2D logic. Your explanations are clear and very helpful.
@dev-worm
@dev-worm 9 месяцев назад
So great to hear, thanks. And Glad I could help!
@teu2387
@teu2387 Год назад
Goat channel 😍
@dev-worm
@dev-worm Год назад
thanks bro means the world
@teu2387
@teu2387 Год назад
@@dev-worm np keep up the good work bro 🙏🙏
@Art_holics
@Art_holics 11 месяцев назад
hello i just wanna let u know that i am very interested on game development although i dont know where to and how to start haha yea so luckily i found ur channel and i am just about to follow ur tutorial and download godot!!! hope you still continue doing this
@jeremiahaemile2008
@jeremiahaemile2008 11 месяцев назад
Some advise First make smalls games before make your game to learn Second make missions menu Third sees tutorial and try to understand it Fourth enter game Jams Fifth enter community for development and make freind ship with anothers developer Sixth learn python that will very help you in Godot because gd script very femailer to python
@Art_holics
@Art_holics 11 месяцев назад
@@jeremiahaemile2008 i am starting with this tutorials and trying to finish this and after that ill combine all my knowledge to try and make small games! I am very happy that gdscript is very similar to python because i already has a knowledge on coding in python! Will definitely join game jams! And prolly ill do devlog and record the process and post it on social media to see my progress! Thanks for the suggestion ill make that as my roadmap broo!
@Art_holics
@Art_holics 11 месяцев назад
@@jeremiahaemile2008 can you recommend a community where i can make dev friends?
@Quantum_phy
@Quantum_phy 5 месяцев назад
What to do if you want to change your weapon characters or both do you have to make every possible combination of them
@deadjuice1880
@deadjuice1880 5 месяцев назад
Do not worry about that just yet. What I heard from programmers, is to take lessons one at a time. This series is a great starting point on learning game design and programming. RU-vid or google specific features tutorials like those, and learn them in a separate project. Eventually, after working on so many project, you might see how they can be put into a single project. This stuff takes a while to learn and understand, and you do not want to overwhelm yourself. Stick to this one for now, and modify this project after the fact!
@Quantum_phy
@Quantum_phy 5 месяцев назад
​@@deadjuice1880ok
Далее
How to Use TILESETS in Godot 4
14:47
Просмотров 90 тыс.
I Paid Fiverr Game Developers to Make the Same Game
10:25
How to make a Video Game - Godot Beginner Tutorial
1:17:12
Technique for Creating Beautiful Level Design
11:48
Просмотров 852 тыс.
Best FREE Software for Game Development in (2024)
8:01
Winning My First Ever Game Jam? | Godot Devlog
10:25
Просмотров 306 тыс.
I Spent 6 Years Making Games in Scratch
10:03
Просмотров 329 тыс.
Every Game Engine Explained In 9 Minutes (Part 1)
9:10
We made Vampire Survivors BUT in 10 Lines of Code
7:08
The Most Impressive Scratch Projects
11:00
Просмотров 4,9 млн
I Made the Same Game in 8 Engines
12:34
Просмотров 4 млн