As a game developer it is your job to make the character move as the player wants, NOT how the player inputs controls. Even if you think your niche is having a very hard game that only makes it more important that your controls are forgiving.
Platforming Tips and Tricks
Anti Gravity Apex
Mechanic: Fall speed slows at the top of the jump (by an almost unperceivable amount)
Benefit: Allows player more control over where thy land, more time to make directional corrections
Use: Makes long jumps look more impressive, players get a few extra frames to pick up collectables that might be just out of reach
Early Fall
Mechanic: Player descends as soon as jump button is let go ending jump early
Benefit: Player able to select exactly where to land without slowing horizontal speed
Use: Good for getting in between small gaps in a wall or not bumping head on spikes
Jump Buffering
Mechanic: When the character is already in the air pressing jump moments before touching the ground will trigger jump as soon as they land.
Benefit: Pressing jump a moment too soon doesn’t feel like inputs are “dropped” and not registered by the controller.
Note: In the interactive example jump will be triggered as soon as possible if the player presses jump 116ms too early, this is probably too much leeway however I wanted to make sure it was easy to activate in the demo.
Sticky Feet on Land
Mechanic: Player gets large amount of friction if backwards is pressed on landing
Benefit: Movement is rapidly slowed so landings can be made without overshooting
Use: Stops players sliding off small platforms after making a long jump, being able to jump back and forth between platforms on either side becomes much easier.
Speed Apex
Mechanic: Direction is changed more quickly mid jump
Benefit: Improved air control
Use: Allows players to go back to the place they took off, more accurately get air collectables, or better respond to moving items.
Coyote Time
Mechanic: Jump still triggered a few frames after running off a ledge
Benefit: Players trying to make a maximum distance jump often wait until the very last moment to press jump, this helps not punishing them.
Use: More fun less about exact timing with each pixel
Note: In the interactive example after walking off an edge you have an extra 132ms where you can still press jump, this is probably too much leeway however I wanted to make sure it was easy to activate in the demo.
Clamp Falling Speed
Mechanic: Maximum falling speed
Benefit: More time to react to what is below you, More control over exactly where character lands
Use: Another tip is to zoom the camera out or move it in their falling direction just to give players a little extra time to respond to what is coming up, it's rare players need to see what they have already passed.
Catch Missed Jumps
Mechanic: If a player doesn’t quite make a jump either lift them up a few pixels or change the collision mask so their feet don’t hit the wall.
Benefit: Running over small gaps won’t instantly drop the player down. Players accidentally running off a ledge are given a little grace to get back on.
Use: A tiny bit of margin is given to players not making a jump. Really it's not helping the player because you are just training them to think they can jump that distance and will still miss just as much, however it is annoying to just fall short of a very long jump especially when exact collision masks can be hard to see with animated legs
Note: This turned out to be a mildly controversial trick. Some people said to just use ledge grabs, however that really slows down the pace of the game so use what is right for your game.
Bumped Head Correction
Mechanic: When moving upwards adjusts player position to avoid collision
Use: When jumping up a narrow gap or trying to jump out of an enclosed passage it’s really annoying as a player to hit your head and start descending right away. Bumped Head Correction just nudges the player horizontally so they don’t collide anymore and can keep traveling upwards.
Corner Clip on Jumps
Mechanic: When jumping onto a platform your feet should clip through the corners on the way up.
Benefit: Allowing the bottom part of your player sprite to pass through floors when you have an upwards trajectory allows you to maintain any speed when jumping onto a ledge, it also stops the jarring effect of just having your feet touch the corner and losing all your horizontal speed.
Note: Was used as early as Super Mario Bros.
Hold Crouch to Stay on Ledge
Mechanic: Holding Ctrl/Crouch/Light joystick push/Sneak prevents you from falling down cliffs.
Use: Holding down a button that slows the characters movement can prevent the player from falling off edges. This allows players to walk along ledges without the risk of them going over the edge.
Benefit: Great for when players want to focus all their attention on something other than their location (like sneaking around an enemy while watching what they are doing)
Note: More common in 3D games especially if the player is meant to be looking at something in particular or camera is tracking another subject that the player is meant to be watching.
Relaxed Semi-Solid
Mechanic: Semi-solid platforms are one way platforms that you can jump up through but the player will stand on top until pressing down or crouch.
Use: If the player does not have enough upwards momentum to fully get on top of a semi-solid platform lower the gravity or give them a subtle boost for the last few pixels so the player doesn’t have to spend another couple of seconds retrying the jump.
Note: Only do this if they are still holding jump because it would be equally as annoying to get placed on top when you didn’t intent to.
Note 2: When placing columns of semi solid platforms the gap between them should be big enough so the player can instantly see which ones can be made in one leap. It’s frustrating to undershoot a jump.
Variable Jump Height
Mechanic: Depending on the horizontal speed or other factors changing maximum height of jumps.
Use: This allow the mechanic of players needing a “run-up” before launching into a jump, this can be used for puzzles where players need to clear space for the jump.
Note: This can make animations look more natural
Note 2: This works best with long flowing levels where you want to encourage players to maintain their speed.
Jumping Graphs For Platformer Games
I’m gonna start calling these jumping graphs Zoetropes and hope it catches on.
Battle Block Theater
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.6s |
1.4 |
16 |
18 |
17 |
36 |
NOTES:
Can double jump.
Super Mario Bros
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.8s |
4.8 |
31 |
20 |
20 |
53 |
NOTES:
Faster run speed makes Mario jump higher
Super Mario Maker 2
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
1.9s |
4.1 |
57 |
56 |
58 |
115 |
NOTES:
Faster run speed makes Mario jump higher
Can be on sub-pixels unlike the original
Stays in the air twice as long as the original
Super Mario Maker 2 can emulate other engines in it
Cuphead
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.7s |
2.5 |
22 |
18 |
23 |
42 |
Limbo
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.8s |
0.6 |
28 |
23 |
29 |
53 |
NOTES:
Can repel up edges.
Cant change direction in air
Speed Runners
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
1.1s |
2.1 |
29 |
39 |
30 |
70 |
NOTES:
Can double jump
Celeste
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.6s |
1.2 |
21 |
17 |
22 |
40 |
NOTES:
Gets a Dash
Can Wall Jump
Low Gravity at apex
N++
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
1.9s |
3.9 |
62 |
52 |
63 |
116 |
NOTES:
Takes ages to build up horizontal speed
Can wall jump
Sonic
Compare to new Sonic Mania
It seemed like a mandatory public service that I check that Sonic Mania is identical frame by frame with the original Sonic.
The curves are so very close but I think they have made two changes that are very much improvements and I don’t think people would even notice these changes. (or they could be caused by my recording software)
The first change seems to be that original Sonic is at max height for 2-3 frames, however new Sonic is at max height for 5 frames. This is likely to help people make those big long jumps and also gives you a little more air control.
The second change is the fact that if you pressed jump in the original Sonic the next frame the animation would start but you would be 0px off the ground. In the new Sonic the first frame after you press jump you are already 7px in the air. This makes new Sonic feel much more responsive.
I don’t count the fact that the new jump has many more frames in the animation, it looks much smoother but doesn’t technically change anything.
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
1.06s |
2.5 |
31 |
31 |
32 |
64 |
Rayman Legends
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.8s |
2.9 |
25 |
24 |
26 |
51 |
NOTES:
Can wall jump
Can double jump
Can hover
Risk of Rain
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.5s |
2.6 |
14 |
16 |
15 |
32 |
Spelunky 2
Compare to Spelunky HD
Comparing Spelunky 2 with Spelunky HD they both look very similar, of course it's hard to know internally how the hitbox is moving but because even the frames that the animation changes on it the same I assume the internal jump maths is also the same. I know it definitely feels the same ingame.
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.6s |
1.5 |
16 |
20 |
17 |
38 |
NOTES:
Can repel up edges.
Super Meat Boy
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
1.1s |
5.6 |
33 |
31 |
34 |
66 |
NOTES:
Can double jump.
Very fast horizontal speed.
Downwell
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.7 |
4.04 |
22 |
23 |
23 |
46 |
NOTES:
Can shoot to reduce falling speed
Terraria
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.8s |
2.1 |
27 |
23 |
28 |
52 |
Thomas Was Alone
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
1.0s |
4.0 |
29 |
33 |
30 |
64 |
Trine 2
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
1.3s |
1.4 |
39 |
41 |
40 |
82 |
Braid
Show data sheet
Time in Air |
Jump Height in Persons |
Frames going Up |
Frames Down |
Top Frame |
Total Frames |
0.7s |
1.08 |
22 |
19 |
23 |
43 |
Jump type?
Type |
Number |
Percentage |
Faster up / Slower Down |
| 7% |
Slower up / Faster Down |
| 40% |
Same Speed Up And Down |
| 53% |
- Slow going down is good if you want players to land on enemies or precise spaces.
- Slow going up is good if you want players to jump large gaps.
- Same both sides is good if you want a very predictable route.
I would love to collect some data about 3D games however it's just much harder to collect. Maybe if someone could connect me with developers on bigger 3D games I could get some raw debug information from them.
Source code for the interactive platformer at the top: https://github.com/DavidStrachan/GM-Perfect-Platforming-Paragon
Easy Difficulty
Game Development
By David Strachan