Author here, thanks for posting it. I only released it a few hours ago, thanks for the support!
It's a remake of Cannon Fodder (Sensible Software, 1993), which I played to death on an Amiga 600. No original graphics reused and a different name, so nobody needs to call a lawyer. Free in the browser at bootsandbullets.com, no sign-up, desktop only for now.
The constraint I set at the start was one runtime dependency and one asset file. No image files ship at all. Every sprite is plotted into an offscreen canvas at boot out of fillRect calls, and it is plain drawImage from there, so the runtime cost is a spritesheet's and the cost is about a second of load. Terrain is derived from a grid of one character per tile and baked per mission as continuous masses rather than a sprite per tile. Sound effects are synthesised with WebAudio.
A handful of things I couldn't get plotted cleanly, a face and the explosion and the guns, I cut from reference images with a build-time tool into a palette and a run-length-encoded index, which gets replayed at boot through the same fillRect calls. So it's generated source rather than a PNG, but it's honest to call it an import.
The one file that ships is the menu track - hope you like it, it's in my head all the time (disclosure, Suno!)
Disclosure since it will come up: it is AI-built, with Claude Code. Hopefully you don't think it's AI slop :)
Author here, thanks for posting it. I only released it a few hours ago, thanks for the support!
It's a remake of Cannon Fodder (Sensible Software, 1993), which I played to death on an Amiga 600. No original graphics reused and a different name, so nobody needs to call a lawyer. Free in the browser at bootsandbullets.com, no sign-up, desktop only for now.
The constraint I set at the start was one runtime dependency and one asset file. No image files ship at all. Every sprite is plotted into an offscreen canvas at boot out of fillRect calls, and it is plain drawImage from there, so the runtime cost is a spritesheet's and the cost is about a second of load. Terrain is derived from a grid of one character per tile and baked per mission as continuous masses rather than a sprite per tile. Sound effects are synthesised with WebAudio.
A handful of things I couldn't get plotted cleanly, a face and the explosion and the guns, I cut from reference images with a build-time tool into a palette and a run-length-encoded index, which gets replayed at boot through the same fillRect calls. So it's generated source rather than a PNG, but it's honest to call it an import.
The one file that ships is the menu track - hope you like it, it's in my head all the time (disclosure, Suno!)
Disclosure since it will come up: it is AI-built, with Claude Code. Hopefully you don't think it's AI slop :)