CAGD 495 - Stumble Sprint #6

 During the Sprint Kickoff, some bugs accumulated in my bug board that were crucial to fix to gather good playtest data. So, fixing those was the first priority before developing new features to add to the game. The objective of the Sprint was to solidify the core game loop into a playable and loopable state and tackle the game's UI.

So, one of the major problems with bugs was the inconsistency that the slap mechanic had; sometimes, it would work, and other times, it would execute differently than intended. To fix this, I had to understand how to use a SphereCast, which detects all Colliders within a sphere radius that is not a game object in Unity. This allowed us to detect all the players within the sphere radius and push them if they were in the radius. After implementing this, the slap became consistent, and players could push each other with no problem.



Another bug was a prototyped mechanic that was not meant to be in the game; when the player dived, it would cancel the reset of its vertical momentum, and therefore, the player's dive would cancel its ascend or descent. After some testing, this mechanic was discarded; however, some of the code was left behind, and if the player pressed the jumping button repeatedly, they could glide slower. Luckily, this fix was straightforward since it was a single line of code that broke the mechanic.


After fixing these significant bugs, I started working on developing a fix for the UI controller. Previously, the game had UI, and it could be controlled with a controller; however, there were various inconsistencies with it. At first, I thought the best approach would be fixing this system; however, it could have been more modular, and I did many iterations on possible fixes. I ended up taking another approach and re-doing the system. Still, before this, I started researching Unity’s Event System, Unity’s Multiplayer Event system, and the UI Input Module that goes with it. In addition to reading the documentation, I looked at various tutorials on how the system worked and the ways they connected it. With this, I finally made a working prototype that allowed flawless controller navigation on the UI and gave access only to the host to the UI.



Since the Controller UI was fixed, I also implemented the pause menu, a variant of the main menu that was adjusted to fit on the screen. The pause had some inconsistencies since it also required stopping the playtime. I had to change some of the menu interpolation to run on unscaled time; that way, the game could be frozen when the player paused, and all the UI interpolation could keep working. When the game is unpaused, the player can access the player controller.



The rest of the stuff that I did during this sprint was miscellaneous. I started Importing some of the cosmetics the 3D artists made; however, with this, I found a flaw in the cosmetic system, which was that the cosmetic position would not be relative to the enemy but instead relative to the cosmetic itself. So, I made a base cosmetic position and then made the cosmetic a child that can be adjusted for each cosmetic individually.


One of the things that the designer wanted to implement for menus was hotkeys for quick navigation. So, on menus, there are hotkeys to navigate forward or backward through the menus, and the designer also added visuals for them so that the player knows what key does what in the menu.


Overall, this sprint went very well. There was a lot of feedback on mechanics that needed further tweaking and bug fixes that needed attention, but they were tackled on time. The sprint went well, and the game looks more solid than ever. There were various hurdles along the way, but having them fixed has the game in a great state. The next sprint is going to be the last sprint for this game, so there is going to be the final fixes and implementations to the game.


Comments

Popular posts from this blog

CAGD 373 - Pirate Game Assets Final

CAGD 470 - Locked in Sprint #1

CAGD 495 - Stumble Sprint #3