Gameplay
As a fighting game, the primary gameplay focuses on defeating opponents using the basic combat mechanics implemented in the game. Players can select their character from the main menu and choose to battle against AI or another player in co-op mode.
The game features five unique fighters, each with their own animations. However, all characters deal the same amount of damage, ensuring balanced gameplay. From the main menu, players can select between single-player and co-op modes. In single-player mode, players face off against AI opponents, while in co-op mode, players can compete against another player. Note that co-op mode is available only in offline mode, as the game does not support online multiplayer.
Additionally, players can customize their experience by selecting different backgrounds for their fighting stage, adding variety to the gameplay.
Rules
1. Players can use the combat mechanics to deal damage to their opponent.
2. The player loses if their health reaches 0.
3. The player loses if the timer reaches 0 and their remaining health is lower than their opponent's.
4. The player wins by reducing their opponent's health to 0.
5. The player wins if the timer reaches 0 and they have more health than their opponent.
6. Each match follows a best-of-3 format, meaning the first player to win 2 rounds wins the match.
7. Players can select the AI difficulty from the main menu.
2. The player loses if their health reaches 0.
3. The player loses if the timer reaches 0 and their remaining health is lower than their opponent's.
4. The player wins by reducing their opponent's health to 0.
5. The player wins if the timer reaches 0 and they have more health than their opponent.
6. Each match follows a best-of-3 format, meaning the first player to win 2 rounds wins the match.
7. Players can select the AI difficulty from the main menu.
Additionally, players can personalize their experience by choosing different backgrounds for their fighting stages, adding variety to the gameplay.
User Interface (UI) and Heads-up Display (HUD)





Game Features
• A camera that remains centered on the level.
• Basic fighting mechanics for the player.
• Co-op gameplay system.
• Player health, movement, and damage systems.
• Enemy health, movement, and damage systems.
• Player controller functionality.
• 8 unique background levels.
• 5 selectable characters.
• 5 distinct animations for each character.
• Character selection menu.
• Background selection menu.
• Timer for each fight.
• Basic fighting mechanics for the player.
• Co-op gameplay system.
• Player health, movement, and damage systems.
• Enemy health, movement, and damage systems.
• Player controller functionality.
• 8 unique background levels.
• 5 selectable characters.
• 5 distinct animations for each character.
• Character selection menu.
• Background selection menu.
• Timer for each fight.
Assets
For the development of this project, we required 3D character models for the in-game characters. A total of 5 different 3D character models were needed for player selection. However, due to time constraints and limited manpower, we decided to source all assets from the third-party website, Mixamo. Using Mixamo not only provided us with high-quality 3D character models but also allowed us to utilize their pre-made animations for each character, saving valuable development time.

Game Script
In addition to the combat mechanics, player movement plays a crucial role in this project. In this section of the script, we focus on creating a player movement system that fits our fighting game. The OppPosition variable on line 136 stores the opponent's location, allowing the character to always face their enemy. To achieve this, we use a coroutine on lines 134 and 138, enabling the player to flip their character and look left or right, while the AI also adjusts accordingly. Since the player can only move left and right, we use the horizontal input (line 146) to control movement. Additionally, we implement walking animations for the left and right movement.
The next feature is backward movement, which is common in fighting games. We implement this mechanic, along with its corresponding animation, on line 157.
We also wanted to allow both the player and AI to jump and crouch. For jumping, we use the vertical axis—if the value is greater than 0, the character will jump. Crouching is implemented in the reverse way: when the player presses the designated button, the value becomes less than 0, triggering the crouch animation and its timing.
The winning condition in this game is based on health. The player wins either when their opponent's health reaches 0 or when the timer runs out and the player has more health than the opponent. When a player wins, a "You Win" message is displayed, accompanied by an audio clip. Since the game follows a best-of-3 match format, the number of wins for each player is tracked and stored in the save script.












Audio
Background music and sound effects are essential elements in game development, regardless of the genre. In this project, we have incorporated both to enhance the player's experience. Inspired by Mortal Kombat, we added a sound effect that plays when the match begins. The announcer, a male voice with a deep pitch, will say "Fight!" to signal the start of the round. Additionally, when the round changes, the announcer will announce the current round number.
The announcer will also declare the winner of each match. In single-player mode, the announcer will announce the result for the player only. In co-op mode, the announcer will declare the winner of the round or match, depending on the outcome. These sound effects and announcements add excitement and immersion to the gameplay experience.
Animation
Figure below shows the animator for Morak, one of the playable characters in our game. The default state for all playable characters is Idle. From this Idle state, the player can perform various actions, each with its own corresponding animation. For instance, the player can punch from the Idle state or while walking backward. By utilizing Unity's animation system, we were able to make the fighting game more dynamic and engaging, allowing players to seamlessly transition between different actions.

Particle Effects
When a player is hit or lands a hit, a particle effect will be triggered. In addition to adding visual flair, these particle effects also serve as indicators, notifying the player when they take or deal damage. This visual feedback enhances the overall gaming experience, making it clearer and more immersive for the player.

Limitations
There were several limitations during the development of this project. The first limitation was the inability to implement special combat mechanics, such as special attacks or combo attacks. The second limitation was the lack of dynamic level designs for each stage, which affected the overall player experience. In comparison to other fighting games, where level design plays a significant role in enhancing the match atmosphere, we were unable to create such vibrant stages. The final limitation was the challenge of online communication. Due to remote collaboration, online discussions between team members made the progress of the project more difficult and slowed down development.