A reusable spritesheet workflow
I built a common animation structure that stores each state's frame dimensions, frame rate, frame count, vertical offset, loop mode and playback time. The renderer selects the correct rectangle at runtime and also supports very large spritesheets split across several rows.
- Artists could deliver new spritesheets without requiring a custom playback system for every character.
- Boss states switch between idle, attack, movement, spawn and death animations while keeping their own timing.

