Making a pinball game for Playdate: Part 09, the ball HUD

Welcome to this adventure, where I write about the process of our latest game, Devils on the Moon pinball.

Kind of a silly thing that made me really happy yesterday

Before we continue this post has spoilers for our game Catchadiablos.

A long time ago I remember there was a thread on twitter talking about lives UI in games and how it tends to be ambiguous.

Filled 3

When you have some sort of HUD that has a filled and unfilled icon for how many tries you have left and you lose, do you expect to have another chance?

Filled 1 Filled 0

The problem is, how do you set the right expectation? And if it's ambiguous, should you resolve the tension at the resolution with an upward beat or a downward beat?

When we started building the HUD for Devils on the Moon pinball, we talked about this. We knew we wanted to give the players 3 balls to play with. How do we show that in the UI?

Option A

We show the three balls filled in the UI, and then when you lose one, we remove it? But wouldn't that give you the expectation that you had 3 more balls apart from the one that you had at the beginning?

Later on, when the ambiguity is resolved and you lose the last game, the game ends. If you had the expectation that you still had an extra ball, that's a big downward beat.

Option A

Option B

We show only two balls, as that's the chance you have left? But then we never show the UI with three balls; the UI has the space to show you three balls filled, but we never do! It felt wrong somehow.

Option B

Again, kind of silly.

After like a day of debate, we ended up with option B, it's better to not risk disappointing the player. That's how we show it in the Catchadiablos pinball

Catchadiablos Pinball

Yesterday, though, we were working on the ball spawning polish, adding animations, making sure timings were right, etc. It sounds simple, but we had to change a lot of things, as before we weren't destroying the entity and spawning it again; we just used the same ball entity and just reset its position.

At the end, when we were tweaking the timings, we had an idea: what if we show the 3 balls filled in the UI, and with the spawning animation, we remove the ball from the HUD, signaling that you just spent one ball of the 3 balls that you have available? Best of both worlds!

End result

Kind of silly, but really happy with how it turned out.

I don't know what awaits us in our next adventure, but see you there when it happens.

Comments

Other Posts

Archive

You can subscribe via RSS or follow us @amanogames_

Making a pinball game for Playdate: Part 08, the entities and their components

Making a pinball game for Playdate: Part 08, the entities and their components

How do we organize our game entities and their components.

Making a pinball game for Playdate: Part ??, the secret project

Making a pinball game for Playdate: Part ??, the secret project

What happened in the last six months?

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.

Pullfrog postmortem, Long Live Pullfrog 2-Bits

Pullfrog postmortem, Long Live Pullfrog 2-Bits

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.