Priest of Firepower
Role: Network & Gameplay Programmer
The objective of this project is to learn the internal structure of the networking layer in a video game. From the sockets, authentication to network models, synchronization models, object replication and object serialization. So, the Unity's netcode is NOT used in this project, but a custom one created from scratch.Github
About the NETWORKING
Networking Features:
- Authentication
- Network Manager
- Network Object
- Network Behaviour
- Replication manager
- Replication Headers and Streams
- Input Headers and Streams
- Packet, encompasses both replication and inputs
Structure
The chosen structure for this 2D top down shooter is "State Synchronization" for the synchronization model, "Client-Server" for the network model, and "Binary Serialization" for the object serialization.
About my CONTRIBUTIONS
Object Replication
Network Objects over all clients should have the same Network Id. The spawning, as well the de-spawning, of an object in the server should be replicated in the clients.
Object Serialization
Network Behaviours allows itself to be serialized in binary format, the replication manager makes the serialized arrive at the same object in the destination machine. There is also the feature of Network Variable, allows for automatic serialization, but it is still WIP.
Network Object
Encompasses all the Network Behaviours of inside a Network Object, as well manages the transforms and the interpolations of these.
Network Behaviour
An extended monobehaviour but with added features like serialization, replication managing like spawn, de-spawn, replication streams, and input sending.
Networking of Enemies & UI
The behaviour of enemies in a shared and in sync state between all machines. The refactoring of single player UI into a networking UI capable of handling multiple player and multiple element affected by those players.

About the GAME
A demo made for the Online & Networks subject at the CITM-UPC. The objective of this project is to learn the internal structure of the networking layer in a video game. From the sockets, authentication to network models, synchronization models, object replication and object serialization. So, the Unity's netcode is NOT used in this project, but a custom one created from scratch.

