Here is why your indie platformer game stinks and how to make a good platformer instead!
It all comes down to making good 2D jump and run controls! In this short tutorial I show you 5 game design tricks that make your platformer feel a lot better!
Almost every successful platformer game out there uses these tricks, so every indie game developer should know about them. It’ll make your game a lot better!
Whether you make your jump and run game in Unity or a different game engine like Game Maker, Godot or Construct 2 doesn’t matter. You will still be able to apply this game design knowledge there.
This is not a coding tutorial. This is simply a short tutorial on how to make really good platformer controls that your players will love!
Making a great platformer is certainly difficult and there’s a lot more to it than just the movement of the character. Level design is hugely important as well.
Nevertheless, the movement is still what makes or breaks your jump and run game in the grand scheme of things.
I’ve seen these gamedev mistakes so often by now. I had to make a video about it, so we’ll hopefully have more quality indie platformers from now on!
What was your favorite takeaway from this little platformer design tutorial? Let me know in the comments! 🙂
Hope your game succeeds.
Join Our Discord:
Music by GoodPixelSounds:
Xem thêm bài viết khác: https://ecotown-phumy.com/game/
I want to apologize for the harsh and provocative wording in this video.
This is certainly not the only correct way to do things.
If you think this is useful, use it. If you don't, then don't. 🙂
I use 3 parameters of gravity to control jumping from the inspector: jump gravity, released jump gravity and fall gravity. I play with them a bit until I think that it feels good.
I want Raymesis to have a good character and redemption arch. Also I want a game where Steven becomes Red (from you know what game)
Bruh what if i don't even make platformers
I applied both of jumpTimer AND CoyoteJumpTimer and I dare say I'm feeling hope once again thanks man really (Like and SUB)
Dude, so you basically compressed the lecture "Alex Rose (Alex Rose Games) – Perfecting Platform Physics" from 45 min, to 6 and explained it a lot better!
Thank you very much.
Another suggestrion is to not use unitys built in drag because it is linear! Implement your own using a drag constant and a squared value of the velocity
0:25 Trick 1
1:10 Trick 2
2:22 Trick 3
4:04 Trick 4
5:13 Trick 5
Thanks very much!
So far, I have implemented Tips 1 and 2 into my game.
I had to use my brain to convert Tip 1 into GDScript,
and it got slightly more complicated because I wanted to make it consistent with the Coyote jump (Tip 2) I made before watching the video
(Counting up from 0 to a variable instead of down from a variable to 0, because computers Add faster than they Subtract).
But it works and my prototype is already much better for it, because I no longer disagree with the computer if I can jump.
By the way, the video is so fast-paced that I can't always read the code, which is good because it makes it much more fun to watch and because I can read the code from the GitHub page.
EDIT: Now I've also implemented Trick 4. That was really easy. Now I have a Super Player Controller!
Make a platformer but you wont be able to jump
Thank you so much!!!
so i thought my plat former that i am currently making looks not bad and youtube recommended me this and i realized all the points explained here are there in my controller script lol so thanks for giving me confidence
This was super helpful, I am currently making my 2nd ever platformer, and this feedback is crazy helpful 😀
Maplestory is my favorite platformer.
Why a platformer? Because we wanna finish that epoch of life of making our own Ma- y'know, game. It's simple. It's also something we've been studying for most of the time. And everyone knows how to play platformers. Especially kids. Other things are harder to research, develop, teach and play, and many of us still wanna be like PewDiePie, Christian Whitehead, Stephen DiDuro, and many other online celebrities to make it big and to meet in real life with our best buddies.
Lol yea I’m super discouraged from this one , I can’t even code yet and this seems so much more complex lol
5 reasons why your youtube video sucks!
De kontrols of your indiegame SACK
yeah, i tried your jump timer/delay. it doesn't work. in my inspector, it just keeps subtracting from the time delay.
Am i the only one who is somehow really scared of jonas in the thumbnail
Is there any other ways to code for the 2 first tips. The timer created a lot of animation bugs for me
5a example: Mario 64 forgot to set a speed barrier for backwards movement when it added speed instead of setting speed, so that's where BLJing came from
What if i said that my game ISN'T TRASH
Thank you, solid tips!!
I’m making a platformer with Clickteam Fusion 2.5, I’ll upload it to gamejolt when it’s done on my gamejolt account “mario64thane”
Your whole life suck Lmao
Those are really some good advises, and all of those is why Celeste feels so good to play! Thank you for making all those videos!
The fix you use to the low jump is the exact same code I use (equalizing the vertical velocity to 0),and I came up with it on my own
Feels nice 🙂
The first few literally could be solved with an offset on the collider and then you're not relying on unreliable deltatime
Why do we need another platformer? Because I feel like making one, and I am part of the world.
Logan? Is that you?
Oh wow, I can still understand the code even if I dont use unity.
Wo in Deutschland bist du geboren @jonas tyroller
This was actually super helpful, thanks!
I'm still new to programming games, so I don't really know or understand how to implement these into my code as it is set up now without breaking something.
can u send the code please, i have a lot of problems with the coyote jump, when i used it in my code, and set the coyote jump time, the player can make a double jump
sorry for my bad english
Code doesn't work anymore 🙁 I made it on my own it just gave you infinite jumps, I even copy-pasted the whole thing it didn't work, it always gives you infinite jumps, idk what is going on
Edit: Fixed it! for anyone having the same problem play around with these values:
Vector2 v2GroundedBoxCheckPosition = (Vector2)transform.position + new Vector2(0, fGroundCheckDistVar);
(the last value is a variable I added to make it easier, that is what you need to play around with
Vector2 v2GroundedBoxCheckScale = (Vector2)transform.localScale + new Vector2(fGroundCheckScaleVar , 0);
Works like a charm now! thanks jonas <3
for the final one I actually set the vertical speed to 10% and added on 20% of my jump strength variable. maybe too much math for a similar result but I like the feel better.
Dieses Video hat mir soooo geholfen, danke 😀
By the way cut the jump speed in a half after GetUp it's great but using Jump Buffer makes the next buffer jump be max high always because when we pressed the jump button before hitting the ground if we leave the button right away when he jump after it the cut speed will not be applied.
You know what?
Trotz deinem "Se" liebe ich deine Videos!
Erstrecht dein Video, in dem du einen lamen Knopf amazing gemacht hast! So genial!
Just found this while working on a game jam platformer, this is an incredibly useful and succinct video. Subscribed.
These are some useful tips! There's a platformer in my mind that I want to make a reality one day, and one thing that's important to me is that the character's movement needs to be quick and responsive, so that it feels like you have complete control over them.
The only exception would be when you're running; I want it to be more difficult to stop yourself or change direction (especially while jumping) because I'd like the player to actually put some thought into when they need to run, rather than just running nonstop like in a Mario platformer where there's not much risk.
the reason is nothing can move because I don't get player moement