I actually was planning something that required randomly selecting from a list of materials, lol
@randomeyes835413 күн бұрын
Bro you're a legend, my jump code was all over the place, and I love maths so this was perfect for me thank you so much !
@names_garlic25 күн бұрын
4:35 That indentation is CRIMINAL 💀
@erhansevimli821928 күн бұрын
I like the word play with "Game Changer"
@ellwood2k6Ай бұрын
This is such a great tutorial. The clear and concise information, along with good looking pixel illustrations to demonstrate each concept, just makes it so easy to digest. Please do more tutorials 🙏
@EVILGUN-jr5ixАй бұрын
this video was one of the best ive seen for godot yet, I really wish you had some more in depth stuff, even a paid course lol! but I also see you've stopped posting :( hope ur doing well!
@fennecfawx973Ай бұрын
I NEEEEED Jimmy Blitz 2. Brilliant game.
@fibonnaccciАй бұрын
Should I, as a beginner, start with custom resources or with default resources?
@stephenmackenzie9016Ай бұрын
How to add variable jump height?
@MontymashioАй бұрын
amzing!
@FeyFenАй бұрын
For those using this tutorial with later versions of Godot4... OpenSimplexNoise is outdated, you can use FastNoiseLite instead, which has simplex and simplex smooth as options.
@freecultureapi10 күн бұрын
Thanks!
@tofuutekken123Ай бұрын
Quick note: In games like 2D marios (at least the older one) the way they handle jumping is much more straightforward than you'd think. The jump speed is a constant and the only thing that changes is gravity. In SMB1: the jump speed is 4 (or 5 if you're sprinting), and gravity just changes depending on whether you're holding A or if you've already started falling
@sillygoose8037Ай бұрын
Love the video, gonna rewatch it again.
@KDD00632 ай бұрын
too fast and too hard to understand :( Is there a way to select a resource to use in script instead of in the inspector? I have like 200 enemy stats resources but I will only be fighting 1 enemy at a time, so I think it would make more sense to access 1 resource in the script at a time rather than dumping 200 into an array.... does that make sense? I just want to access 1 resource at a time in script, how would I do that?
@Asbjornn2 ай бұрын
Thank you so much, this was so useful for my recent project! <3
@m.a.c.862 ай бұрын
amazing thank you
@darknight-mn8fo2 ай бұрын
I tried to use this for my game. The problem I ran into was that when a jump is intiated and the player collides with a wall before jump_height is reached, the player slides up the wall, till the jump_height, before sliding back down. Is there a way to stop the slide upward, when colliding with the wall. Im new to godot and this is my first game I am developing
@darknight-mn8fo2 ай бұрын
Nvm, found the solution. Thank you for the tutorial
@JuhoSprite2 ай бұрын
Anyone know why time to peak somehow changes the jumpheight? is this supposed to happen??? I just want the jump height parameter to be the single thing determining the height, and jump time to peak only changing the time and not actual jump height
@Pefeper2 ай бұрын
Time to peak should not affect the jump height. Have you tried copying the code from the Github gist to make sure the equations are correct?
@JuhoSprite2 ай бұрын
@@Pefeper ok good so it was something with my code then. I haven't tried using your entire player template. I just ended up not using this method and going back to the guessing game. I do like where my player physics is going tho rn.
@JuhoSprite2 ай бұрын
@@Pefeper also thanks for still replying to comments years after the videos release. really nice of you gotta appreciate that.
@Pefeper2 ай бұрын
@@JuhoSprite of course!! Good luck with your project!
@AshliBlattgold2 ай бұрын
I wish I knew about those sooner, I've spent hours slamming my head against the wall because godot moves around files in the PCK on export. With resources this is a non issue...
@altairlevega66132 ай бұрын
I typed in ResourceSaver.save("user.//savefile/save_file.tres") It gave me an error: Invalid argument for "save()" function: argument 1 should be "Resource" but is "String".
@Lidas112 ай бұрын
1:14 TIP: If you want to create a unique resource variable (you can do it in the new godot version) use "duplicate" when load/preload.
@_gamma.2 ай бұрын
I forked your gist for 4, thanks for the tutorial!
@paulindrome2 ай бұрын
You mention resources are "easy to load". Can you explain how? As far as I know there is no function to LoadAllResourcesOfType() at runtime f.e. which was one of the main reasons I stopped trying to learn Godot a while back.
@CubeOrSomething2 ай бұрын
Finally, a game developer who doesn't yell.
@LolCloyn3 ай бұрын
I watched it 3 times. I still don’t understand why resources are needed
@LangsyGamesy3 ай бұрын
I just used this create a resource with a user defined Enum that is usable across all nodes. You are a saint my friend, keep up the great work!
@TRUFANATIC3 ай бұрын
Thank you so much!
@VoltitanDev3 ай бұрын
Will the setup be different if it was adapted in Godot 4?
@danieloliveira-pq4zy3 ай бұрын
OMG this video is just so great! I really loved the crazy pixel art and music hahaha
@thijsriezebeek7903 ай бұрын
Small tip : in the timed explosive resource, you manually preload a scene for the explosion. Instead you can also make this an export variable of PackedScene. This has 2 benefits, moving scene file doesn't break the loading and you can now have different explosions!
@OrangeLove-um4dd3 ай бұрын
This video's style is funky as hell, dude, that makes it an IMMEDIATE go-to for me to watch!
@felfar1973 ай бұрын
such a nice video :) ♡♡♡
@deamorta61173 ай бұрын
this is good
@LucaHofmann3 ай бұрын
Thank you for the video! Two ideas to improve the code: 1) Make your jump_height value negative (e.g. -100) and remove the -1 multiplications from your calculations. 2) Rename jump_time_to_peak to jump_seconds_to_peak and jump_time_to_descent to jump_seconds_to_descent. Why? 1) Don't add the circumstance that in Godot Y -1 is UP to your calculations if you do not need to. Someone who edits the jump_height is most likely aware that -1 points up. No need to hide that fact. 2) It is nice to know the unit of the time by looking at the variable name. Someone who edits the variable does not have to guess.
@ThalesCardris2 ай бұрын
Although I find this constructive, I think the first one is a matter of preference. I would much rather see positive values in my exports than having to add that - all the time.
@johnnobon4 ай бұрын
I think this is the best video for getting the jump right, with it allowing you to control both the height and the time to reach the height. I think using the default gravity often slows down the jump too much as you reach the peak. One thing this doesn't do is allow you to "short" the jump by just tapping and letting go, or do the jump to full height by holding the button. I got this added in 3D using the following line under _physics_process(delta), and I think it would work in 2D if you reverse the signs: if Input.is_action_pressed ("jump") == false && velocity.y > 0: velocity.y -= 1 You can replace the velocity.y -=1 with whatever deceleration formula you want. You can also add a terminal velocity for your character by adding the following under your _physics process: velocity.y = clamp(velocity.y, -100, 100) replacing the 100s with whatever variables you want to use as the min and max velocity. This makes it so your character's fall speed will not increase indefinitely and eventually become constant. Otherwise you may find your character falling way too fast from big heights.
@Shuhkky4 ай бұрын
I know this is an older video so i probably wont get a reply, but if i move the menu anywhere other than the starting position, the cursor becomes wildly out of sync with the position of the menu. Leading it to "dissapear" but still being functional. Any help?
@Pefeper4 ай бұрын
Are you using the global rect when you're setting the position of the cursor to the menu items?
@Shuhkky4 ай бұрын
@@Pefeper I'm using global_position for setting the position. No global_rect found anywhere
@Pefeper4 ай бұрын
@@Shuhkky The property on control nodes should be rect_global_position. In any case it's hard to know what the exact issue could be without seeing your setup. Can you send some screenshots and a description on the github gist linked in the description?
@Shuhkky4 ай бұрын
@@Pefeper Just sent a screenshot and the script on the Github repository via a comment.
@DavidRycan4 ай бұрын
Spent an hour trying to figure out how to set up Raycasting, only to find this channel and have every question answered concisely and simply. Thank youuuuuuuuu and also I love your animations they're adorableeeeeeeeee
@SantaAzulCTZN4 ай бұрын
So, how do I make the jump forced into a single direction?
@Pefeper4 ай бұрын
Do you mean in some horizontal direction? Like preventing the player from moving mid air?
@SantaAzulCTZN4 ай бұрын
@@Pefeper Something like that. I want the jumps to be like classic Castlevania or fighting games.
@Pefeper4 ай бұрын
@@SantaAzulCTZN You'll need to check if the player is on the ground. CharcterBody already has a method for this (is_on_floor). If your character isn't on the ground, don't modify their horizontal velocity (velocity.x) at all in the physics update
@Gwen_Hemoxia4 ай бұрын
OH MY GOD THANK YOU SO MUCH THE RESOURCESAVER IS SO UNINTUITIVE
@marleystar78564 ай бұрын
Yin yin???????????
@OlmStatic4 ай бұрын
wonderfully creative video, and straight to the point. KZbin needs more guys like you bro
@BrandonScott-zn9vl4 ай бұрын
For those doing this in 3D and your jump height is inconsistent: Make sure this line: [return jump_gravity if velocity.y < 0 else fall_gravity] Is now: [return jump_gravity if velocity.y > 0 else fall_gravity] Also just generally make sure you are applying negative values to velocity.y for gravity...not positive. One wrong sign will mess up the whole thing.
@dungeoncorporation4 ай бұрын
How could you get this ui to loop back to the top or right to left so you could cycle through menu lists easier?
@dungeoncorporation4 ай бұрын
Would you be down to make a turn based combat tutorial similar to Final Fantasy on the NES
@retexcrafted4 ай бұрын
i mean if you weant that just get rpg maker it works far better if you dont want to write the code yourself
@dungeoncorporation4 ай бұрын
@@retexcrafted does it work on mac? I dont want to use rpg maker because all the games made in it look the same, but it would be interesting to see how its code is set up
@retexcrafted4 ай бұрын
@@dungeoncorporation yes the newest rpg maker (RPG Maker MZ) works on mac I believe it is paid but its consistently on sale so that's that and have you played omori? that game used it so as long as your willing to make sprites it will be more than sufficient for making it look like its own thing. as for coding its pretty intuitive you wont need to code much but when you do its just basic Javascript
@Gibbonizer4 ай бұрын
yeah... this doesn't work. Jump height is always off by a few pixels
@Perndoe2 ай бұрын
Is there a fix for that
@DMasterAco4 ай бұрын
Good evening @Pefeper ! First of all, I wanted to thank for the tutorial, it really helped me out on creating the Pause Menu and part of the Settings Menu for the game im currently trying to make, and I wouldnt be able to have a stylish pointer if it wasnt for the help and knowledge that one could have through this video (my many thanks). However, it seems like, after I press the button assign for confirmation on the Resume Button, I bring up the Pause Window again without having to get the Menu back up again with the Start button, which means that while I hide the menu along the pointer/cursor, the cursor/pointer can still access to the menu and bring it back up again. I tried using the paused() function on the Pointer/cursor in an attempt to not only hide the Pause Menu and the Pointer/cursor, but to make the Pointer/cursor unable to be used unless the Pause Menu gets backed up to the screen by pressing Start/Escape, but that didn't worked. Any advice or tip to solve this(Make the Pointer/Cursor not able to Select a Label/deactivate it and activate it again) if I may ask? PD: I hope the week and overall, 2024, is going well for everyone.
@Pefeper4 ай бұрын
I think there's a lot of ways you could solve this, but the simplest would be to keep a boolean variable on the cursor script named something like is_active. At the beginning of process(), check if it's false and, if so, return from the function before processing input. Then just set that variable to true when the menu is active, and set it to false when it's not
@DMasterAco4 ай бұрын
@@Pefeper Thank you very much! By creating a boolean variable and using an if conditional on process() function(if true, run the rest of the present code in process(), if false, pass) i was able to not let the pointer keep going down or pressing the buttons once the pause menu was hidden. I wouldnt be able to do it without your help. Thsnk you very very much Mr. :pray: Something mow im working on is to be able to fix some issues im having with the Settings Window, since once in Settings, if we press on Back button, it goes to Pause Menu yet, while it can detect us of pressing Setting Button, no longer it shows said Menu back up. But yeah, again...thanks...without your hell k wouldnt be able to fix this nor advsnce, i hope u keep having a fantastic week
@BeSerious.studio_official3 ай бұрын
have you fixed it?
@falfit.4 ай бұрын
How can i get a collision on the exit of a collider? Im trying to make accurate bullet penetration but i need to know when does the raycast leaves the collider that it first hit. So i thought relaunching a raycast at the collision point of the collider, just a bit inside it, in the same direction, but i cant make it detect when it leaves the collider? It seems it only detect entering a collider. How can i make it consider exiting a collider as a collision?
@anonymouskitten47154 ай бұрын
Besides saving and loading, can’t I do the rest with custom Nodes? What makes resources special?