What a fantastic demo! This had a lot of really great insights and I loved how interactive it is.
I would love more options to control the vertical movement of the camera. I was trying to play with a more zoomed in camera, but there wasn't an easy way for the camera to do a "Look-ahead" up and down.
- the air acceleration, control and brake toggles (on the jumping tab) are not explained at all, not on the voice-over, nor with a (?) icon.
- the speed toggle in the Lean section in Juice tab, is not clear either. I found out it is the speed at which the character leans as it runs, but is not intuitive. Plus, I think it has a bug, because if you change direction immediately, the character also leans immediately, instead of leaning back and forward again (at such given speed).
- some preset icons are not clear. I'm guessing mushroom is mario, Strawberry is celeste, bandaid is meatboy, but the circle is sonic? it is not clear at all, and I only figured them out because you mentioned on the voice-over, but they should have labels or something.
Also, it is NOT shown anywhere if you have chosen a preset other than instantly changing the toggles. It should show an icon as an indicator of "current preset" or something.
And as an extra, I attempted to use a Dual Shock 4 controller, but at least on the browser, it didn't get detected (I use DS4windows). I could try downloading the 'game' instead of just in browser, but it should work there regardless.
As a new gamedev -this game really helped me to understand how the controls of the player are one of the most important things in game for it's success.
My only major critiques are that the presets at the end don't feel remotely close. You can see hints of it, but it's definitely not there. And the jump in general feels like it eats inputs a lot, especially with the double jump. The jump buffer does what it's supposed to do, but I feel like it's the bug eating the inputs.
Hey, there's a Turn Speed slider now! Great addition.
One more note for others reading: "Coyote Time" isn't just to be nicer to the player, it also acts as compensation for input delay. There's always some delay between the player pressing buttons and the result showing up on their screen - if their TV or monitor is poorly set up or if the game is poorly programmed, it can be north of 100 milliseconds. As a result, it's very possible for a player to say "That's BS, I totally pressed the jump button before running off the cliff," and be right because their image was delayed from the game's logic. Coyote time helps compensate for that.
My controls weren't that far off from Super Meat Boy. It's amazing how there are many different schemes that each can work quite well while being so different!
by the way, if you add the code "characterMovement" to your game pls tell me how you solve the error about this thing called "movementLimiter" (13 line) because i can´t :(
Hey, I'm a gamedev teacher from Argentina and will definitely use this in class! (Here are my students' games.) Do you have any localization plans for this? As in, if you had a JSON file or Poedit or Translation.io project that I would happily translate into Spanish, would you consider integrating that into the build?
Great work! I would love to play even more of these. Maybe about balancing a simple cardgame, leveldesign or making a shooter feel good. A lot of your videos could be turned into something like this. With a little more polish (like better soundeffects or being able to close the game^^) you could even sell them for a few bucks and maybe get some help, so you can do this alongside your normal videos. I would buy it!
Really cool! One bug I found on windows, if you are on fullscreen and in the "playable" part, not the menu, there's no way to exit the game other than Alt+F4, at least not that I have found. Great work!
I had a lot of fun getting to directly toy with video game physics in this miniature experiment of yours. There's a lot of potential here to expand on what this demo already offers, so I have some ideas of my own to offer.
1. Give more advanced movement mechanics to work with, such as air dashes, ledge grabs, ground slides, jet boots, and more.
2. More movement presets from games that you covered before, as well as some suggestions of my own like the Fancy Pants Adventure series, Phoenotopia: Awakening, AdventNEON, and UNITRES Dreams.
3. A level editor that allows sloped and curved geometry in addition to regular flat surfaces for more level design possibilities.
4. Physics based objects like crates and ropes that the character can interact with.
5. Variable movement speed with the analog stick to allow for subtle adjustments when doing tight platforming challenges.
I'm sure that more concepts can be offered, but this is sufficient enough for me. I look forward to this neat gadget being the Mario Maker of indie games. Perhaps you can even upload it to Newgrounds if the site interests you.
I agree that these would make the toy/tool a lot better, but it does seem like he built a game engine that starts you off with a game. If that's right, then it would take a while to implement much of these.
This might be a faster way to get there: if there was a way to bridge Platformer Toolkit to Unity and show the underlying code, it would let us reverse engineer his process and add more useful features in a shorter amount of time.
This is really cool! My main complaint is that your deceleration/air brake stats seem to be the only things that have any influence on slowing down and holding the opposite direction feels like it has no effect until Kit decelerates on her own. This makes jumps using the Meatboy presets feel really weird and much less precise than they are in the actual Meatboy game.
Other than that there were a few "juice" sliders, namely the two for squash & stretch, that wished I could set to be less than 1 but still more than 0 since once they hit 1 the effect was already a little on the strong side imo. There's also a couple other aspects of the various mechanics that would have been nice to be able tweak, but at that point you'd be expanding the scope of this project and honestly those are more nitpicks than actual criticism.
That aside, it's really nice to be able to get hands on with mechanics like this without having to learn Unity, GameMaker or Godot to do it.
Fantastic idea and even better execution Mark! Hope to see more "Toolkits" like this in the future as it fits very well with your theme and is overall really fun and engaging
All the concepts at play are explained in a understandable way and operate as one may expect to see in a game engine. Great mechanical tutorial. Slowing the time scale to 0.3 creates some cool vaporwave.
There's a bug with double jump making it inconsistent and unreliable. Felt so bad that it was best to just turn it off.
One way I found to trigger this inconsistency was to jump with a single jump head first into a platform above, then land. When you next jump you can't do the seconde jump until you land gain.
Also just dropping off a ledge doesn't seem to allow the mid-air jump a double jump would normally allow.
Finally a quick suggestion, it'd be nice to be able to adjust the jump acceleration and float time in addition to the fall gravity. Default acceleration/float time felt a bit floaty for my tastes.
But overall a fun little tool to play with and get a feel for the type of platformer control I'd implement if I were to make such a game. So good job.
Nice demonstration. One thing I think was missing was the difference between "coasting" to a stop by just releasing your movement direction, and "skidding" to a stop by actively pressing the opposite direction. You can have a more naturalistic default deceleration if the player can choose to pivot on a dime if they need to, plus that animation is a great time to go hard with particle effects.
Also, when I've implemented lookahead, I've included a constant based on the direction the character is facing as well as incorporating their velocity as appears to be done here. Purely velocity-based lookahead ends up interacting with camera smoothing in a way that more-or-less cancels everything out IMO.
It's weird: when I was incrementally tweaking the controls, I had in mind an idea of a sprite with careful, Mario-like controls. But in the end I found that I'd created something in which the gameplay was a case of pressing forward and learning the jump timing, which was actually quite fun, just not in the way I thought.
I'd be super interested to be able to test this in a play area with some verticality. Apart from anything else that'd really show the difference terminal velocity would make.
While I have no plans on making a 2d platformer anytime soon, this
was still really insightful to see everything that goes into even the
littlest things like a character controller
← Return to video essay
Comments
Log in with itch.io to leave a comment.
Super Mark Brown Maker when?
Hopefully after the magnet game, we don't want to overload Mark.
Thank you so much for your game! Learned how hard it is to tweak a nice movement :(
first time learning about platformers
This is cool! Thank for game!
可以添加中文吗?
Very cool! I just don't know how I managed to get myself stuck in a wall
What a fantastic demo! This had a lot of really great insights and I loved how interactive it is.
I would love more options to control the vertical movement of the camera. I was trying to play with a more zoomed in camera, but there wasn't an easy way for the camera to do a "Look-ahead" up and down.
I think having the *zoom* also change like lookahead would be really good - the speed of a platformer would be even more pronounced! :)
Very nice demo!. I learned a lot.
Just some opinions:
- the air acceleration, control and brake toggles (on the jumping tab) are not explained at all, not on the voice-over, nor with a (?) icon.
- the speed toggle in the Lean section in Juice tab, is not clear either. I found out it is the speed at which the character leans as it runs, but is not intuitive. Plus, I think it has a bug, because if you change direction immediately, the character also leans immediately, instead of leaning back and forward again (at such given speed).
- some preset icons are not clear. I'm guessing mushroom is mario, Strawberry is celeste, bandaid is meatboy, but the circle is sonic? it is not clear at all, and I only figured them out because you mentioned on the voice-over, but they should have labels or something.
Also, it is NOT shown anywhere if you have chosen a preset other than instantly changing the toggles. It should show an icon as an indicator of "current preset" or something.
And as an extra, I attempted to use a Dual Shock 4 controller, but at least on the browser, it didn't get detected (I use DS4windows). I could try downloading the 'game' instead of just in browser, but it should work there regardless.
the circle is a sonic ring
Awesome tool
Amazing resource! I learned new things, thank you for this!
As a new gamedev -this game really helped me to understand how the controls of the player are one of the most important things in game for it's success.
My only major critiques are that the presets at the end don't feel remotely close. You can see hints of it, but it's definitely not there. And the jump in general feels like it eats inputs a lot, especially with the double jump. The jump buffer does what it's supposed to do, but I feel like it's the bug eating the inputs.
Criticism aside, this is amazing!
Hey, there's a Turn Speed slider now! Great addition.
One more note for others reading: "Coyote Time" isn't just to be nicer to the player, it also acts as compensation for input delay. There's always some delay between the player pressing buttons and the result showing up on their screen - if their TV or monitor is poorly set up or if the game is poorly programmed, it can be north of 100 milliseconds. As a result, it's very possible for a player to say "That's BS, I totally pressed the jump button before running off the cliff," and be right because their image was delayed from the game's logic. Coyote time helps compensate for that.
My controls weren't that far off from Super Meat Boy. It's amazing how there are many different schemes that each can work quite well while being so different!
I made Canabalt, and was very happy
I think it would be amazing making this an open-source project...
I hope Mark considers this possibility...
if you go to download you can dowload the 5 codes :D
by the way, if you add the code "characterMovement" to your game pls tell me how you solve the error about this thing called "movementLimiter" (13 line) because i can´t :(
You have an intuitive design here, stop talking, just let me mess around with it
You can skip the audio with P if you like.
Planning on publishing the code for this?
@Mark,
Awesome, as always!
If I can speak accessibility-wise, you are lacking localization :)
As a French sofware engineer, I want to offer my service for French translation, if you are interested!
I hope to hear from you soon!
Thanks and congrats for this awesome ludo-learning tool!
Adrien
Hello, is a linux version coming too? The game works well with wine but a native version would be really appreciated.
Ask and ye shall receive I guess, a Linux build came out hours after you asked
this is really cool
Wow, i'm impressed. This tool is amazing for learning and understanding how a game works !
Fantastic !
Hey, I'm a gamedev teacher from Argentina and will definitely use this in class! (Here are my students' games.) Do you have any localization plans for this? As in, if you had a JSON file or Poedit or Translation.io project that I would happily translate into Spanish, would you consider integrating that into the build?
Great work! I would love to play even more of these. Maybe about balancing a simple cardgame, leveldesign or making a shooter feel good. A lot of your videos could be turned into something like this. With a little more polish (like better soundeffects or being able to close the game^^) you could even sell them for a few bucks and maybe get some help, so you can do this alongside your normal videos. I would buy it!
Really cool! One bug I found on windows, if you are on fullscreen and in the "playable" part, not the menu, there's no way to exit the game other than Alt+F4, at least not that I have found. Great work!
I had a lot of fun getting to directly toy with video game physics in this miniature experiment of yours. There's a lot of potential here to expand on what this demo already offers, so I have some ideas of my own to offer.
1. Give more advanced movement mechanics to work with, such as air dashes, ledge grabs, ground slides, jet boots, and more.
2. More movement presets from games that you covered before, as well as some suggestions of my own like the Fancy Pants Adventure series, Phoenotopia: Awakening, AdventNEON, and UNITRES Dreams.
3. A level editor that allows sloped and curved geometry in addition to regular flat surfaces for more level design possibilities.
4. Physics based objects like crates and ropes that the character can interact with.
5. Variable movement speed with the analog stick to allow for subtle adjustments when doing tight platforming challenges.
I'm sure that more concepts can be offered, but this is sufficient enough for me. I look forward to this neat gadget being the Mario Maker of indie games. Perhaps you can even upload it to Newgrounds if the site interests you.
I agree that these would make the toy/tool a lot better, but it does seem like he built a game engine that starts you off with a game. If that's right, then it would take a while to implement much of these.
This might be a faster way to get there: if there was a way to bridge Platformer Toolkit to Unity and show the underlying code, it would let us reverse engineer his process and add more useful features in a shorter amount of time.
This is really cool! My main complaint is that your deceleration/air brake stats seem to be the only things that have any influence on slowing down and holding the opposite direction feels like it has no effect until Kit decelerates on her own. This makes jumps using the Meatboy presets feel really weird and much less precise than they are in the actual Meatboy game.
Other than that there were a few "juice" sliders, namely the two for squash & stretch, that wished I could set to be less than 1 but still more than 0 since once they hit 1 the effect was already a little on the strong side imo. There's also a couple other aspects of the various mechanics that would have been nice to be able tweak, but at that point you'd be expanding the scope of this project and honestly those are more nitpicks than actual criticism.
That aside, it's really nice to be able to get hands on with mechanics like this without having to learn Unity, GameMaker or Godot to do it.
Fantastic idea and even better execution Mark! Hope to see more "Toolkits" like this in the future as it fits very well with your theme and is overall really fun and engaging
All the concepts at play are explained in a understandable way and operate as one may expect to see in a game engine. Great mechanical tutorial. Slowing the time scale to 0.3 creates some cool vaporwave.
This was really fun! Also I felt like the UI design (including the sound design) was pretty familiar, maybe inspired by Mii Channel on the Wii?
There's a bug with double jump making it inconsistent and unreliable. Felt so bad that it was best to just turn it off.
One way I found to trigger this inconsistency was to jump with a single jump head first into a platform above, then land. When you next jump you can't do the seconde jump until you land gain.
Also just dropping off a ledge doesn't seem to allow the mid-air jump a double jump would normally allow.
Finally a quick suggestion, it'd be nice to be able to adjust the jump acceleration and float time in addition to the fall gravity. Default acceleration/float time felt a bit floaty for my tastes.
But overall a fun little tool to play with and get a feel for the type of platformer control I'd implement if I were to make such a game. So good job.
Nice demonstration. One thing I think was missing was the difference between "coasting" to a stop by just releasing your movement direction, and "skidding" to a stop by actively pressing the opposite direction. You can have a more naturalistic default deceleration if the player can choose to pivot on a dime if they need to, plus that animation is a great time to go hard with particle effects.
Also, when I've implemented lookahead, I've included a constant based on the direction the character is facing as well as incorporating their velocity as appears to be done here. Purely velocity-based lookahead ends up interacting with camera smoothing in a way that more-or-less cancels everything out IMO.
wow love your work man
That's so cool dude. You are the best!!
Really eye-opening!
It's weird: when I was incrementally tweaking the controls, I had in mind an idea of a sprite with careful, Mario-like controls. But in the end I found that I'd created something in which the gameplay was a case of pressing forward and learning the jump timing, which was actually quite fun, just not in the way I thought.
I'd be super interested to be able to test this in a play area with some verticality. Apart from anything else that'd really show the difference terminal velocity would make.
Thanks for developing this. :)
Awesome!
Thanks for great toolkit!
Hope after that practice it help our platformer feel better!
is there a place where I can learn how these mechanics are coded? like how the variables are used
Great lesson!
While I have no plans on making a 2d platformer anytime soon, this was still really insightful to see everything that goes into even the littlest things like a character controller