I built BrawlBox, a 2D fighting game that runs entirely in the browser, plus an AI creator that turns a single photo into a playable fighter — sprite sheet, animations, and a full 36-action moveset wired into the engine.
The part I'm most proud of is the pipeline: you bring your own OpenAI + fal keys, and the whole photo→fighter generation runs client-side — no account, no backend, nothing of yours hits my servers. Under the hood it re-skins a CC0 mannequin template, slices and keys the frames via green-gap detection, despills, scales, and bakes an atlas the engine can load.
The engine itself is deterministic (pure tick function, fixed timestep) so matches are reproducible — it started as a weekend project and got way out of scope (throws, guard/parry, charge motions, power meter, dizzy/knockdown/OTG, a CPU opponent with 5 difficulty levels).
Play it here: https://brawlbox.gg — happy to answer anything about the determinism model or the in-browser generation pipeline.