Since our original controller was cobbled together super quickly during the contest, I spent some time re-writing the player controller from scratch. There are some neat new mechanics like wall jumping, sliding, and backflips.The code is also a lot more cohesive and error proof! Since there is a bit of unreliability in components (especially across the network), I decided to add a little helper function which takes it multiple IValid.
// before
if ( !Character.IsValid() && !Camera.IsValid() && !Animator.IsValid() )
return;
// after
if ( !AreValid( Character, Camera, Animator ) )
return;
We are also using Small Fish's Shrimple Character Controller instead of the s&box's base Character Controller. I inadvertently dogfooded the controller for ubre, and I am pretty happy with how it behaves now. Apparently it performs way better, although it doesn't make much of a difference for a game like Micro Mayhem.