Awesome! I'm an animator on "American Dad!" but I've always loved gamedev, and I've been following your main account for years after finding your low poly/demake stuff! It's been cool watching your journey! I got sucked into Unreal Engine the last couple years to make cartoons but I've finally started taking Godot seriously after the Unity nonsense. You're an awesome dude and I'm always excited to see your work!
what season litreally like up to season 16 shit is good animation is always sick,, im addicted to american dad gotta start from season 1 on vlc player every time i finish season 16 and i watch it all on tv aswell every night mostly lel for like 10 years
9:40 Lil tip u didn’t mention, hold Ctrl+Shift after you start dragging the node, when you drop it down it into a script Godot will generate @onready and variable names automagically!
Tip at around 2:00, there are now buttons just above the 3D view, in the three-dot menu, that let you add the environment and lighting that you see in the default 3D scene, so you don't have to set everything from scratch.
What a great timing ;) Always loved your tutorial style! And it's valuable to learn from someone who used this engine to actually release several games and not just tinkering
if someone have same issue were "the animation dont stop shooting", is because the setting loop is on, to deactivate go to the shoot fotograms and on the left side of the fps is the loop button just click it to set it off and you are good to go
This tutorial is a godsend. I even managed to give the enemy health by myself in the script and player damage. Now enemies aren't instantly killed and requires multipe shots. Best tutorial ever!
@@123chicken88 This is what I did: In the enemy script add this variable for health which you can edit freely: @export var health: int = 100 Add this new function: func apply_damage(damage: int): health -= damage if health
@@123chicken88 This is what I did: In the enemy script add this variable for health which you can edit freely: @export var health: int = 100 Add this new function: func apply_damage(damage: int): health -= damage if health
wow. I’m 30 seconds in and I can already tell I love your tutorial style. these comments about being straight to the point are true. not only straight to the point, but *clear* and straight to the point. thank you.
i followed exactly his tutorial but i had so many errors,i really had the same as him,tried to fix it with chatgbt or reddit but nothing helped,i dont know anymore,i give up on godot
Thank you for this ! Your previous version of this video was what made me discover Godot and give me the want to realise my own game one day. It's a pleasure and really interesting to see it adapted to Godot 4 and to observe the evolution between the two. Thank you again !!
This tutorial would have been 4 hours long if it were done by any of the other youtubers making godot videos right now... thanks for keeping it short but full of great tips throughout the way.
This was a lot of fun to do. I don't fully understand the code and how it all works but I'm sure I can figure out how to modify certain elements. Thanks for this.
Had an issue with the enemy not moving aka not able to attack either. All I had to do was capitalize the P in Player group node call for the Player reference.
Great work, really appreciate the effort you put into this. I'm working on a 3D open world game with lots of procedurally generated elements, where I'm going to use 2D sprites like this for enemies. I still have to work out how to update navmeshes from code, but this tutorial has helped me get going with the player controller and enemies, at least.
3 месяца назад
great tutorial, easy to understand and right to the point
to resize the floor you really should click the object shape in the inspector and change its size there instead of scaling. Scaling causes issues down the road if things are at different scales.
Nice to see an updated tutorial for 4.x. The one thing I couldn't figure out, when moving to 4.0 how do we parent collision shapes to bones? I think we have to use Bone attachment nodes. But it was giving me a warning that the shapes weren't a child of the Body.
For anyone struggling because you cannot move the camera or player when you compile around the 20:00 mark, you may have forgotten to remove the camera from the world scene!
Nice tutorial, only wish it was more explanatory when it comes to why you're doing what you're doing or why it is you do something rather than only showing the "how".
Not sure if you know this by now, as this video is 9 months old, but you can also press RMB and use WSAD to move around, pretty much like in other engines.
at 15:01 what is used for the cannot statement? It hard to tell with video compression what symbol was put before the can_shoot to register it as "cannot", it's not a "[" is it?
Can someone tell me what he exactly types on line 15 in 22:24 because i can't tell if those are regular == or different because i don't know how to type them
I followed this step by step and word for word but when I press f5 at the stage of around 18:00 I can't look around, the animation doesn't play, and I pressing the fire button only plays the noise once, and will not play it again if pressing the fire button again
Set loop to on in the anim editor, then in the script add an if statement looking for when the mouse button is released, then use $(name of gun's animated sprite).play("(name of your idle animation)")
For some reason my character won't move and shoot when I placed it in the world scene. The other camera was removed too. I followed the code and copied the finished code to see if that would work, but it didn't. Any ideas to fix this?
Hey, how would one go about doing directional 2d sprites in 3d? So how could I change the enemy sprite based on the angle the camera is viewing the enemy instance? Edit: i see you already made a video about this, but does godot 4 bring any new features to make it easier? Would your approach change after godot 4?
2 things: 1. very cool, gonna watch the whole thing and then try to cobble it together myself to avoid returning to tutorial hell 2. THIS IS A WOLFENSTEIN 3D CLONE NOT A DOOM CLONE AAAAAAAAAAAAAAAAAAAAA
Hey so I’m making a fully fledged game from this made different enemies with health systems but one enemy is supposed to shoot appendix’s at the player which is a different tcsn and I can’t figure it out can I get some help I’m also trying to utilize a timer
I'm glad that more people are using a truly open source tool such as Godot, and it's always been better than Unity, regardless of what Unity dorks say, despite the fact that Unity's license really isn't as bad as people think and only marginally worse than Unreal's license, but Doom's actual engine is open source too, and there are all kinds of useful level editing tools for it, as well as the fact that it has a superior language built-in for programming bits of the game. I guess what I'm trying to say is why a Doom clone when Doom 1-3 and Quake 1-3 are all open source and would fit better with such an example instead of say an RPG or strategy game? Ultimately it doesn't really matter because I'm just a random passerby, but I would suggest doing a video on an RPG. My favorite game is Final Fantasy Tactics and making a game with similar gameplay to that would certainly interest me.
This is a remake tutorial from Godot 3, also I think around that time he did a game jam of making a game like doom... I think or i think a lot of people he game jammed with did similar games. It was one of those for sure that probably influenced the first tutorial. Also most game devs getting into game dev probably have no idea the doom engine is open source. I had no idea for 5 + years. and its a big commitment to switch engines.
@@stabbedbyapanda Sounds reasonable, about it being a holdover tutorial. I do wonder why so many videos on RUclips are about making a Doom clone and nearly never include a link to the original Doom source or even a statement that it is open source. I would guess that it's a perspective issue, that maybe they're as old as me and learned firsthand and expect everyone to just know what they know.
@@anon_y_mousse you are assuming still a majority of people know it exist and that it's free and open source. If someone told me about a 20year old engine + that isnt heavily updated I wouldn't think twice of not using it.
I know it’s a long shot but can you answer me a question. I did your tutorial to the T even re-watching and renaming things to exact spellings. The Player script is not throwing any errors even when the game plays but I am unable to use the inputs and the animation of the Gun doesn’t do anything. I’m pretty sure it has to do with the player script inputs (WASD) but I’m not skilled enough to know what I am looking for that is wrong. Do you have any idea what would make the inputs to not work?
Maybe the keybind, but it's weird... the action should be done with no porblem buddy... Also... for the animation, when you dropped the node "animatedsprite2d" did you press ctrl?
@@notpxpyt Nope, doom actually has a z-axis, and both floors and ceilings can be at different heights, unlike wolfenstein, why do you think doom was so revolutionary compared to wolfesntein?
Anyone else having an issue with the mouse? Between finishing the player and after adding the enemy, the editor appeared above the game unless I reposition my mouse. And even then it seems to not have been properly captured. Edit: After checking the original, the same issue also happens so long as it's in Windows Mode. I'm currently using Arch Linux on Forward+ so maybe that's why. Edit2: Same issue happens in Comparability. I think the issue is just arch so it's only an issue in Window Mode.
I'm on Windows 10, and the same thing happens. Did you ever figure out what happened? I keep relooking at my code to make sure it's not that but I have yet to find errors.
Thanks but could please say how to enemy can get the global_rotation of the player? cause i'm using a 3d model and chasing the player is what I need but I want the enemy to also rotate after the player. thanks Edit: So now I know how to make my 3d enemy rotate towards the player {[ look_at() ] for those that need to know}. But now my enemy is running to the player backwards
Dragging objects into the script to make references seems weird. There is a hard reference to that specific object in the script? What if you want multiple instances of a script with references to different things? Or if you want to dynamically change the reference?
that's the most "pay attention and get your shit together"tutorial ever, love it.
Yup
Amazing tutorial. Perfect for unity refugees
Now I don't regret all the days I didn't spend learning unity
"unity refugees" 💀
@@chibisayori20 has been a very common term on the godot subreddit this past week
Miz Gordon ftw
Lmao. As a GMS2 refugee, I can relate
Awesome! I'm an animator on "American Dad!" but I've always loved gamedev, and I've been following your main account for years after finding your low poly/demake stuff! It's been cool watching your journey! I got sucked into Unreal Engine the last couple years to make cartoons but I've finally started taking Godot seriously after the Unity nonsense. You're an awesome dude and I'm always excited to see your work!
You can make cartoons in unreal engine?
@@JohnYourube I think theres a version specifically for film and animation
what season litreally like up to season 16 shit is good animation is always sick,, im addicted to american dad gotta start from season 1 on vlc player every time i finish season 16 and i watch it all on tv aswell every night mostly lel for like 10 years
no way american dad speedruns will be real soon
I love American dad, awesome work you did
9:40 Lil tip u didn’t mention, hold Ctrl+Shift after you start dragging the node, when you drop it down it into a script Godot will generate @onready and variable names automagically!
*what*
I think just Ctrl works as well
@@sockeater193 Yeah Ctrl by itself works with one node. Add Shift for multiple nodes
Holy crap, that is useful!
god(ot) bless you champ
Tip at around 2:00, there are now buttons just above the 3D view, in the three-dot menu, that let you add the environment and lighting that you see in the default 3D scene, so you don't have to set everything from scratch.
aren't those just to simulate the lighting as if you had a default environment but doesn't actually add them to the scene or did i misunderstand?
It does actually add them to the scene with a button click@@PsychonicJoe
If Tutorials had a speedrun community, Mziziziz would be a frequent champion.
Much love over the past few years!
ikr i had to play the vid in .5 and still had to rewind a bunch of times
We need more short but comprehensive tutorials for basic game templates like this. Quality stuff
Miziziz showing off his Godot kung fu. Which funny enough is what our community needs right now. Miziziz astute as usual.
This became one of the most comprehensive FPS tutorials for godot beginners when I set the playback speed to 0.5😂 Excellent work!
What a great timing ;)
Always loved your tutorial style! And it's valuable to learn from someone who used this engine to actually release several games and not just tinkering
if someone have same issue were "the animation dont stop shooting", is because the setting loop is on, to deactivate go to the shoot fotograms and on the left side of the fps is the loop button just click it to set it off and you are good to go
This tutorial is a godsend. I even managed to give the enemy health by myself in the script and player damage.
Now enemies aren't instantly killed and requires multipe shots.
Best tutorial ever!
how u do that can u help me plz
@@123chicken88 This is what I did:
In the enemy script add this variable for health which you can edit freely:
@export var health: int = 100
Add this new function:
func apply_damage(damage: int):
health -= damage
if health
@@123chicken88
This is what I did:
In the enemy script add this variable for health which you can edit freely:
@export var health: int = 100
Add this new function:
func apply_damage(damage: int):
health -= damage
if health
wow, so much experience and knowledge shared in 28 minutes, thank you so much.
the information is so fast and clear, not a single wasted second.
wow. I’m 30 seconds in and I can already tell I love your tutorial style. these comments about being straight to the point are true. not only straight to the point, but *clear* and straight to the point. thank you.
Subbed.
i like your all gas, no brakes kind of attitude
i followed exactly his tutorial but i had so many errors,i really had the same as him,tried to fix it with chatgbt or reddit but nothing helped,i dont know anymore,i give up on godot
Tutorial that start by showing the final product are the best !
Thank you for this ! Your previous version of this video was what made me discover Godot and give me the want to realise my own game one day. It's a pleasure and really interesting to see it adapted to Godot 4 and to observe the evolution between the two. Thank you again !!
this is so useful. getting into game development for the first time and this is exactly what i needed
9:43 click drag, hold ctrl, then drop for the @ stuff
thanks
Thank you so much. I've been trying to learn godot and what you explained in a half hour is taking other people 20 part series to cover.
Literally made my day. I had to tell my wife you uploaded this
This tutorial would have been 4 hours long if it were done by any of the other youtubers making godot videos right now... thanks for keeping it short but full of great tips throughout the way.
So excellent! Looking forward to the full course ported to Godot4!
This was a lot of fun to do. I don't fully understand the code and how it all works but I'm sure I can figure out how to modify certain elements. Thanks for this.
As soon as you is update your tutorial on Udemy to 4.0, I will be absolutely be purchasing it. Love the way you teach.
same, crazy good tutorial
i needed to play this at 0.25 speed to keep up with this holy hell
i hail from the land of Unity.
Thank you for welcoming me into the chruch of Godot with this tutorial!
There's nothing more satisfying then starting up a working playtest with no error message. Now to work on the enemies.
That gun sound is crisp! Wow that’s satisfying.
I really appreciate the no bs straight to the point tutorial!
Thanks I've learned so much from this video alone!
Great video! Really love that you call out all the shortcut keys you use! Never knew of them cuz never heard anyone else say them.
Dude dropped the best GoDot tutorial and then disappeared
His main channel is miziziziz
Really nice Red Bull free tutorial. Quick, informative and on point.
Thanks so much I just ditched my “Golf with Friends” clone idea and I am going to make a doom clone instead!
Awesome tutorial! This is also helpful for those who are migrating from 2D to 3D in Godot. Thank you!
Awesome, also excited to hear you're going back to update the Udemy course for Godot 4. Cheers!
Had an issue with the enemy not moving aka not able to attack either. All I had to do was capitalize the P in Player group node call for the Player reference.
please elaborate i think im having this problem
@OWLyMULLET it's already elaborated sorry
Thank you very much!
I was looking for such tutorial for a long time
Now this is a reboot I can get behind
Tysm, this was a great straight to the point tutorial with plenty of useful info that can apply to any game
Great work, really appreciate the effort you put into this. I'm working on a 3D open world game with lots of procedurally generated elements, where I'm going to use 2D sprites like this for enemies. I still have to work out how to update navmeshes from code, but this tutorial has helped me get going with the player controller and enemies, at least.
great tutorial, easy to understand and right to the point
I like your pace. Thanks for the great tutorial. Keep em coming ❤
to resize the floor you really should click the object shape in the inspector and change its size there instead of scaling. Scaling causes issues down the road if things are at different scales.
at this point im just watching godot tutorials for anti-Unity support and to check out different workflows
Nice to see an updated tutorial for 4.x.
The one thing I couldn't figure out, when moving to 4.0 how do we parent collision shapes to bones?
I think we have to use Bone attachment nodes. But it was giving me a warning that the shapes weren't a child of the Body.
Awesome tutorial, fast and delivered the idea
For anyone struggling because you cannot move the camera or player when you compile around the 20:00 mark, you may have forgotten to remove the camera from the world scene!
brooo 😭
Thank you so much.
Nice tutorial, only wish it was more explanatory when it comes to why you're doing what you're doing or why it is you do something rather than only showing the "how".
Not sure if you know this by now, as this video is 9 months old, but you can also press RMB and use WSAD to move around, pretty much like in other engines.
Simply amazing! You've earned my sub! :)
I wish I could do this as fast as you (well I can't really do it at all). How long did that take you? To learn godot I mean.
at 15:01 what is used for the cannot statement? It hard to tell with video compression what symbol was put before the can_shoot to register it as "cannot", it's not a "[" is it?
!
i had the same problem and had to ask a LLM lol. just add the word "not" between "if" and "can_shoot:". its probably a new thing with godot 4.3?
Best tutorial ever
Very informative, but also very quick! I require trucker-grade speed to follow it closely.
A DEDICATED MIZIZIZIZIZIZ TUTORIAL CHANNEL?!
totally new to all of this. Beginner at coding and game development so I'm trying my best to catch up lmao
its a constant catch-up. the trick is to be creative with what you know how to do.
@@ince55ant thanks man
Can someone tell me what he exactly types on line 15 in 22:24 because i can't tell if those are regular == or different because i don't know how to type them
Like and comment because you showed the results in the first seconds, not waiting till the end.
Great !!! AWESOME!!! I made this program in GODOT 3 and I Will ne do this tutorial in GODOT 4
Thank you Very much !!!!
Thanks, love your tutorials!
Welcome back, missed u 😮
such a great video thank uuu!
maybe implement an ammo system, a reload mechanic, and a health system? yeah, i could do that on my own
I followed this step by step and word for word but when I press f5 at the stage of around 18:00 I can't look around, the animation doesn't play, and I pressing the fire button only plays the noise once, and will not play it again if pressing the fire button again
Make sure you removed the camera from the world scene! The only camera should be the child in the player scene
Also make sure you've typed the name of the dead animation you created exact, case sensitive also
@@sampayne5467 life saver
14:00 was so useful; I've been wondering how to use get_vector for Vector3 and I couldn't figure it out from the documentation.
Would u ever make a tutorial on how to add 2d sprites to a 3d world
I want the shooting animation repeating when i am pressing the shoot button, but it stop and i have to release and press again
Set loop to on in the anim editor, then in the script add an if statement looking for when the mouse button is released, then use $(name of gun's animated sprite).play("(name of your idle animation)")
For some reason my character won't move and shoot when I placed it in the world scene. The other camera was removed too.
I followed the code and copied the finished code to see if that would work, but it didn't.
Any ideas to fix this?
what's the symbol you type at 22:23 ? You call it "is" but I don't know how to type that symbol. idk if this is what's messing up my code
It's a double == sign.
It's a Boolean check for true / false.
New Miz video hype
Why always error in " error at (60, 8) : identifier "Ray_cast_3d" Not declared in the current scope
I had the same problem unfortunately
holy moly defiantly subbing
Great tutorial!
Nice tutorial, thanks a lot!
Hey, how would one go about doing directional 2d sprites in 3d?
So how could I change the enemy sprite based on the angle the camera is viewing the enemy instance?
Edit: i see you already made a video about this, but does godot 4 bring any new features to make it easier? Would your approach change after godot 4?
This video is gold
My character doesn't move at all...
Godot's version is 4.2.1.
I've read it has to do with "move_and_slide()"
I have acquired the speеd. I'm making doom 6.
Do you have plans to ever show how you make this style of art/characters?
I have a problem, the enemies dont go to the player and they cant kill u (im in godot 4.3 and maybe it could causing problems in the code)
Welcome back.
Random question but what keyboard switches are you using here? I can't quite place the sound.
speed run tutorial, i love it
for some reason i cant get the enemy to move toward me
EDIT: i just had to add "add_to_group("player")" in the player script on the _ready func
Thank you for this comment so much.
I have got another problem which is fact that enemy cannot hurt me
You bet your butt I'm subscribing.
Hi could you vote what game should I do
2 things:
1. very cool, gonna watch the whole thing and then try to cobble it together myself to avoid returning to tutorial hell
2. THIS IS A WOLFENSTEIN 3D CLONE NOT A DOOM CLONE AAAAAAAAAAAAAAAAAAAAA
Hey so I’m making a fully fledged game from this made different enemies with health systems but one enemy is supposed to shoot appendix’s at the player which is a different tcsn and I can’t figure it out can I get some help I’m also trying to utilize a timer
why the "raycast.collider().kill()" dont work?
I'm glad that more people are using a truly open source tool such as Godot, and it's always been better than Unity, regardless of what Unity dorks say, despite the fact that Unity's license really isn't as bad as people think and only marginally worse than Unreal's license, but Doom's actual engine is open source too, and there are all kinds of useful level editing tools for it, as well as the fact that it has a superior language built-in for programming bits of the game. I guess what I'm trying to say is why a Doom clone when Doom 1-3 and Quake 1-3 are all open source and would fit better with such an example instead of say an RPG or strategy game? Ultimately it doesn't really matter because I'm just a random passerby, but I would suggest doing a video on an RPG. My favorite game is Final Fantasy Tactics and making a game with similar gameplay to that would certainly interest me.
cause its funny
@@OrangeDied Funny in what way?
This is a remake tutorial from Godot 3, also I think around that time he did a game jam of making a game like doom... I think or i think a lot of people he game jammed with did similar games. It was one of those for sure that probably influenced the first tutorial.
Also most game devs getting into game dev probably have no idea the doom engine is open source. I had no idea for 5 + years. and its a big commitment to switch engines.
@@stabbedbyapanda Sounds reasonable, about it being a holdover tutorial. I do wonder why so many videos on RUclips are about making a Doom clone and nearly never include a link to the original Doom source or even a statement that it is open source. I would guess that it's a perspective issue, that maybe they're as old as me and learned firsthand and expect everyone to just know what they know.
@@anon_y_mousse you are assuming still a majority of people know it exist and that it's free and open source.
If someone told me about a 20year old engine + that isnt heavily updated I wouldn't think twice of not using it.
Hi thanks for the tutorial but I have a little problem when I made the camera shake the shoot animation dosent stop can you please help me?
I know it’s a long shot but can you answer me a question.
I did your tutorial to the T even re-watching and renaming things to exact spellings. The Player script is not throwing any errors even when the game plays but I am unable to use the inputs and the animation of the Gun doesn’t do anything. I’m pretty sure it has to do with the player script inputs (WASD) but I’m not skilled enough to know what I am looking for that is wrong. Do you have any idea what would make the inputs to not work?
Maybe the keybind, but it's weird... the action should be done with no porblem buddy...
Also... for the animation, when you dropped the node "animatedsprite2d" did you press ctrl?
Wolf clone. Doom had...you know - steps, different platform heights.
They are literally the same concept that use the same engine
@@notpxpyt Nope, doom actually has a z-axis, and both floors and ceilings can be at different heights, unlike wolfenstein, why do you think doom was so revolutionary compared to wolfesntein?
I thought those games were made with C++ Allegro library. Does that count as an engine?
Anyone having issues with:
velocity = player.global_position * move_speed
causing a breakpoint error?
Anyone else having an issue with the mouse? Between finishing the player and after adding the enemy, the editor appeared above the game unless I reposition my mouse. And even then it seems to not have been properly captured.
Edit: After checking the original, the same issue also happens so long as it's in Windows Mode. I'm currently using Arch Linux on Forward+ so maybe that's why.
Edit2: Same issue happens in Comparability. I think the issue is just arch so it's only an issue in Window Mode.
I'm on Windows 10, and the same thing happens. Did you ever figure out what happened? I keep relooking at my code to make sure it's not that but I have yet to find errors.
Thanks but could please say how to enemy can get the global_rotation of the player? cause i'm using a 3d model and chasing the player is what I need but I want the enemy to also rotate after the player. thanks
Edit: So now I know how to make my 3d enemy rotate towards the player {[ look_at() ] for those that need to know}. But now my enemy is running to the player backwards
Dragging objects into the script to make references seems weird. There is a hard reference to that specific object in the script? What if you want multiple instances of a script with references to different things? Or if you want to dynamically change the reference?