Creating an awesome platformer game - Part 1


2D platformers are some of the most - if not the most - popular types of games. And an obvious question that arises is: what makes a good platformer good? This is not an easy question, of course, but we can slice it and try to cover a few key aspects.

This tutorial targets 2D platformers, but some concepts apply for general game design as well, starting with this rule of thumb: focus on what is special about your game. Let's see what this principle entails.

Focusing on what is special about your game is not just about making some mechanic work well and look beautiful. The whole gameplay experience has to work in synergy in order to make your mechanic pop and shine. Let's use Spinstar as a reference. The game is about using rotations to overcome the challenges that are proposed to the player. That said, nothing else should get in the way of the player's experience. There are many details that were implemented to make the game work as the player intends even if they don't execute it very precisely. On this devlog I want to talk more specifically about jumping.

Jumping is the bread and butter of platformers, thus implementing a flawless jump is key. On a game about rotations, jumping should be as easy as possible so the game feels honest. We don't want to hear the players say "I pressed jump but it didn't work". The two main techniques I know that can help with that are coyote frames and jump buffer.

  • Coyote frames are applied when your character drops from a platform without jumping. For a few (coyote) frames, you can allow the character to jump if the player presses jump, even though the character is not on a platform anymore.


  • Jump buffer is when you register that the jump button was pressed and if the character can't jump on that exact frame, if it's allowed to jump a few frames afterwards, it will jump on the very first frame possible. For instance, if the character is performing an attack and near the end of the attack animation the player presses jump but the way you implemented the attack doesn't allow the character to cancel the attack animation. Well, the player hit jump only 2 frames too early and your game is not about precise jumping, just let him jump whenever is possible. Help your player! Execute the jump for him when the attack animation finishes and he will definitely enjoy the experience a lot more. On Spinstar there's a jump buffer if the player presses jump right before touching the ground to help the player make the character jump as soon as Izzy touches the ground.

How many frames though? Well, only playtesting can answer!

I honestly didn't intend to come up with anything novel and those techniques are widely known. What bugged me was the thought of "Ah, I'm just making my game easier for no reason! Players, get gud!" until I could finally understand why these techniques are in fact important. It helps the player focus on what's special about your game.

Get Spinstar

Leave a comment

Log in with itch.io to leave a comment.