Felt really shitty and tired and headachey for most of the day, so got very little done. I at least figured out what was causing the super suboptimal path yesterday, where it turns out I forgot to factor the goal node into the distance calculations so it was just selecting for whichever was closest at each step, and defaulting to the left, resulting in that super roundabout path.
Pathing is still suboptimal though, just less egregiously so. The algorithm doesn’t reevaluate alternate paths when a chosen path turns out to be more circuitous than planned, which I think is a step in the algorithm I forgot to implement. I’ll check up against the standard implementation of A* tomorrow and see what I missed. The blocking check is also definitely not quite working yet, largely because it detects a blockage if you’re jumping directly up a wall from the corner of the wall. Not sure how I want to approach that yet.