We are approaching the last week of the production cycle, with this we have been assigned our tasks for the week and is approaching being finished. My goal for this sprint was to refine our diver movement and fix the issues we’ve been having with the previous build.
Previously we were using a rigid body with force based acceleration and rotation. The issues with this was generally a lack of control, players were bouncing off surfaces, taking too long to start up, and just generally having issues with control. We decided that the fix would be moving to a character controller based moment, this gives us full control over the player’s movement and reduces the amount of bugs that were being produced!
The big downsides of character controllers is having to hard code in physics simulations, however due to the nature of this game we don’t need to worry about this as the only major physics that the diver will encounter will be gravity. Other than this we can have all our current movement coded through this character creation. This switch alone already fixed our blocking bugs and has tightened control!
Thankfully one of the other programmers on the team had experience with these systems, so they did the initial setup while I focused on tweaking and polishing the movement to fit into our game!
For this I fixed rotation movement while moving forward, all movement while falling, and restricting animation speed wile falling! While this would all be possible with a ridged body, it was far simpler to implement using the character controller!