[DEVLOG] Steampunk Rescue

April 5th

I really like steampunk and simple arcade games, so I plan to make a version of Megumi Rescue with that kind of aesthetic. If you don’t know Megumi Rescue, it’s a japanese only Mark III (Master System) version of a cancelled arcade game. It’s a mix of Breakout and the Fire Game & Watch game.

First, I’ll make a prototype with dummy graphics in TAS mode in order to see if the idea is feasible. I’ll try to use standard tools this time (Tiled, Aseprite,…) instead of coding my own formats in order to finish in time :slight_smile:

April 7th

I’ve read about TAS mode and I’ve created a very simple mockup to test the idea. I made five 16x16 plain color tiles to build the stage in Tiled (11x20) and a 16x16 flashing sprite in Aseprite to test the conversion scripts.

Based on the default template, I’ve coded a simple animation that bounces the “player” and moves the camera to follow it. This is the result (it’s better on the emulator/device):

ezgif-7-c418bc0e4f54

It seems smooth enough so I can move on :slight_smile:

This is the source code (and the binary) so far if anyone wants to play with it: Steampunk Rescue.zip (93.1 KB)

April 8th

I’ve refactored the code a bit and now I have entities, game logic and everything is a little bit more manageable. I’ve created sample tiles and placeholders for the player and the platform, and also a sidebar that mimics wood and steampunk gauges. It’s starting to look better (having 256 colors available is great), but it still needs a lot of work.

rescue

I’ve decreased level height because it’s complicated to move the platform if the player goes very high… but I also think that it makes the game more challenging. It’s a complicated balance between level complexity and good game mechanics…

I’ve created a GitHub repository if anyone wants to peek out the code:

April 10th

I’ve improved the tileset and the sidebar and they look crisper now. I’ve also made another kind of platform in order to see it better in the bottom of the screen.

The code is a little bit improved, but now I’ve a weird bug with the player sprite. I’ve moved black from 0 to another index, and now index (transparent) is pink. In every other image I’ve tried color 0 is transparent when I draw the sprite (or if I use drawBitmap), but with the player I get either black pixels and when it should be transparent, or they show in pink if I use indexed color mode.

Steampunk Rescue.bin.5 Steampunk Rescue.bin.1

If anyone wants to investigate, the code is in the Github repo:

9 Likes

By the way, I don’t know if it’s because TAS, but now invisible color is always 0, even if I put this:

pkt.display.invisiblecolor = 239;

Anyone knows why? Thanks!

Display::drawSprite uses zero as the invisiblecolor for speed. It requires one less register if you can simply hardcode a value. Instead, it’s better to put the palette inside your project folder and swap the colors so that the one you don’t need is at index zero. Just remember to update your project.json so it’s pointing to the right palette.

2 Likes

Thanks as always!

Time to modify the palette then… :slight_smile:

Edit: It works great now… except for the player. See the last update in the first post :sweat_smile:

2 Likes

Have you tried using a transparent PNG for the player?

Yes, both RGB8888 and indexed with solid pink color and transparent.

I’m starting to think it’s something related to Aseprite and this specific sprite, because if I start a new project in Aseprite, transparency works. Really weird.

Using solid pink isn’t supposed to work: the converter will look for the closest solid color to match it.
Now, if a fully-transparent background results in a solid color, then that really is weird. :thinking:

1 Like

When I say “solid pink” is the pink I have on index 0 (#f500f5). And if the color is transparent, it shows as black…

EDIT: I’ve found the bug. If I use black color anywhere, conversion of sprites fails. If I use a dark grey or any other color, it works properly. As a bonus, I’ve recolored the sprite and now it looks better :slight_smile:

That’s… odd. Does this behavior continue if you close and reopen the project?

Yes, because it happened yesterday and today (after powering off the computer tonight).

@FManga isn’t that the same or similar problem I had with a check pattern tile? Seems like black have a special meaning for image to header converter with miloslav palette.

He’s not using miloslav. I’ll have to check the project out later today and see what’s going on.

3 Likes

I’ve been very busy at work these past days (even on weekends) and I haven’t progressed with the game… I don’t know if I’ll be able to finish in time :sweat:

2 Likes

I hope you make it. The game looks fun!

4 Likes