Hi everyone, hope all is going well. I've had my Playdate for a few months now and have been trying out a few things, and in the end have settled on trying to build a game about flying a hot air balloon.
It's a memory game really. Controlling only the altitude of your balloon, you'll need to choose an airstream that can take you where you want to go. Remembering where the wind flows on each level is the key to beating the game.
Graphics are just prototypes at the moment, but here's some early game play. The instrument on the right-hand side of the screen is your altimometer, a combination altimeter and anemometer that shows you how high the balloon is and also what the winds above and below are doing.
I looked at several options for the graphics and decided that isometric would be doable in a reasonable time and still give an open-world feel.
I've built a Flutter app to generate the images as I store depth data along with the 2D sprite so that I can create dynamic shadow maps.
In real time, the cpu can calculate the deformation of the balloon's circular shadow over the objects underneath. Makes the isometric view feel a little more solid.
In the early part of the game, you purchase a new balloon and visit the training facility of the manufacturer to learn how to fly. This is a large, four-acre hangar where the flow of air can be directed to help you learn advanced flying techniques.
Last week I finished some concept art for how this might look, and hopefully this week I'll turn this into shadow-mapped sprites that can go into the game.
Thank you! I've got it mapped to the crank and also the up/down buttons on the d-pad, so whatever is your preference really. I quite like the crank, it feels responsive and makes it fun to time flying into and out of an airstream.
I wondered whether I might have an unlockable harder level where the crank (or button) fires up the burner so you would have to judge how much heat to add to the balloon for your desired altitude. I think that's hard, though, so not for the first play through.
Looks sweet. I have to say that the isometric perspective seems to be a good fit for Play.Date. There's another WIP I've seen that uses this perspective that looks great too. Keep up the good work.
Looks cool. I want to play and would like to know where to get a copy. I can give feedback if desired.
PS - seems like the harder level you mentioned would be like a 3D version of flappy bird, could be really fun. There was a hot air balloon game for MacOS 6 in the 1990s where birds/storks carrying babies were a hazard that could pop your balloon.
Thanks! It's still in development at the moment, probably going to be a few weeks before there's a test version available.
I think the vibe I'm going for with this release is more chill out rather than arcade action, but it doesn't mean there couldn't be a spin-off relying more on hand-eye coordination for the game play.
If you are looking for a hot air balloon game similar to Flappy Bird, I made one for Uncrank'd Game Jam. I've never heard of the classic Mac game, but it's kind of similar.
Otherwise this game looks very interesting. I like the isometric perspective and the projected shadow is very nice.
This GIF is a little flickery, but it is better on the device. Is it because I am running the display at 48-50Hz, but only drawing every other frame? This seems to reduce flicker on the actual Playdate.
(I want the game to run at around 24Hz, seems like a nice scrolling speed.)
I've not added any shading yet, but I think it would probably look better with some mild colouring in, so will have a look at that.
Well it's a work in progress, but you can just about map a mesh to a bunch of pixels sort of. It doesn't really fit, but you can squish it a bit and it looks ok. It's good enough to generate a companion image with x and z offsets from the far corner (I use a vertical y axis, positive x is down and right, positive z is down and left).
If we know the x and z coordinates of every pixel in an image, we can determine if it is in shadow vertically.
What you are seeing on the right tool bar is the final 1-bit dithered output at the top, a grey scale version below and then the x and z coordinate offsets that are actually combined as an exported image.
The code on the Playdate sees if a graphic might overlap the balloon shadow, and if so it inspects each xz-map pixel to see if it lies in the circular region below the balloon. A dark shadow pixel is rendered if so.
I'm actually tidying up the final image by hand at the moment. Given relatively high resolution of the screen, it may make sense to move away from pixels and go more towards triangles and proper meshes to generate the sprites. But this is where we are for now.