By some measures this was a productive weekend. It's still frustrating how slow this piece is going.
Last week or so, I finally integrated (physics pun intended) the physics core into the new engine with world collisions and all. Or maybe it was this weekend. It's hard to tell now. The hardest part has been implementing player movement as physical forces.
The old code modified the player position directly using pseudo-physics. This meant that I had direct control over acceleration, jump impulses, how collisions were interpreted, and so on. Trying to recreate the "3D platformer" feeling using physics forces has been an interesting exercise. It's still not perfect but I'm starting to feel like some of the new glitches might actually be better... or at least partially so.
Jumping has been the hardest. The old code applied additional down force at the end of a jump to make the player fall faster. Back then, even with double gravity, it felt like you were floating at the tops of jumps. I spent 3-4 hours today trying to replicate this sort of additional drag in way that wouldn't mess up other parts of the physics calculations. I finally have it sort of right.
Autoclimb was Saturday's fun. When the two are put together now, we even still have the same weird super jumps if you climb a block while jumping. There may be some slight feel differences but it's very very similar.
One of the glitches that I'm starting to like but will probably tone down or get rid of is that on 45 degree slopes you automatically slide down. It's fun to slide down a long ramp, though. Right now the player applies no direct "movement friction" to the ground when they are standing. Any friction is based on their feet touching the surface and not taking into consideration that a person would use their muscles to hold position. Still, I think jumping down and hitting a 45 degree slope and sliding a bit are ultimately right and I will try to keep that while making normal walking better. 45 degree slopes are pretty steep in real life but we could all probably stand still on them. The high slopes we absolutely slide down and I'm fine with that.
Regular climbing...
I had a pretty major "setback" with this one.
The old ability to climb was really due to exploiting a glitch in how collisions were done for the regular camera. Because of the way block penetration was resolved, it was possible for our feet to hook on the tops of blocks even if we physically shouldn't have been able to penetrate that far.
Here is a roughly drawn example of what I mean:

If the green is the player and the blue blocks are a beam ladder, we'd be able to penetrate just slightly and our feet could catch on the block. Jumping simply took us up, then... and the contact resolution kept our head from hitting the blocks above.
Well, in the real physics engine this isn't possible. Contacts are all resolved together and even if I do catch the foot-hitting-lip, I also catch the head-hitting-lip and you can't go up.
As disappointed as I was with this earlier tonight, it's for the best. After thinking about it for a while, I was about to start hitting some other problems with this approach that were even less solvable.
In order for your character to have physical presence in the world, the avatar is positioned with the player. If you look down, you can see yourself. When you can move your hands then you will see them too, along with your arms and so on. This is kind of necessary for manipulating objects in the world without a disembodied feeling.
To make this work, when you look down, the avatar bends at the head and waist. Right now, the head is not a separate collision object so if you are toe into a wall, you actually put your head inside the wall. Presuming I fix that problem (and it's on the list), imagine what happens if you are climbing a ladder and want to look down. Your feet would move out and you'd fall down, head hitting each rung of the ladder on the way down. Sounds unpleasant.
Furthermore, looking left or right would still turn your whole body as it does now.
I think the real solution is to go ahead and start introducing the other body parts as physical objects. The arms+hands, legs+feet, and head were sort of going to be needed eventually anyway but I was hoping to get to put it off. There is also an implication that I need to figure out at least a partial animation solution.
Then when you climb a wall or a ladder, it's because your hands and feet are colliding with the appropriate things to make you climb. The game knows you are "climbing" and other actions like looking around will now mean something different. Perhaps looking left and right simply turns your head instead of your whole body. Looking down will do different things depending on which way you are looking but looking directly down in front of you is likely to be not that productive.
...it's better but it's a lot of work that I was hoping to put off until a later release.