Block Puzzle? Block Puzzle!

In which Fable 5 converts a Flash game from over a decade ago into a modern Godot project quite successfully.

Share
Block Puzzle? Block Puzzle!
The determination on his face. Amazing.

I was tidying up old files over the weekend and was very happy to come across the source files and raw assets for some projects I was worried I had lost; among them was the unfinished Flash game I had been working on right around the time Flash evaporated: Block Puzzle? Block Puzzle! 2

I bet you'll be surprised to learn that the game was all about pushing blocks onto pressure plates. Something like a side-view version of a Sokoban style game, or even more accurately something like the block pushing puzzles you'd find in La Mulana. (The genuine inspiration for building the game was watching this video of Deceased Crab struggle with a block pushing puzzle in La Mulana only to wind up not getting the item he expected in the end. Simpler times.)

There was an original Block Puzzle? Block Puzzle! (that somehow still lives on in a playable state on Newgrounds). It has some serious design flaws though – not least of which is that there isn't any indication of which pressure plates will change parts of the level by moving platforms around or spawning new blocks. This leads to a tremendous amount of trial-and-error which is okay, I suppose, if mapping out the results of all the pressure plates in a level feels like a fun part of the puzzle. A lot of people didn't seem to think that was particularly fun though so one of the major goals of the sequel was going to be to make the puzzles less trial-and-error and more just about thinking through how to move the blocks around.

Then Flash collapsed and life moved on and BP?BP!2 sat idle, which was a particular shame because quite a few levels were entirely finished and a handful more were well roughed out. Digging up the source was a fun discovery but what am I going to do: somehow finish a Flash game that required a custom level editor I didn't even have any more and ... release it... somewhere?

I mean, maybe if I ported it to Godot or something. That would be a real pain though, especially the level data which would need all sorts of conversion either by hand or with scripts.

🤔
If only I had access to some sort of automated tool that could parse through all the old code and data and just make a Godot project appear out of thin air...

This just happened to be right at the tail end of the Fable 5 model being included as part of standard usage with Claude, before it switched to usage-based pricing. Was Fable overkill for this task? I'm not sure. Sonnet 5 and Opus 4.8 are both quite capable, but this was a pretty significant and slightly strange project conversion so Fable seemed like a reasonable choice.

It went very well.

The multi-layer, multi-CSV tilemaps got converted correctly through a Python script, the old ActionScript files that defined the interactive entities in the levels got translated into sensible nodes in Godot, and the physics from flixel got re-written so correctly that the "game feel" didn't change.

There was one brief hiccup with the tilemap converter outputting data in a format appropriate for an earlier version of Godot, but Claude caught that when it reviewed the screenshots from the test run it executed and recognized the tiles were missing.

This conversion would have been weeks of work had I done it by hand in my free time, and it would have been annoying work at that. Now I get to just jump in to Godot and use first-class tools to finish building out the puzzles for the game.

So I suppose this post is just an endorsement for using Fable 5 to translate ancient projects from dead technologies into modern tool sets.

Admittedly, when I first wrote that line I thought it was going to be a bit of closing snark – but it occurs to me that this is actually a not insignificant real problem for software doing actual work out in the world. It sure would be nice if my bank could move its software off of what I assume must be punch cards...


To close, here's a screenshot from Block Puzzle? Block Puzzle! 2 in Godot with an early level correctly translated and ready-to-edit:

And as usual the header image is from GPT Image 2 on Leonardo.ai – it did a great job with this one. Really captured the feel of the 8-pixel brick that is the main character. And it did a good job merging the background and logo together, which were originally generated as separate images.