Improve Your Game Feel With Coyote Time and Jump Buffering

  Рет қаралды 31,141

Game Endeavor

Game Endeavor

4 жыл бұрын

Making your game feel fair and responsive is absolutely critical. Interestingly enough this means that you will need to make your game unfair, but in favor of your player. Coyote Time and Jump Buffering are commonly used tricks in platformer games to make the whole platforming aspect (admittedly a pretty important aspect of the game) feel a lot better. Coyote Time is a brief period of time after a player walks over a ledge that they are still able to jump (and in this video even defy gravity), and Jump Buffering is a brief period of time (starting to notice a pattern yet?) where the player presses the jump button but they're not grounded, we remember that they pressed the jump button, and cause them to jump.
Become a patron to get exclusive content and support the channel:
/ gameendeavor
Join Our Community! We look forward to welcoming you.
Discord: / discord
Twitter: / gameendeavor
Into: Splashing Around - The Green Orbs

Пікірлер: 53
@adamsmiddy
@adamsmiddy 4 жыл бұрын
Input bufferring is something ive been experimenting with. These vids are so timely. Ty!
@GameEndeavor
@GameEndeavor 4 жыл бұрын
Glad it was useful. :) Timers can be extremely useful in the right hands. Thank you for watching!
@bruninhohenrri
@bruninhohenrri 4 жыл бұрын
WOW. You are a such a great developer ! Thank you for the content
@davidb4020
@davidb4020 3 жыл бұрын
Every video on your channel I discover is awesome. Keep doing this.
@GameEndeavor
@GameEndeavor 3 жыл бұрын
Thank you. :) I'm glad you enjoy them.
@notrhythm
@notrhythm 4 ай бұрын
at 3:22 if you do coyote_timer.is_stopped() && !is_on_floor() instead, you wouldnt have to set the velocity to 0 when you start the coyote timer. as this is where that residual velocity comes from, it's being applied all the time while you are on floor.
@ferdibayir2433
@ferdibayir2433 4 жыл бұрын
I applied it and my game looks amazing. Thank you very much :)
@GameEndeavor
@GameEndeavor 4 жыл бұрын
Nice! :) Glad it was useful.
@lumumdare3289
@lumumdare3289 4 жыл бұрын
realy nice video, i love this channel thanks
@IustinNitza
@IustinNitza 3 жыл бұрын
This is exactly what I was needing to improve my game. Thanks a lot!
@GameEndeavor
@GameEndeavor 3 жыл бұрын
Any time! I wouldn't make a platformer without it. :)
@thedevine3756
@thedevine3756 4 жыл бұрын
Hello I’m from the ‘how to add health’ first let me say you are an awesome game dev and have helped me out but, the vid I came from seems to not have many of your replies any more since it was a while ago. In that video many of us our wondering how to actually make things use the damage function. You never explained how to make things damage you. I hope I’m not being rude, cheers!
@aldanasjuan
@aldanasjuan 2 жыл бұрын
I pressed like when I saw 4:17 😊
@WeLoveGod9
@WeLoveGod9 4 жыл бұрын
This platforming series is such a goldmine. Do you have any plans to cover enemy AI in future videos?
@GameEndeavor
@GameEndeavor 4 жыл бұрын
Thank you. :) I could but I don't have any ideas for topics tbh. Is there anything in particular that you would like to learn?
@WeLoveGod9
@WeLoveGod9 4 жыл бұрын
@@GameEndeavor Sorry if my English is not perfect. Right now I'm struggling with a basic enemy AI for a 2d action platformer (I want them to patrol and attack the player when in range), I can't really find a detailed tutorial for that in Godot. Since you said you don't have ideas for topics, I can also give you another few suggestions: Dashing Melee attacks Combo system Parry/block system
@GameEndeavor
@GameEndeavor 4 жыл бұрын
@@WeLoveGod9 To be clear I meant topic ideas for enemy AI, I'm not sure what about it people want to know. :) Though combo system and parry / block system is not on my list, though those are fantastic ideas. I'll add them. I didn't go into the logic for it, but iirc I did go over the flow of logic for something similar to this for the Sleeping Angel at the end of my State Machine video. It won't answer a lot, but might be worth looking at in the meantime. Your english is great, you have nothing to be sorry about. :)
@lifesymphony61
@lifesymphony61 2 жыл бұрын
Good one!
@GeekzAnonymous
@GeekzAnonymous 3 жыл бұрын
Awesome tutorial. Where do you cover the rest of the _get_h_weight(): function with all the stuff in the else statement?
@GameEndeavor
@GameEndeavor 3 жыл бұрын
Thank you. :) That method originated in the first player controller script as just a means of controlling acceleration/deceleration while in air or while grounded. After that it was expanded on a little further in the Wall Jump tutorial to give the player more control while in the air, namely after a wall jump. Player Controller: kzfaq.info/get/bejne/bbBzhdOKmMjNips.html Wall Jump: kzfaq.info/get/bejne/qLWXadJ829Cndac.html
@GeekzAnonymous
@GeekzAnonymous 3 жыл бұрын
Excellent! I did watch that one, but I haven't implemented it yet, I will definitely have to do a more in-depth viewing in the near future!
@ElikChan
@ElikChan 3 жыл бұрын
You are a life saver :) Seems like I have to try coding.... phew
@Rubafix989
@Rubafix989 4 жыл бұрын
Amazing content
@GameEndeavor
@GameEndeavor 4 жыл бұрын
Thank you. :)
@user-xh3nh6qn5m
@user-xh3nh6qn5m 3 жыл бұрын
Can someone give me a link where I can download this project (or a similar one) because I can't get it to work. Thank you 🙂
@bitzoharley8100
@bitzoharley8100 4 жыл бұрын
I don't understand why some people give dislike in the video :/ and very awesome tutorial
@GameEndeavor
@GameEndeavor 4 жыл бұрын
Could be any number of reasons. It's to be expected, so I don't worry about it. :) Thank you for watching!
@ddvb1980
@ddvb1980 3 жыл бұрын
Man I love you so much, thanks a lot for all these video's man. Coming from an inept game dev who knows a bit what he is doing ^^ But with massive help like these vids, my game starts to be a playable game WHOOOHOOO
@jkasar
@jkasar 2 жыл бұрын
The script didn't work for me cause I'm stupid and stubborn but I have found another way. If you're also both stupid and stubborn this may help. Instead of using a timer, I just extended two downward facing raycasts and adjusted them to my liking. They're not even touching my character's collision box. The code goes, if $Raycastdown one and two is colliding, jumps_left = 1. It gives me roughly the same effect. I'm sure I'll come across problems with that but it works for now.
@MostlyMadProductions
@MostlyMadProductions 4 жыл бұрын
Can you do a tutorial on how to do multiplayer in Godot with Steamworks
@erikgiesenloo1871
@erikgiesenloo1871 3 жыл бұрын
I tackled this on my own - then watched your tutorial. I activated the timer in the state machine and checked for !coyote_timer.is_stopped(). THe only thing i was missing was to turn off the timer once the player jumps
@murmean
@murmean Жыл бұрын
Could you help me a bit with it? Cause I tried implementing it in a state machine but dont really know when to call coyote_timer.start() / coyote_timer.stop()
@ferdibayir2433
@ferdibayir2433 4 жыл бұрын
Hello bro. You are one of my best tutorial providers in youtube and I really appreciate for it. I hope that you can give me a tip to fix my problem with my game. I want to release my very cool 2d platformer game soon but I have lag problem on my tablet. My enemies(kinematic body) cause the problem. I use queue_free when they are killed and I also use VisibilityEnabler2d to pause them when they are not in the scene. But I cant fix the lag. Could you please just give me an idea about the solution if you know anything that can be helpful?
@GameEndeavor
@GameEndeavor 4 жыл бұрын
Thank you. :) I don't have much advice unfortunately as the lag could be a number of reasons. Something I will suggest though is to check your collision pair count in the debugger tab. If you have large area collisions then this can drain your performance fairly significantly in my experience. You can also use the debugger's profiler and monitor to try and pin down the cause of our lag. It gives you some detail as to what's going on in the background.
@ferdibayir2433
@ferdibayir2433 4 жыл бұрын
@@GameEndeavor Thank you bro, your advice worked perfectly :) I didn't know how to monitor the performance. After checking the profiler, monitors and video ram tabs, I noticed that I had many collisions on my shape which different conditions and sending various signals to many places. When I deleted the areas and collisions, the lag problem got fixed :) I also noticed that my object sprites in my tileset were consuming too much resources on the video memory. I will fix that problem tomorrow. And the third problem seems to be the other signals and conditions in the game. I have too many checkers to monitor and change many variables in the game and that cause a heavy load as I guess. You solved my problem. Thank you very much bro :) I wish to launch my game soon. You will be one of my contributors to be in my thanks list :)
@rainingrainy152
@rainingrainy152 4 жыл бұрын
Can you do a video on a enemy state machine (idle,chase,attack)?
@GameEndeavor
@GameEndeavor 4 жыл бұрын
I plan to do some enemy ai stuff at some point, yes. :) It keeps getting pushed back, but I need to do one soon.
@rainingrainy152
@rainingrainy152 4 жыл бұрын
@@GameEndeavor No worries! You are a very talented developer, and I know that any video you put will be amazing!
@GameEndeavor
@GameEndeavor 4 жыл бұрын
@@rainingrainy152 You're too kind, thank you. :)
@pedro.zurita
@pedro.zurita 4 жыл бұрын
you have a very good way of teaching, have you considered making a full course intro yo godot to full finihed game? that teaches beginner to intermediate principles? $30? hint hint
@GameEndeavor
@GameEndeavor 4 жыл бұрын
Thank you. :) I have considered it, though it hasn't been a big priority. Perhaps I'll sit down soon and plan one out. Anything type of course in particular you'd like to see?
@pedro.zurita
@pedro.zurita 4 жыл бұрын
@@GameEndeavor I think just an intro to Godot, especially GDscript...I come from a background in web development and apps... similar but not quite the same as games... GDscript I've heard is like python...other than that it's pretty alien to me...and even to most people used to c#...but your style is good...not dull or confusing.
@GameEndeavor
@GameEndeavor 4 жыл бұрын
@@pedro.zurita That's one of the topics I've thought about doing a course on, so I may just do that. :) Thank you for the kind words.
@basteagui
@basteagui 4 жыл бұрын
huh... might consider this but i don't think i will use coyote time. my player hitbox is already pretty large and the bottom is flat, not like the oval you're using (i am using a rectangle) so the jumping in my game does let you jump even when the feet of the character is already not on the ledge.
@GameEndeavor
@GameEndeavor 4 жыл бұрын
I meant to mention this in the video actually. That's how coyote time used to be implemented in the days of old, just using a larger collision area. So that is perfectly valid. :) Personally I prefer to do it timer based because your player doesn't push up against the wall enough with a larger collision area. I use a rectangle for collision myself. Personally I despise capsule collision for player controllers, but it tends to be a popular alternative so I mentioned it. Too many platformers I've played where the developer used capsule collision without coyote time and it just feels awful.
@YippiekayoRom3o
@YippiekayoRom3o 3 жыл бұрын
Can you do one for how to respawn your player when he falls in a pit or how your player collects a coin?
@GameEndeavor
@GameEndeavor 3 жыл бұрын
I don't make tutorials anymore, sorry.
@YippiekayoRom3o
@YippiekayoRom3o 3 жыл бұрын
@@GameEndeavor noooooooo but your community needs u
@domeen0gt895
@domeen0gt895 4 жыл бұрын
hey Endeavor, can you make a tutorial on movement in godot 3.2? i tried to use the 3.0 one but my character just wouldnt move.
@GameEndeavor
@GameEndeavor 4 жыл бұрын
The same movement code from 3.0 should still work with 3.2. The only thing changed as far as I know is that lerping the velocity back to 0 isn't as sudden as it used to be. Your character would still be able to move, it's just transitioning back to the idle animation that's broken.
@jasonking1284
@jasonking1284 3 жыл бұрын
I am going to make a game where the player gets dies as soon as they get too close to the edge.
@GameEndeavor
@GameEndeavor 3 жыл бұрын
Good luck with that. :)
@ferdibayir2433
@ferdibayir2433 4 жыл бұрын
Hello bro. You are one of my best tutorial providers in youtube and I really appreciate for it. I hope that you can give me a tip to fix my problem with my game. I want to release my very cool 2d platformer game soon but I have lag problem on my tablet. My enemies(kinematic body) cause the problem. I use queue_free when they are killed and I also use VisibilityEnabler2d to pause them when they are not in the scene. But I cant fix the lag. Could you please just give me an idea about the solution if you know anything that can be helpful?
10 Tips To Improve Game Feel In Your Games ft Artindi
5:58
Game Endeavor
Рет қаралды 16 М.
Improve your Platformer’s Jump (and Wall Jump) | Unity
8:12
格斗裁判暴力执法!#fighting #shorts
00:15
武林之巅
Рет қаралды 88 МЛН
1🥺🎉 #thankyou
00:29
はじめしゃちょー(hajime)
Рет қаралды 77 МЛН
How to Set Jump Height in Godot 3.0
7:54
Game Endeavor
Рет қаралды 23 М.
New Skills Don't Need to be Boring! | Devlog
8:01
Game Endeavor
Рет қаралды 24 М.
How I do Jump Buffer in Godot in 4 minutes!
4:27
Chaff Games
Рет қаралды 3,6 М.
How I made an Excellent Platformer
8:25
GoldenEvolution
Рет қаралды 250 М.
Unreal Engine 4 Tutorial - Coyote Time
7:47
Ryan Laley
Рет қаралды 6 М.
Get This DIALOGUE System For Your Godot GAME Now
42:50
DeveloperEzra
Рет қаралды 22 М.
Coyote Time Jumping - Now You Know Too - Godot Tutorial
4:56
5 Reasons Your Indie Platformer Game Sucks! (+Easy Fix!)
6:39
Jonas Tyroller
Рет қаралды 232 М.
What size should your assets be? | HD 2D GAME ART
12:10
Nonsensical 2D
Рет қаралды 100 М.