#1GAM Game 12: Kid Bludd

In January of 2016 I challenged myself to make 1 new game every month, for a year; 12 months- 12 games. This is one of those games.

[box type=”download”]

Development Stats

  • Language: Lua
  • Engine: Pico-8 Fantasy Console
  • Platforms: Web/Pocket Chip

[/box]

You would think after doing this for 11 months straight, I would finally have a clue as to how to do a game a month properly… but of course I don’t.

For the final game in my 1-game-a-month challenge, I decided it would be quite poetic to return to the very game I abandoned when I kicked this crusade off! In December of 2015 I was working on a spiritual successor to Super Mario Bros 2; I even talked about it a little in my writeup for the first 1GAM game, Dash Maximus. So how fitting would it be to finish the year off by finally finishing it!

The core hook of it is that instead of choosing a character at the start of a level, you can switch characters at any time! So I spent 27 days pouring over Super Mario 2; reading gamefaqs, and doing side-by-side comparisons of the game with my engine. By that point I had all 4 characters properly emulated, a Shyguy enemy, and the ability to switch characters on the fly. But I was miles away from finishing, so I made the tough call to abandon the game once more and start something new, with just days left in the month.

Quick switching in action.
Quick switching in action.

With so little time left, I know Pico-8 would be my framework of choice, and I set of building a simple platforming game, loosely inspired by Bubble Bobble, but instead of trapping enemies in bubbles, you smash the with a visceral dash mechanic.

Bludd01 Bludd02 Bludd03 Bludd04

[box type=”download”]

System Requirements

[/box]

Although the hook of Kidd Bludd is the dashing mechanic, I actually spent a lot of time making sure the basic platforming felt really good. It seemed a shame to have it go mostly unnoticed, so I spent the days after releasing the game cleaning up and stripping down the code. Eventually I had it reduced down to just a really solid platforming engine, and released that as a seperate cart.

Here are some details on its features:

* Animation System
* Collision Routines
* Camera (w/Shake)
* But also…

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

Mario Sliding

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

plat_slide

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.

plat_friction

Variable Jump Height

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

plat_jump

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.

plat_floors

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

[box type=”download”]

System Requirements

[/box]