- 19
- 10 293
curtjs
United States
Приєднався 28 кві 2021
Game development is hard. I made this channel to help new game developers learn important skills. Enjoy!
Mixing LOW RESOLUTION with HIGH RES | Godot Viewports
Using the power of viewports, it is possible to run specific scenes at a lower resolution than others. This can allow you to create a game that runs at a lower resolution, while still being able to use high resolution UI elements. Enjoy!
Переглядів: 590
Відео
LOW RESOLUTION Pixel Art in Godot 4
Переглядів 62912 годин тому
If you want your Godot 4 game to have a retro look, reducing the resolution can be a simple solution. In this short tutorial, I will discuss how to reduce the default viewport size in Godot 4.3. Enjoy!
EASY CAMERA SHAKE in Godot 4 (Tutorial)
Переглядів 485День тому
Camera shake is a great way to add impact to your game. This video will show you how to add a super easy camera shake mechanic to your game in less than 15 lines of code! Enjoy!
How To Use TYPED DICTIONARIES in Godot 4.4
Переглядів 110День тому
Typed dictionaries are finally here in Godot 4.4 beta 1! Here's a quick crash course on how to use them.
Godot Multiplayer WITHOUT Port Forwarding | Noray + Godot 4 Tutorial
Переглядів 74814 днів тому
So you've made a multiplayer game in Godot, but now you want to play with people outside of your local network. This can be hard to do, as it would typically require port forwarding. In this short tutorial, I will show how to set up Noray to facilitate connections. Netfox/Noray: foxssake.github.io/netfox/latest/ Source: github.com/curtjs/multiplayer-arena/tree/part4
Multiplayer Projectiles, Guns & Spawn Points | Godot 4.3 Multiplayer Pt. 3
Переглядів 47214 днів тому
In this episode, we will look at how to add projectiles, guns, and spawn points to our multiplayer arena game. Source: github.com/curtjs/multiplayer-arena/tree/part3
Adding MULTIPLAYER to ANY Godot 4 Game
Переглядів 1,3 тис.21 день тому
Welcome to part 2 of my ultimate Godot 4 multiplayer series! In this episode, we will look into adding basic P2P multiplayer to our game. See the source code here: github.com/curtjs/multiplayer-arena/tree/part2
The ULTIMATE Godot Multiplayer Tutorial | Pt. 1
Переглядів 59221 день тому
Welcome to the ultimate Godot 4 tutorial series on UA-cam! You'll learn how to make a multiplayer game and use noray and Linode to make it easy to play with friends. Enjoy! Part 2: ua-cam.com/video/fEkUc2Nrhx8/v-deo.html Assets: www.patreon.com/posts/godot-4-pt-1-119582962?Link&
Make a FUN Grappling Hook in Godot 4
Переглядів 859Місяць тому
Learn how to make a grappling hook in Godot 4.3! This is the same code that I used in an abandoned game project, figured I'd share it with you guys! Source Code: github.com/curtjs/grappling-hook-2d/tree/main
How to Spawn Moving Pipes | Flappy Bird Pt. 2
Переглядів 73Місяць тому
Welcome to part 2 of the Flappy Bird clone series! We will look at how to add pipe spawning to the game.
Make FLAPPY BIRD in Godot 4.3
Переглядів 2012 місяці тому
Learn how to make a flappy bird clone in Godot 4.3. In this section, we will add movement. Assets: drive.google.com/drive/folders/1yOC4VjFAaH3W_6sQhKE0-ETqo7wzTfNi?usp=drive_link
How to Make a 3D Grappling Hook in Godot 4
Переглядів 1,1 тис.3 місяці тому
Learn how to make a grappling hook in Godot 4.3 using Hooke's Law! Source Code: www.patreon.com/posts/godot-4-3-hook-115120454?Link& Chapters: 0:00 Intro 0:35 Scene Setup 1:24 Scripting 9:52 Rope 15:04 Final Touches 16:00 Finished Project
Godot 4.3 Gun Sway in 5 Lines
Переглядів 5513 місяці тому
Learn how to add gun sway to your Godot 4 FPS game in 5 lines of code. View the source code and written tutorial on my Patreon! www.patreon.com/posts/godot-4-3-gun-114929873
Life saver THANKS A LOT
I have dowloaded the hole progect from the git repositori and it only works whene conecting to another instance in the same computer, while tring to conect to a friend it doesn't work.I am not shure why as i am a total beginer in multiplayer maters.
That’s strange. I’ll do a test tomorrow and see if that’s happening on my end. It could be an issue with the Noray server
Tutorial on fixing blurry UI elements is out now! ua-cam.com/video/81LSqXSon3Q/v-deo.html
It's great! But I always see these tutorials synchronizing players by instancing them into the scene, but is there a way to synchronize an already placed player scene from the game world instead without instantiating?
Absolutely! The MultiplayerSynchronizer should work regardless of how the node is instantiated (whether through the multiplayer spawner, or through the editor), the only issue is figuring out who should have control over the node (multiplayer authority)
amazing! Will you also make a tutorial on how to migrate the functionality so that we don't have to rely on tomfol_io and instead use our own server from a server service provider? EDIT : nevermind! saw in the comments that you're already going to do that, awesome! also- -I think that covering player disconnects/timeouts (removing the player replication after a while of their client not responding) and general connection loss would also be essential
Yep, a self-hosting tutorial is in the works. I'll definitely go over disconnecting and whatnot in a future series!
Good job...alas, I feel like I'll never catch on.
Awesome tutorial! can you make another one that explains how to do this in a 3d setting?
Noray implementation should be the same regardless of whether the game is 2D or 3D. In the future though, I’ll make a complete 3d multiplayer series!
@@curtjs-dev okay thanks!
tysm i couldnt figure out how to render the game at a lower resolution and upscale it to fit the window size and the rest of the settings were also useful for my use case
Thanks for the resizing info. Scaling up was simpler in 3.5. I’ve just learned how Window width and height override work to scale up a pixel game.
Can you create a multiplayer for 3d game. Host and join
Absolutely!
Thanks 😁
Nice! The other thing I ran into lately as I'm learning Godot is that you you need to make sure your texture compression for sprites is turned off.
I have a problem : every time i jump it doesn't jump smoothly cause it jumps too fast no matter the settings i change
thank you very much
Hey! My game crashes as soon as I press the left mouse button to activate the grapple and I get the error: 'Invalid access to property or key 'velocity' on a base object of type 'Node2D'
Nvmd I had the script on the Raycast2D instead of the Node2D 🤦♂
Glad you figured it out!
Did u take orders? I need some features for my multiplayer game like combat, inventory, etc
I do not, sorry!
helpful video! i'm incredibly new to programming and just wanted to make a small thing for friends and i, and a lot of other tutorials weren't as comprehensible and easy-to-do as this for a beginner like me, so thanks a ton!
hi. I was watching this video and remembered about node DampedSpringJoint2D. It was interesting to see your decision. I'm trying to make magnetic balls that stick together like a bunch of grapes, rolling over each other. but I don't have enough experience. if you have time, I would appreciate it. because I haven't seen any lessons on this topic.
3:02 you say you use Noray's servers for testing, can you suggest what to do once I am out of the "testing" stage?
I would recommend hosting Noray yourself on something like Linode, AWS, Oracle, etc. I'll make a tutorial soon on how to use Linode to host it!
I love the explanation, Not too fast where I had to pause every second to see what is happening but also to the point. Please continue making these, They are really helpful.
@@Theposhestcat Thank you!
Hey can i use this script on my game i wanna make spider man like ? :)
Absolutely! You’re free to use it however you like
@@curtjs-dev Man good news !! i added a feature to the script that make the grappler remeber last block you aimed at before you fall so the grapple gun give you 2 seconds to left click before the you lose the target block this will make you more longer in the air..
It's common to lead private functions and variables with an underscore to mark them as such, for example: "_shoot()", it's still public on a technical level though (you can manually call _shoot even from outside the object, even if it has a leading underscore) but its still nice practice
cool video! , if the _ notation of the class memeber is like in python, then one underscore is for proteced memebers, double underscore is for private members
I think in this case, it would be a good idea to name your camera as something specific (camera2DWithShake) or something. This way, you also get autocomplete in your IDE, and you are sure that you are not by accident calling this "trigger_shake" function on a camera that doesn't have this function.
Great suggestion! Setting a class_name for the camera script can be useful, I just usually don’t do it unless I’m accessing the camera in a bunch of different places or calling a lot of methods on it
I tried the fix for the last error, making apply_damage func an rpc, but it didn't make the fix and now I'm getting "RPC 'apply_damage' on yourself is not allowed by selected mode." Great video btw!
Make sure you’re using body.take_damage.rpc(25) instead of body.take_damage(25) Also make sure the take_damage function has the “any_peer” tag. If both of those are correct, you can try adding the “call_local” tag to the take_damage function
Legend!
can you add the ability to make a pause menu? great tutorial btw!
We need something like that for unreal for sure
you got my sub dude
I like how you create and explain, hope you make a 2d RPG Multiplayer too with a character has a animatedsprite2D I am a aspiring game dev and I think I can learn new something about in this channel. hope you make more videos.
for some reason if I host i can shoot but as soon as another player join, when I shoot THEY shoot (and I dont) but if THEY shoot thay can't. like my Muzzle switched to new player. How this can be fixed? Also how to fix new player cant' shooting?
I wanted to move shooting code into weapon itself (so later i could make more different weapons) but it is not working, so I followed your tutorial and it work perfectly, but only one weapon type
It sounds like an authority issue. In your weapon script, are you making sure that client has authority over the node before getting input? You’ll need a line like this before you get input: if !is_multiplayer_authority(): return
Hi! Your videos are great, and I look forward to watching more. For some reason I am getting handshake failed for the relay as well. Is there anyway I can show you what I've got to see what may be going on?
Sure! The source code is on GitHub (link in the description) if you want to compare your code. Feel free to message me on discord, my username is jcurtis06
Will there be episode on lag compensation? Looking forward to the PvE series!
I’m planning on making the PvE series a more full fledged game, this series was more of a crash course. So I will hopefully go over lag compensation in the PvE series
will there be an epidsode on setting linode server?
Yep! Probably within a week or so
Great tutorial but man... please slow down writing the code xd I had some instances when you just wrote something and immediately move to another section so it was hard to keep up with writing with you and not miss a part.
Thanks for the feedback! I'll definitely slow down next time haha
I like it personally, makes the video shorter
I like the pacing as well, playback speed can be easily adjusted in the video settings anyways
I just mean that sometimes he blitz through code after writing it and it was easy to miss something. The tempo itself is fine ;) additional second after finishing writing that's all
wow!!
OH MY GOD Where have you been all that time?! You are literally a savior of my local project
Will u do a steam version too ?
I’m hoping to sometime in the future!
Now, add enemies.
It’s on the todo list!
@@curtjs-dev thanks. All multiplayer tutorials I find just do the easy part, the players. I tried to add enemies and bullets but they didn't work well.
Wondering what would be the best approach for a PvE type game, Like handling spawns and sync of enemies and how to do it in a way that doesn't consume a lot of bandwith. Loving the series btw
That’s a good idea! I’ll make a part 5 that’ll cover enemies. Right now I want to focus on implementing NAT punch through so the game is actually playable with friends, but after that, I’ll dive into enemies. Off the top of my head, I’d say have the “hosting” player handle spawning the enemies. Depending on the number of enemies, it would probably be alright to use the MultiplayerSynchronizer and sync the positions. If there’s going to be a lot of enemies, you could synchronize the enemy targets and let the clients calculate the movement instead.
@@curtjs-dev Awesome! Thanks for the help. Looking forward to the new episodes!
ive never even tried godot, watched this at random and now i want to
Godot is by far the easiest game engine for multiplayer in my opinion! Definitely should give it a go
Love the series, new to multiplayer but great way to structure the format with out unnecessary long videos. A general question, if instead of destroying the bullet or smililar on each client as a call from the server. Could we not instead let each client handle the destruction even if it does not have multiplayer authority and simply do that for the damage. To minimize data transfer. (bullet.gd, row 8) Or would that generally be used for exploitation and it's a better choice to let it be managed by the server? I do understand that this can be diffrent for each game depending on each exact function and the wanted outcome, but im just curious from your point of view. (Hopefully you don't take this as backseat programming, video was great i just want to learn how to approach diffrent functionalities when it comes to MP)
@@dnlci Great question! Obviously there’s a million different ways to go about it. In my case, I chose to have the peer who shot the bullet handle collisions, spawning, and deletion, while letting all other peers handle movement. The reason I didn’t let each peer handle deleting the bullet is because of latency. Let’s say Player 1 shoots a bullet. P1 will see the bullet immediately, while P2 will have a slight network delay. Since the bullet should immediately start moving forward after being spawned in, the bullet that P2 sees may end up being slightly behind what P1 sees. If we let each peer handle deletion, there’s a chance that P2 could accidentally delete a bullet that is still visible on P1. The case that this happens is pretty slim, but I prefer to have as much consistency as possible. One RPC to delete the bullet won’t have a large effect on bandwidth. That being said, I don’t see any serious issues with letting all peers handle deletion. With either setup, there’s going to be an occasional “DUDE THAT BULLET DIDNT HIT ME”. Just make sure there’s only one peer handling dealing damage. In P2P games, exploitation shouldn’t be a priority. It’s pretty easy to exploit the game since the peers are all talking to each other, rather than talking to a dedicated server that can verify information.
Part 3 is out now! See it here: ua-cam.com/video/EvKteWXcnQU/v-deo.html
waiting for part 3
Hoping to have it done later today!
@curtjs-dev damn you are so fast, keep it up brother :D
@@onnnnn20 Thanks! Part 3 just dropped
Shoutout to you. Might have fixed a big problem i have in my game
I waited for the second episode, glad it came out !
PART 2 IS OUT! See it here: ua-cam.com/video/fEkUc2Nrhx8/v-deo.html Thanks for all the support so far!
I was searching this one for a while ! ❤
Excited to see where this goes! Been wanting to get into Godot multiplayer
I'm waiting
Part 2 is here! ua-cam.com/video/fEkUc2Nrhx8/v-deo.html
more mayhaps