Climb your way to save the princess trapped by wasps at the top of the forest canopy!

Keyboard controls are roughly laid out like the NES controller:
A/D - move.
K - tongue grapple.   <- so glad I added this mechanic!
L - jump.

NOTE: I am aware of the bug in the boss level which crashes the game. It appears to only happen in the browser version, so I'll be trying to deal with that, or alternatively uploading an exe version!

---------------------------------------

Created in around 2 weeks for the NES game jam 2025.

I had fun with this, and tried to do plenty of research before I started to try and get as many of the details right as I could!

When I found out that one NES limitation is the number of sprites that can be displayed along each horizontal line, I wondered how I might have tried to tackle that limitation if I'd been designing NES games at the time, and my mind instantly went to 'vertical platformer'. Combine that with the 'save the princess' theme, which made me think of princesses and frogs, and Leapfrog was born!


NES-style features include:

  • Color pallet restrictions -- 3 color sprites, 4 color background tiles, no more than 4 color pallets in total.
  • 16x16 and 8x8 sprite sizes.
  • 8-sprite-per-line limit <- I think I managed to stick to this if we assume the boss is part of the background, but I'm not 100% sure so feel free to heckle me if I missed a spot!
  • Movement and jump mechanics use coded velocities rather than Unity's physics system.
  • Easy to learn, hard to master style gameplay. 
  • Tile-snapping camera movement -- so the screen is never made up of half-tiles.
  • Authentic sounding 8-bit music using only 4 channels (square, square, triangle, noise). I don't know how authentic the actual tune sounds, but I've had the damn thing stuck in my head since I wrote it so I must be doing something right!
  • Bugs, glitches and janky controls... (oh yeah, it's got that alright!)

Where I deviated from NES restrictions:

  • While I tried to avoid using any physics systems entirely, I did concede to using Unity's trigger boxes and raycasting for the sake of time (because, frankly, trying to do entirely tile-based collision detection wasn't working properly and was driving me nuts).
  • Rather than using arrays to determine what tiles are located where, I just simulated this via other means (e.g. incrementing the camera by 16-pixel units). In some places, however, I did actually swap out full tiles, e.g. the UI health icons.
  • At first I cut the music whenever a sound effect played to simulate the limited audio channels, however I felt this was distracting to gameplay and decided against it (besides I don't think you can really tell when the two noises overlap).

^ Whenever I deviated from the restrictions, I tried to at least give the outward appearance that the restrictions were there.


Resources:

Art, design, code, music, sfx (c) ceprotypes

Development log

Leave a comment

Log in with itch.io to leave a comment.