Progress Report 7

Added a main menu with controller functionality and a working multiplayer matchmaking system
Right n ow you can only play as the one fighter, but I plan to add a character selection menu in the lobby before the game starts.

Adding Multiplayer

Problems:

Out of the box, the multiplayer barely functions.
The two players can see each other, but each player overrides both players actions and movement

To fix this, I will try to use some networking concept scripts I made for 🖐️Krants, a VR and PC multiplayer project
Fixed the movement using the script from 🖐️Krants
I also tried to sync the health and object instantiation which only partially worked
Health isn't properly synced as the client treats all players as if it was itself, ignoring ownership
Instantiation works for the initial instantiated object, but when the large rock is destroyed, the smaller rocks are not synced between clients
The sprite flashes also seem to cause invisibility to the affected player if they are not the viewing client

Solutions:

Fixed the players turning invisible on hit by allowing each client to update the SpriteFlasher.cs script for all players
Fixed all the problems by removing multiplayer alltogether

New Character: Blob

Noah, AKA Mr. Art man has completed the animations for the second and final character for this prototype, the 🪃Boomerang Blob Character!

I once again had to endure the painstaking process of removing the background from each frame, with the assistance of image AI, and then manually go through each frame to clean it up.
After that, I imported all the new frames into Unity, where I then created animation loops for all the states, being sure to clean up any timings, or switching frames around where I see fit.
In the end, there are 13 states for the blob guy.
I then created t he blob guy prefab, where I specified the new animations and began working on the abilities.
The blob guy is unique, in that he has 2 states he can be in: regular mode, and puddle mode
Certain actions require the player to be in the regular mode, others in puddle mode, and some don't care which mode the player is in.
If you want to learn more about the blob characters abilities, go to 🪃Boomerang Blob Character

A large problem I had to solve is how to have separate animations for walking, idling, and landing depending on the puddle state.
I believe the solution I implemented is quite elegant.
The same script that tracks if the player is in puddle state or not contains animation override states for walking, landing, and idling in the puddle state.
When the game starts, that script remembers the original walking, idling, and landing animations from the non-puddle state.
Then, if the player is in puddle state, the puddle state checker script simply changes the animations in the player controller to the puddle animations, and when the player goes back to the non-puddle state, it switches back to the original animations it remembered from earlier.


note the white circles are temporary, they are placeholders for the hurtboxes I'm still fine-tuning

The Final Stretch

Finished Blob Character

Round Manager

Local Multiplayer Functionality & Polishing

Standardized & polished the menu GUI
Fixed a bug where if the player used their mouse to navigate the GUI, the controllers would no longer be able to navigate.

Created a character selection screen and character selection manager.
Both players are prompted to select a character, when they do, the character is saved as a static gameobject variable to be instantiated at the start of the fighting scene.
Since my design philosophy when creating the round manager was to never destroy any character, I don't have to worry about referencing the static player gameobejcts again, unless the players quit and start a new match.