CAGD 495 - Stumble Sprint #5

 During Sprint Kickoff, some significant changes were made to the game core loop, including a change in how it was going to be handled. The game would now be handled by points, and it would be divided into modules. The modules can be of two types: last man standing and race. This meant I would have to change the main backend of how the system was being handled.


The backed rework for the new game structure was the highest priority for this sprint, so I tackled it first. Thankfully, everything was broken down from the previous rework, and now it was easier to change the system and the order of events needed to happen for the game to start. I started by removing the order of events and dependencies and reorganizing them on a UML diagram to understand what needed to be done.  For this new re-work, I decided to make the systems even more modular and have some required soft dependencies. The game needs the dependencies necessary to start, and then the soft dependencies that are not essential for the system to start are checked; however, if they are present, they will be used.



Another aspect of the backend rework was adding a point system. Luckily, adding a point variable for each player was fairly easy because player data management is already in the game. Adding Points also meant that I had to tear down the Podium scene, so now it would work on a point-based instead of a level placement. So, it would take all the points and calculate who has the most points; after that, it will return a list of the players sorted in the order they finished.



After finishing the essentials, I started working on the scoreboard, which displays the scoreboard, the players, their placement, and their total points. Something that I knew that I was going to need was the scoreboard displaying who got the points, and I figured that players are more likely to know who got the points if they were able to see their character in the UI. I thought of doing it sprite-based; however, I figured it would be way better to display the character in real-time, which will accurately display the player model with its cosmetics and give the player a chance to display emotes when they get added to the game. After messing with the camera renderer and making a layer masking, I got the 3D player into a 2D sprite And used that in the scoreboard to display the player points.



After that, I added some animation and quick linear interpolation to increase the number and display the player's final position. A small number will also pop up, and the player can see how many points they got during that module.


After that, I added the slap, a quick mechanic I wanted to be playtested, so now the player had a slap ability. The motive behind adding the slap is to increase player interactivity while lowering the risk; the Dive was good; however, it involved a possible risk of falling at the cost of trying to bump someone. The slap is an in-place interactive method, and after hooking it up to the input system and adding a small delay for when the player could slap, it was finished.



With the slap mechanic added, I changed the focus to a previously found issue, which was how the Lobby being hard coded, so I decided to make the lobby more modular and make it more visually pleasing, so instead of having a set scenario, the lobby has spawnable rooms that will spawn four rooms by default at the start of the level. All the slots in the UI are filled with a placeholder screen, and once a player joins, the screen will be lifted, and their character will be displayed.



The last big thing I added during this sprint was the Taunts, which meant I had to implement a Taunt wheel, Cursor, and emote icons themselves. I started by doing the cursor and rotating it to the mouse's position on the screen. I had to do some extra research to convert the mouse into the UI position. After having that cursor rotating,  I started working on the wheel itself, so I got a ⅛ of a piece as a sprite and made the UI wheel; after having that, it was time to make it so when the cursor was pointing to the wheel section, that taunt will become selected. After that, I decided to implement the animations, so I had to add an add-on for the already-made player animator and add the emote-triggering. Finally, I added support for a split-screen system and made the UI display for each separately.



I also added quick access to emotes, which can be done by using the select keys on the D-pad on the controller and the arrow keys on the keyboard. This will play the emote on the wheel that corresponds to that direction.


Overall, this sprint was very productive. Thankfully, I was able to tackle the sprint objective fairly quickly. Because of that, we got the necessary data playtested, which allowed us to polish it even further in this sprint. The Stumblebumps team has been outstanding at completing their work on time and communicating new assets and documentation. I would like to maintain productivity as we approach the end of the project.


Comments

Popular posts from this blog

CAGD 373 - Pirate Game Assets Final

CAGD 470 - Locked in Sprint #1

CAGD 495 - Stumble Sprint #3