CAGD 377 - Slippin Away Sprint #4

 For the Sprint, there were various things that I wanted to tackle, mostly fixing bugs and adding some basic animations. During Sprint Kickoff, I was tasked with polishing some of the previously implemented mechanics. My first approach to handling the problem was to set a priority for every bug and start working from there. After having the feedback from our playtesters, I had a general idea of how to fix some of the core bugs. 


First off, It was polishing the character controller so that the player wouldn’t get stuck as easily; previously, if the player were in a corner, they would get soft-blocked. After looking at the code, it was a problem in the main logic of the character controller, so I had to change various aspects of the character controller; first, I had to make it so that the controller is stuck and independent and not depending on the box collider attached. Using my previously implemented custom collision detection system, I could check when the player hit a corner without using the Sphere collider attached to the game object.


Using the custom collision detection system, I could also get the direction in which the character collided and snap it to a degree. So, using the data from the collision detection, the character will get a rotation angle, and the model will be rotated depending on the surface the player landed on.



After this, I was able to implement something I wanted to implement into the game, which was adding some basic character animations so that the gameplay would feel smoother and Guppy would feel more like a living being. I started doing the idle animation in which if the guppy is in the ground, it will go back to its original form and stretch; it will also have a slight movement left and right. I also added the Jump Animation in which the guppy will perform a downwards and upwards animation so Guppy can feel like it's jumping, and there is some pre-stretching instead of just jumping. Thankfully, because of the way the character controller was set up, I did not face any problems while developing and implementing these animations.




After this, one of the most complicated things to do during this sprint was developing the Star System, which is meant to display how many stars you got at the end of a level. This also meant that we needed an objective system. Unfortunately, another objective system was previously implemented in the game. However, working with the Star System wasn’t as modular, so I had to make a new one from scratch. Something that I had in mind while developing the objective system was so that the designer process would be easier by using scriptable objects and choosing the objective type. For this sprint, the designer only wanted two objective types: timed objectives and reaching the end. Thankfully, since we were already keeping track of the game in the Race Manager, it was easy to use that playtime to check for timed objectives. The system was also made so that if the designer wanted to ask for more objective types in the future, they could be easily added to the game. After the objective system was done, I had to work on the Star System, which would check the state of the level objectives and display them once the player ended, either by dying or reaching the end.



Finally, during this sprint, I had to make an Android build, which faced some challenges due to the changed Android bundle version. However, after some debugging and talking with the producer, I was able to figure out the problem, and we were able to push the build to the Google Play store.


Overall, this sprint was great, and we made a lot of progress. My team has been keeping up with all their work, allowing the whole team to be on track to release this game on the programmed due date. During this sprint, I was also able to work on and understand more about the Unity animation system.


Comments

Popular posts from this blog

CAGD 373 - Pirate Game Assets Final

CAGD 470 - Locked in Sprint #1

CAGD 495 - Stumble Sprint #3