Pullfrog postmortem, Long Live Pullfrog 2-Bits

Back in 2020 during the month of may Mario and myself started working on a game for PICO-8 as part of a monthly game development club. I've always loved playing Tetris and other falling block puzzle games, although Tetris is more of a skill game than a puzzle game such as Panel De Pon. I've also always loved playing platformers. Moving around a character that has well-polished controls makes it feel like controlling an extension of your body. So I'd kinda wanted to mash-up these two things for a while.

https://media.amano.games/devlog/pullfrog-postmortem/frogtris-cols-export.png

I started by trying to lay down the feel of the character movement. I am not a programmer but attempting this really helped me understand how games and code really behave. and so after a while at work I managed to produce this janky-ass thing.

https://media.amano.games/devlog/pullfrog-postmortem/pullfrog-postmortem-003.gif

And then I tried again. Getting the basic movement allowed me to focus on important platforming details like "Coyote Jumping", collision corner corrections and input buffers. and so the second version was a little better.

https://media.amano.games/devlog/pullfrog-postmortem/pullfrog-postmortem-004.gif

This is where I hit my programming ability wall and Mario took over. He refactored the code, made pertinent changes, and continued to develop, what was initially just an exercise in learning good platforming feel, into a complete game. We came up with the look and core loop for the game, which is to move around and pull the falling blocks in to place with your tongue in order to clear lines and obtain power-ups, and keys in order to open a door at the end of the game. This Unlocks a new characters that play slightly different to the frog. Ideas were sketched, mechanics were polished, pixel art was pixeled. PICO-8's token limit was reached over and over again, but after 30 days we finished Pullfrog.

https://media.amano.games/devlog/pullfrog-postmortem/concept.png

We learned a ton from the experience. Collisions, movement, performance, pacing, polish, math. Even though we were working remotely, most of the time we were talking on discord each doing our part. Finishing this game really made us feel that with enough time and resources we could make any kind of game we liked. So we put it out on Itch.io, Lexaloffle, and Newgrounds. People responded great to it, we were content and moved on to the next thing. We worked on a couple more pico ideas. But the itch remained. The "what if?". What kind of a game could we have made without the limitations of PICO-8?

https://media.amano.games/devlog/pullfrog-postmortem/pullfrog.gif

So towards the end of the year, Mario managed to get his hands on a Development console for the handheld "Playdate" and we decided to attempt do make a second version of Pullfrog, this time featuring a playful little crank and seemingly less restrictions except for the apparent ones like the black and white color of the screen. Oh the naivety.

https://media.amano.games/devlog/pullfrog-postmortem/pullfrog-postmortem-008.png

So this is the plan:

We want to make a version of Pullfrog that features more polish and variations in gameplay like:

  • Different kinds of blocks.
  • Some enemies and or bosses.
  • Level progression.
  • Replayability mechanics.
  • Make use of the crank controller.
  • Smoother animations and controls.

Slowly making progress as we get to know the Playdate console more and more. Developing tools and better ways to work. We're gonna try to keep this devlog going as we work and hope that whoever reads it can get something out of it. Thanks for reading.

You can follow us on twitter and stay updated on the development of our games.

Comments

Other Posts

Archive

You can subscribe via RSS or follow us @amanogames_

Making a pinball game for Playdate: Part 07, the debugger

Making a pinball game for Playdate: Part 07, the debugger

Searching for a debugger on Linux

Making a pinball game for Playdate: Part 06, the profiler

Making a pinball game for Playdate: Part 06, the profiler

Learning how to use a profiler

Making a pinball game for Playdate: Part 05, the spatial partition

Making a pinball game for Playdate: Part 05, the spatial partition

2 Bits image formats.

Making a pinball game for Playdate: Part 04, the image format

Making a pinball game for Playdate: Part 04, the image format

2 Bits image formats.

Making a pinball game for Playdate: Part 03, the first level editor

Making a pinball game for Playdate: Part 03, the first level editor

How did we choose our first level editor for the game?

Making a pinball game for Playdate: Part 02, the physics

Making a pinball game for Playdate: Part 02, the physics

Let's talk about physics.

Making a pinball game for Playdate: Part 01, the language

Making a pinball game for Playdate: Part 01, the language

Welcome to this December adventure, where I will try to write about the process of our last game, Devils on the Moon pinball. Today I will talk about our choice of programming language for the game.

Let’s finish this

Let’s finish this

We are back working on Pullfrog! What happened?

Let's talk about Don Salmon

Let's talk about Don Salmon

Don salmon, a new platforming game made in Godot and a small update on Pullfrog

Spooky eyes and level editors

Spooky eyes and level editors

Last year we made the decision to take a break and focus on a spooky game around the spooky season.

This kills the frog

This kills the frog

After rewriting the physics system for the third time, it was time to start working on more fun stuff. The frog death system™.

On starting a game

On starting a game

A couple of things I would recommend when starting your first game on the Playdate.

How to correct a corner

How to correct a corner

There are many techniques that you can apply so that a platformer game feels good. One of those is corner correction.

On "Bouncy" Animation

On "Bouncy" Animation

Another Equally important decision, is choosing which poses you want to emphasize in order to get that reactive feeling when a character interacts with the world.

The collision stair case

The collision stair case

As stated on the previous post, updating all the pieces all the time was a bad idea. We needed to figure out a way to update only the ones that needed to be updated after another block got destroyed. The quick and dirty solution was to check all the pieces inside a bounding box on top of the piece that got destroyed.

About Amano & the collision conundrum

About Amano & the collision conundrum

So, a couple of months back, Mario and I were happily working away on The game, finding out the workflow and working out the kinks of developing for the PlayDate. We laid down the main mechanic, blocks were falling and colliding correctly the character was moving alright but we were doing everything on the simulator, NOT testing on the actual device. so when we decided to take it for a spin…  it crashed.