5 Reasons Your Indie Platformer Game Sucks! (+Easy Fix!)


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.

GitHub Link:

Join Our Discord:

Music by GoodPixelSounds:

Nguồn: https://ecotown-phumy.com/

Xem thêm bài viết khác: https://ecotown-phumy.com/game/


  1. 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. 🙂

  2. 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.

  3. 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)

  4. I applied both of jumpTimer AND CoyoteJumpTimer and I dare say I'm feeling hope once again thanks man really (Like and SUB)

  5. 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.

  6. 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

  7. 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!

  8. 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

  9. This was super helpful, I am currently making my 2nd ever platformer, and this feedback is crazy helpful 😀

  10. 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.

  11. Lol yea I’m super discouraged from this one , I can’t even code yet and this seems so much more complex lol

  12. yeah, i tried your jump timer/delay. it doesn't work. in my inspector, it just keeps subtracting from the time delay.

    oh well.

  13. 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

  14. 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”

  15. 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!

  16. 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 🙂

  17. The first few literally could be solved with an offset on the collider and then you're not relying on unreliable deltatime

  18. 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.

  19. 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

  20. 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

  21. 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.

  22. Awesome tutorial

    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.

  23. You know what?
    Trotz deinem "Se" liebe ich deine Videos!
    Erstrecht dein Video, in dem du einen lamen Knopf amazing gemacht hast! So genial!

  24. Just found this while working on a game jam platformer, this is an incredibly useful and succinct video. Subscribed.

  25. 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.


Please enter your comment!
Please enter your name here