reCoupage (HEJ 2024 April jam)

Our third attempt at HEJ jam was a tiling puzzle game based on famous paintings (that explode!).

A few days before starting the project I did some ground work and tested a few open source JavaScript libraries that I needed to integrate: one for pixel-by-pixel comparison of images (so the game can detect when the player has successfully restored the original painting and can also show a percentage of how close they are at any moment), and one for rectangular bin packing (so the shapes making up the painting could "explode" and move to random positions inside a designated container without overlapping). The "winning" libraries were Pixelmatch and Max Rects Packer respectively, they were both super simple to work with (kudos!). I even made a basic Construct 3 template utilizing Pixelmatch - if anyone is interested, it's available on my GitHub.

Still cutting it relatively close to the deadline, I started prototyping reCoupage at around 4 PM on the 1st of May, 6 days before the deadline. It was a super fun and productive first session and at 1AM (yep, flow happened) the proof of concept version was done: it had one puzzle based on a constructivist painting by Sándor Bortynik. It looked like this (in the "exploded" state):

The player's task is to move all pieces back to the canvas by dragging them with the mouse and rotating them with right click. To facilitate that, all shapes snap to a fixed grid and rotate in 30 degree angles. For reference, there's a snapshot of the original painting in the bottom right corner.

I continued development on the 5th of May live on stream, after a lengthy overview I proceeded with feature development, while Tibor was working on new levels:

On the next day I managed to squeeze in another 4 hours of development, and on the day of the jam's deadline another 3 hours on stream

...and another 4 hours off-stream (mostly taking care of the UI, audio & playtesting). The final result can be played on Itch - so far there were a couple of minor post-jam updates based on feedback we received:

If you'd prefer just watching how the game works instead of playing it, here's a video of fellow game developer and super nice human person Foolbox giving it a go: