Game
Katana Club
A 2D fighting game that runs in your browser. Thirty-plus fighters, single-player against the CPU or online against a friend, keyboard in hand. Engine, netcode, fighters, stages and sound — built by one person. A beat-’em-up story mode is in the works.
- Live
- Online multiplayer
- Story mode in progress
Under the hood: SvelteKit + Phaser on a fixed 60 Hz simulation step that runs the same ticks on a 120 Hz display as on a 60 Hz one. Netplay is delayed-input lockstep: only inputs and periodic state hashes cross the wire, through a relay that forwards blindly, checks a protocol version on every join and drops anything malformed; a hash every 30 ticks turns any divergence into a visible desync instead of a silent one. Determinism is proven, not assumed: two engines run over a jittered loopback, a 3,600-tick replay from one seed is held to a golden hash trace, and every restorable field is tied to the hash or to a named exemption. Every fighter’s hitboxes and hurtboxes are per-frame data, edited in a browser workbench that previews the move in the game itself and writes the result back as code. Sprites have one source of truth in Aseprite, exported by CLI, with unshipped fighters pruned from the bundle and a WebP twin for every PNG. Sound by aubertlone.
