PLAYABLE IN BROWSER
KNUCKLECORE
A one-button fighting game built out of a college final I drew by hand. Two characters, three animation states each — no hit reaction, no knockdown, no crouch, no jump. Everything else is code, including the poses.

Loads on click · desktop keyboard
The constraint
The original had three clips per character and no hit detection at all — attacking just played an animation. Rather than draw new states, I re-timed the existing keyframes to fighting-game speed and built the whole game around spacing: REN's punch reaches 2.19 units and recovers in 30 frames, WARDEN's claw reaches 3.55 and recovers in 28. That gap is the entire matchup.
Impact without art
There is no drawing of anyone getting hit, so the hit is made of timing. The simulation freezes for 7 frames while the effects clock keeps running, the frozen pose slides backward, and the lean eases out to end on the exact frame control returns — so you can see when you can act again.
No block button
Blocking would have needed a guard pose that does not exist, and a two-button game asks more of someone who plays for ninety seconds. Instead, connecting during the opponent's startup or recovery is a counter-hit worth 1.5x. It rewards reading rather than reacting, and it costs no art.
Poses without drawings
Two techniques, each where it fits. Crouch and jump bend the drawing: each fighter is rendered on a generated mesh instead of a flat quad, so the legs can fold while the torso and head keep their proportions. A uniform squash flattens the face and reads as a bug.
Rigging the old art
Then the drawings got a skeleton — eleven bones each, joints read off the art, with per-vertex weights falling off by distance to the bone. That buys poses that were never drawn: a real hit reaction where the head snaps back and the arms flail, and a second attack on the same button — REN throws a side kick from a crouch, WARDEN brings the claw down. Linear blend skinning on a flat drawing holds up for moderate angles and smears past them, which is why the mech slams instead of kicking.
Both characters, the crate and the painted coastline are my own drawings, made in Photoshop for a college final and imported as layered PSDs. The engine work — frame tables, hitboxes, the fixed-timestep simulation, and the opponent AI — is new.