@dev-worm

link to the full series: https://www.youtube.com/playlist?list=PL3cGrGHvkwn0zoGLoGorwvGj6dHCjLaGd

@microwire007

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.

@Marandal

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.

@Diertstarr

Unity refugee here; starting the toots - so far so good - no problems, easy to pick up. Thank man! See ya in the next one!

@ilguardiano8718

the legend is back, more powerful than before

@abnorth2276

Good tip for people who don't want to flip the sprite to make it go left and right (so for example you have a dedicated sprite for left and right): You can just remove the lines that say anim.flip_h = true/false on the last if statements in the player script and then type in your own animation where it otherwise would be "side_walk" and "side_idle" respectively. It worked great. Awesome tutorial.

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

@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

@qmerk2661

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

@chase7767

I drank each time he says "right" and died of alcohol poisoning at 13:32

@SkillSage-p3r

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.

@Pookierok

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,

@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

@Boerke

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.

@UnluckyFoxRot420

Starting this series today in hopes of learning how i'll be getting my game translated from thought to the actual system. Fingers Crossed and I'll let ya'll know how it goes🤞

@missharley2118

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!

@kristianlavigne8270

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.

@Tru3_Dem0n

For those who want to do a mobile RPG, there's the script for the character movement:

@export var speed = 200.0 # Character movement speed func _physics_process(delta):# Check for touch input if Input.is_action_pressed("touch"):# Get the touch position var touch_position = get_viewport().get_mouse_position() # Calculate the movement direction var direction = (touch_position - position).normalized() # Move the character position += direction * speed * delta

@randykeith1203

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

@dlivrobeauchampii50

I love your channel so much man! I have been looking all over the internet for the best free course to start my Godot journey. I chose yours because you are so easy to listen to. Thank you for all the resources and information that you share with us!