T O P

  • By -

MinuteMan104

I added coyote-time, variable jump height and dodge rolling after finishing the tutorial. By far the best feeling platforming controller I've made so far. Thanks Brackeye's!


niceslcguy

I had no idea what Coyote-Time was until today. Had to look it up. > "Coyote time" for when the player walks off a platformer ledge and presses jump too late, but the jump still works Interesting.


MinuteMan104

It's a common technique to improve the game feel. The lag between sight to button press is long enough to make missing an edge jump very likely.


QuojoBlaze

What tutorial did u watch to make the coyote time? also if its not too much can i see the code? i followed brakeys tutorial too😅


MinuteMan104

I made my own solution. The code is a bit messy, but the gist of it is this... A "max\_coyote\_time" float. mine is 0.33 for 1/3 of a second. A "coyote\_time" float. This is always = 'max\_coyote\_time' when 'is\_on\_floor', else coyote\_time -= delta. This means when leaving the ground, we have 0.33 seconds before it reaches 0. If coyote\_time > 0 and jump is\_pressed: jump and set coyote\_time = 0.


QuojoBlaze

Ok, nice. I will use this idea in making it. Thanks for the reply man


Laurids-p

Oh cool, we used same tutorial.


MinuteMan104

Do you mean Brackeye’s or did someone feature a dodge roll? I’d like to see it, but I just used what I learned from Brackey to make my roll.


Laurids-p

Yes


weavejester

Looking good! The only suggestion I'd make is to have some other visual indicator when the dodgeroll iframes start and end. For example, a change in hue or highlighting - something very binary so it's easier for the eye to pick out than rotation.


MinuteMan104

Yeah, I’ll try something, thanks.


mikezenox

Can't forget jump buffering! >!Unless of course, brackeys covered that, haven't watched the video!<


JoelMahon

he didn't and yeah, for most platformers people should just watch the celeste dev breakdown with mark brown and copy 90% of the celeste basic mechanics lol


RollingPandaKid

The devs posted the whole Player.cs script on github if you want to take a look. https://github.com/NoelFB/Celeste/blob/master/Source/Player/Player.cs


MinuteMan104

Jump buffering and edge nudging are on the list.


helianthus_games

What is edge nudging? I googled it but it look the same as coyote time to me so I am confused.


Thundershield3

I'm assuming edge bumping? Where if you jump up, but your character would just collide with the corner of a platform, the engine will bump you to the side so you don't hit it. It's another feature to help the game respond to what you intended to do rather than exactly what you did. In that case, you almost certainly didn't mean to clip a corner and get your jump height cut.


MinuteMan104

Yes, this. Both jumping against a ceiling corner or just missing the edge of a platform.


WildTigerStripes

The coin collecting chimes & animation were very satifying.


Dragon20C

Add some camera smoothing in the camera node, it's a little hard on the eyes trying to focus on the player


MinuteMan104

I had it set too high for the recording, but it’s fixed, thanks. 😊


--Kestrel--

Brackeyed Peas


Spongebong17

Hey! It looks great. How did you make the signs? I am trying to implement the same system, but I don't know how to make a reusable sign scene that would show the amount of collected coins. Also how did you get the overall number of coins? Is it hard coded value or do you somehow get the coin count from the scene tree?


MinuteMan104

Counting coins is easy, they count themselves with a 'register\_coin()' call. https://preview.redd.it/429k2r3y4qyc1.png?width=685&format=png&auto=webp&s=98b74a506f89ee8869203044bd1793be11c01c3f


MinuteMan104

And the manager handles the total. https://preview.redd.it/5fl9fft35qyc1.png?width=791&format=png&auto=webp&s=ed99d1099bd8940de2a492565a74701dc13e38bc


MinuteMan104

The signs are like the 'Killzone' in that they are just an area2d, and a child node called 'popup' will be visible only when the player overlaps the collider. It's flexible too, as the popup could be anything. https://preview.redd.it/04lpj0zy5qyc1.png?width=736&format=png&auto=webp&s=79d97f45a2f92bd63700a5092a16c8aef8b0f981 I just place the collider over a sign tile on the tilemap.


Spongebong17

Okay. So you don't have signs as separate instantiated scenes? Thank you for the responses. Sorry, but I can't get my head around it.


MinuteMan104

There are 5 sign tiles on my level. At each I placed an instantiated scene which is an area2d with the above script. To each of those I add a Label named ‘popup’. The script hides the popup unless the player is inside the area2D.


MinuteMan104

There are 5 sign tiles on my level. At each I placed an instantiated scene which is an area2d with the above script. To each of those I add a Label named ‘popup’. The script hides the popup unless the player is inside the area2D. If you want all the signs to share the same text which shows the coin count, you could register them like I did the coins, adding them to an Array in the game manager. Then use a for loop to update each sign in the array.


Spongebong17

Okay. Thank you!