Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
xGauss05 authored Jan 15, 2025
1 parent 3dc2169 commit 13cd929
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,36 @@
https://github.com/Ethanm-0371/Networks_Project

# GitHub Release
https://github.com/Ethanm-0371/Networks_Project/releases/tag/v.0.2
https://github.com/Ethanm-0371/Networks_Project/releases/tag/v.0.3

# List of Contributions

- Jonathan Cacay - [xGauss05](https://github.com/xGauss05)
- Ethan Martín - [Ethanm-0371](https://github.com/Ethanm-0371)

All of the work was done using pair programming, where both of us collaborated at a single workstation. This ensured that we could work together seamlessly on the same .cs scripts without facing problems related to merging code. Merging changes in Unity can sometimes create more problems than it solves, so working this way helped us avoid such problems.
Most of the work was done using pair programming, where both of us collaborated at a single workstation. This ensured that we could work together seamlessly on the same .cs scripts without facing problems related to merging code. Merging changes in Unity can sometimes create more problems than it solves, so working this way helped us avoid such problems.

- We implemented a passive state replication model, where every single NetObject sends their actions towards the server, gets acknowledged and broadcasts it to all clients but the sender.
- Shooting behavior from the player where we used Raycast in order to implement it. Also implemented a way to avoid the camera clipping through the objects.
- Zombie behavior using a behavior state machine (Idle & Chase). These zombies are killable and are managed through an EntityManager and spawned in ZombieSpawnPoint/ZombieSpawnRoom tagged empty GameObjects. We send the following: currentState, spawnPoint, isRoomZombie and currentHealth.
- These behaviors also have a Wrapper of their own to send the data to the server.
- An extraction zone (green area) that if all of the current players in the lobby are in, the level will be completed and everyone will return to the lobby.
- Implemented Pause Menu. In this screen you can Continue, Exit Server and Exit to Desktop.
- A brand new Level_2 and MainMenu screen.
- Fixed jitter/latency for client side.
- Implemented ping to server. When a client does not receive a pong from the server, client gets timeout.
- A bandwidth problem was solved. Packets that were more than 1024 bytes are sent in the next update.
- When a Client exits the game, its GameObject destroys and broadcasts it to all the players. If the Server exits the game, all clients will be timeout.

# Instructions
- Make sure you create a server.
- Then, other clients should put the local host IP (127.0.0.1).
- WASD for movement Input. LMB to shoot.
- B to Start the game (only the host).
- E to Open the door.
- ESC open Pause Screen. (only in Gameplay)

# Main Scene to run in Unity
Scenes/Main_Menu

# Some difficulties
- There's an error when trying to move before starting the game. The game receives an action packet in which there is no owner for it and a null exception occurs. We added a delay of 5s so that the player can not input anything when all the players are loaded.
- There was a bug in which the players were spawning outside the safezone. It is currently fixed, but this took a lot of time to fix.



- In the shooting mechanic we wanted to implement for a third-person view, we encountered an issue. Our goal was to have the bullet originate from the gun’s muzzle and travel toward the crosshair in the center of the screen. However, if the player stood next to a column and the crosshair aimed at another column behind the character, the bullet would end up shooting backward. This created a logical inconsistency and resulted in unrealistic behavior.
- We encountered issues when trying to Destroy the GameObjects of the zombies. This led to a problem where, upon finishing a level, the zombies were not properly removed. Consequently, the client and server became unsynchronized, disrupting the correct functioning of the game.
- There's some slightly stuttering from the clients. Not the host. We aim to reduce this towards the last delivery.

0 comments on commit 13cd929

Please sign in to comment.