Today is the day I increase the % done icon! Woot! 20%!
As of this week, I have a basically functioning character controller and camera, and despite ongoing battles with random bugs, it looks halfway decent. Still not as smooth as I’d like, but it’s getting there. The other big one is a video of a gameplay demo. The music's pretty great (can't take any credit there, it's by my friend BBass), so I really wanted to get this up even though the animation's still rough and bugs blah blah blah –
I guess the camera moves too much, because Youtube offered to stabilize my video for me.
Added a couple new features over the past week – a flagpole for climbing (which will be extended into climbing trees and vines later), and an actual level-end scenario! This was a big one. I defaulted back to the good old “grab the gold star” trope until I can think of something better. Excuse my low score, I should've grabbed some minerals first –
I also discovered the moving platforms I made earlier didn’t move the player correctly, and that took surprisingly long to fix. The platforms are moved by a script – and when they’re moved during a visual update they can temporarily overlap other colliders prior to the next physics update occurring. That causes problems when relying on ray casts and the controller’s isGrounded parameter, which don’t work as expected when colliders overlap. To work around this, in the character motor script, I keep track of the platform currently below the player and its current speed and direction. The character position is then offset by that amount before any player input is processed. This creates the effect of the player smoothly moving with the platform.
I keep telling myself done is better than perfect. I know there's a lot of polish to add, but I'm at least making progress. Plus once I have this basic framework implemented I can pretty much re-skin it into any style or theme of 3d platformer, which is kind of exciting to think about.