I’ve been hard at work implementing new intersection tests, and dealing with collision and response algorithms. Pretty tough stuff to make work correctly and smoothly under all circumstances!
I’m basically breaking up an area into distinct height levels, then doing 2D intersection tests between a circle (the player) and a line segment (i.e. a wall) based on your current level. In 3D this is equivalent to an intersection test between a cylinder and a plane. 2D just saves us a few CPU clock cycles, which are always very valuable!