CAGD 370 - Goo Game Sprint #4

    Continuing with the development of the Goo Game, we had a playtest during this Sprint. I was eager to hear what the playtesters had to say about the mechanics implemented in the last Sprint and consider any suggestions for improvement for the game. 


After the playtest, we compiled the feedback into a single document, and we had some significant things that needed to be fixed for the commodity of the testers and players. First, we had the main issue that most of the testers complained about and had multiple suggestions on how to fix it. The camera is an essential piece of the game. Unfortunately, at the start of the level, the player is in a room, and the camera goes outside the playing area, blocking the tester from seeing the character. Something else that many pointed out was the mouse sensitivity in the player’s camera control movement.


With those main issues in mind, I started working on the Camera movement. At first, for the camera control, I had my script that would go around the player and always focus the camera on the player. I started researching ideas on how to fix this problem, and I discovered a unity package called “Cinemachine”, a package dedicated to game cameras that focus on the player. I looked further into this package, and I found out that there was an extension to the camera that was Camera Collision, which made the camera zoom into the player when an obstacle obstructed the player's view of the character. After tweaking the Camera Controller and the Collision settings, I managed to get a working product that satisfied my expectations.



After that, I started focusing on the other issues presented during the playtesting. The camera controls sensitivity. So, with the new camera system, you could adjust the values in the inspector, but I wanted the player to be able to change these values while playing the game. I started working on an options panel in the UI so that the player could change them. I added sliders that would show the limit of what the player could change the sensitivity multiplier. After that, I started connecting the Options Panel to a script that would search for the Camera and change the values once the slider is adjusted. After finishing up all the script connections, I had a working options menu. I also added buttons so the player could invert the x and y inputs of the camera if they wanted.



Finally, I wanted to implement a new mechanic in the game. Luckily, I talked to my team lead during Sprint Kickoff and knew precisely the mechanic I wanted to develop. The player’s ability to pick up an object and move it around. This was a big challenge because I couldn’t imagine how to do it. But after a while, I figured out that I wanted to do some constant linear interpolation while the player was doing the holding action. To visualize this, I added a small invisible cube in front of the player that marks the location of where the item will be held. With a lot of effort and attempts, I had a working holding ability with the previously incorporated interactable block.



There were some other minor add-ons during this sprint, like a Death Counter in the UI and Titles in the UI so the player knows in which menu they’re in. Overall, this Sprint was unique; many interesting mechanics were developed for the game, and I learned how to use and manipulate cinemachines Cameras better. I had help from my team lead on how to achieve the Interpolation, but overall, everything I wanted to complete during this sprint was completed, and I’m very proud of how it all came together.


Comments

Popular posts from this blog

CAGD 373 - Pirate Game Assets Final

CAGD 470 - Locked in Sprint #1

CAGD 495 - Stumble Sprint #3