Collision detection is still really hard. I reckon I’m getting somewhere, though, mostly by ignoring what the big book says and implementing the least efficient algorithm I can understand. And then guessing what values need to be negative and which need to be positive so he doesn’t end up falling upwards. And then drawing intricate diagrams on scrap pieces of paper to understand what’s going on, only to find that the exact opposite happens for no readily apparent reason. And then re-reading my code for the 15th time, realising it’s a horrible mess but knowing that any attempt to tidy it up will break just about everything I’ve done so far, and to be honest it’s not that great anyway; I might as well break it, then I’d have an excuse to start from scratch. But then I realise that even if I were to start from scratch, it would just take me another week to get back to where I am now, and the new code would probably be even worse.
So yeah. Totally getting somewhere.