The only reason I'm hesitant to implement a system like this is that you have to design your levels with that specific setup on every single platform. Would prefer a more code-based approach myself
I understand the concern about level design constraints with a platform-specific setup. A code-based approach definitely offers more versatility and scalability across different platforms. That's the beauty of coding-you have the freedom to iterate and adapt this idea to suit your needs. Feel free to experiment and tweak things to find what works best for you!
Its all about tradeoffs, for handmade levels this approach is ideal because you never have to worry about players climbing where they're not supposed to (it is also easier to test). For a code based approach its easy to generate or handle climbing at runtime, but you need to decide in code about what constitutes a climbable surface, which comes with its own edge cases and jank.
A nice simple way of adding this kind of stuff is to have a raycast in front of the player about as high as they should be able to reach pointing down, then if that gets a collision the collision point is used to somehow check the area above it to make sure it is empty enough for a player to jump up. It would only really work for "gamey" representations of mantling but i think it would work
Hey everyone! Welcome to the climbing adventure! 🧗♂ I hope this tutorial was helpful. If you want to ask me anything, please feel free to let me know your questions here in the comments section. I will gladly answer them. I wish you a wonderful week.🙂 Edit: Hey everyone, a quick addition I forgot to mention! If your player controller's pivot is located in the middle, try adjusting the 'vertical_climb' variable like this: var vertical_climb = Vector3(global_transform.origin.x, (place_to_land.position.y + collision_shape.shape.height / 2), global_transform.origin.z). This tweak should smoothen things out and get it working seamlessly. Give it a shot and let me know how it goes! Happy climbing! 🧗♂
Can you make Player spawner, and whatever how many spawner is placed in scene, you get randomly spawn on them like roblox. And your tutorial is great, keep up the good work.
@@harushinwhatever Thanks for the awesome idea! I'll look into creating a random player spawn system like in Roblox. Really appreciate your support and I'm glad you liked the tutorial!
For anybody encountering issues with the obstacle detector not colliding with your map, get Jolt physics off of the asset store, set it to the current physics engine, restart godot, go into project settings, go into the menu "Jolt 3D" and check "Areas detect Static Bodies" and it should work.
Wow, thank you! I'm absolutely thrilled to hear that you're loving the channel. Your support means a ton to me! I've got loads more content planned, so stay tuned for more awesome stuff. If you ever have any suggestions or ideas you'd like to see, feel free to drop them here. Thanks a bunch for being part of this awesome community!
If you mean the camera movement when the player controller is vaulting/climbing then, that is made with tweens you can check the GitHub link if you are interested. Happy coding!
Hello! You seem very helpful. Can help me or us viewers how to implement a movement system that is perfect for rigid body collisions? I've seen a lot of movement tutorials and I made a bunch of movement types but nothing was as stable as the movement in HL2 from 2004. I'm planning a game where you can manipulate anything like back in the days when HL2, Amnesia etc. Came out. This kind of freedom died out in the years.
The only reason I'm hesitant to implement a system like this is that you have to design your levels with that specific setup on every single platform. Would prefer a more code-based approach myself
I understand the concern about level design constraints with a platform-specific setup. A code-based approach definitely offers more versatility and scalability across different platforms. That's the beauty of coding-you have the freedom to iterate and adapt this idea to suit your needs. Feel free to experiment and tweak things to find what works best for you!
Its all about tradeoffs, for handmade levels this approach is ideal because you never have to worry about players climbing where they're not supposed to (it is also easier to test). For a code based approach its easy to generate or handle climbing at runtime, but you need to decide in code about what constitutes a climbable surface, which comes with its own edge cases and jank.
In my experience, trying to make something 100% robust will take you 10x longer since you need to design the levels anyway.
@@Alenvei I think this can be done using the physics server, its pretty much what you are doing except you would need to add a little bit more checks
@@Dragon20C It's a good idea! I will check it out :)
A nice simple way of adding this kind of stuff is to have a raycast in front of the player about as high as they should be able to reach pointing down, then if that gets a collision the collision point is used to somehow check the area above it to make sure it is empty enough for a player to jump up. It would only really work for "gamey" representations of mantling but i think it would work
Hey everyone! Welcome to the climbing adventure! 🧗♂ I hope this tutorial was helpful. If you want to ask me anything, please feel free to let me know your questions here in the comments section. I will gladly answer them. I wish you a wonderful week.🙂
Edit: Hey everyone, a quick addition I forgot to mention! If your player controller's pivot is located in the middle, try adjusting the 'vertical_climb' variable like this: var vertical_climb = Vector3(global_transform.origin.x, (place_to_land.position.y + collision_shape.shape.height / 2), global_transform.origin.z). This tweak should smoothen things out and get it working seamlessly. Give it a shot and let me know how it goes! Happy climbing! 🧗♂
Can you make Player spawner, and whatever how many spawner is placed in scene, you get randomly spawn on them like roblox.
And your tutorial is great, keep up the good work.
@@harushinwhatever Thanks for the awesome idea! I'll look into creating a random player spawn system like in Roblox. Really appreciate your support and I'm glad you liked the tutorial!
For anybody encountering issues with the obstacle detector not colliding with your map, get Jolt physics off of the asset store, set it to the current physics engine, restart godot, go into project settings, go into the menu "Jolt 3D" and check "Areas detect Static Bodies" and it should work.
best channel that i have ever subscribed!
Wow, thank you! I'm absolutely thrilled to hear that you're loving the channel. Your support means a ton to me! I've got loads more content planned, so stay tuned for more awesome stuff. If you ever have any suggestions or ideas you'd like to see, feel free to drop them here. Thanks a bunch for being part of this awesome community!
Thank you very much. It’s cool information, don’t stop make tutorials. 💪🏻
Thank you for the kind words! Your support means a lot.
I am glad to hear it. I'm looking forward to new lessons!@@Alenvei
What is the declaration of 'camera', 'collision_shape' and 'is_climbing'?
If you're interested, you can check the link in the description for the GitHub repository of this project.
fun stuff tutorial is a bit short tough thanks for the file btw
Amazing video! But I have one dying question, how did you make the camera movement? I think it would be extremely useful for what I'm trying to make!
If you mean the camera movement when the player controller is vaulting/climbing then, that is made with tweens you can check the GitHub link if you are interested. Happy coding!
How can I apply this in a 2D platform? by the way I love your content
Great tutorial. Subbed
Thanks for subscribing! I'm glad you found the tutorial helpful.
Hello! You seem very helpful. Can help me or us viewers how to implement a movement system that is perfect for rigid body collisions? I've seen a lot of movement tutorials and I made a bunch of movement types but nothing was as stable as the movement in HL2 from 2004. I'm planning a game where you can manipulate anything like back in the days when HL2, Amnesia etc. Came out. This kind of freedom died out in the years.
useless tutarial, just made me spend 5 hours on a 2 minute tutorial and i still havnt gotten it to work. Im very disappointed