Advanced Micro Platformer - Starter Kit

Published 2023-06-12



I have taken my most recent Pico-8 game Kid Bludd, stripped it down to the essentials, and I am releasing it as a kind of Platforming Game Starter Kit.

I removed all logic that isn't game agnostic, so it is hopefully a good starting point for pretty much any platformer.

It's not super complicated, but does a lot of stuff I see many games not doing, which I consider table stakes for a platformer that feel good.

Features the basics:

Forgiving Jumps

This one is very subtle but one of the most important pieces of a platformer. In general the player can only jump if they are on the ground, but this can make the game feel unresponsive when trying to make precision jumps. To give the player some leeway, the game allows jumps for a few frames after the player leaves a platform, and also registers jump presses if they came a few frames before landing.

Mario Sliding

When you change direction while moving, there is a bit of a slide before moving in the new direction.

Air and Ground Friction

Tunable values for both how much the player slows down while in the air and when touching the ground. This is critical for allowing the player to land on small platforms, while maintaining a good feeling in the air.

Variable Jump Height

Tap to jump a small amount, and hold to jump higher. Again very critical for precision jumps.

Pass Through Floors

Some floors allow the player to jump up through them, but not down. Really important for any levels with verticality, but also fun for horizontal scrollers.

Camera Scrolling Threshold

This cart uses the same camera style as metroid, where the player must leave a small area in the center of the screen before it starts scrolling. This give the player the freedom to make minor movements without causing nauseating camera movements.

This is a follow up to my original cart: "Micro Platformer - Simple Platforming Engine in 100 Lines of Code". If you are new to programming, I strongly suggest starting with that cart, as it is much simpler to follow!



Old Versions: