Platforming now looks proper, with the main player sprite centered within the bounding box that’s used for terrain collision, and weird platforming physics wrinkles ironed out. Renamed and organized a nightmarish tangle of ALL_CAPS_GLOBAL_VARIABLES into a platformerState table.

Jumps feel tight. This is the first time I’ve been able to play around with this character design plugged into any kind of game engine, and I’m still not sure if this is the one I should go with, but I’m feeling a little more confident about the project as a whole now.