Priest of Firepower

Role: Network & Gameplay Programmer

A demo built for the Online & Networks subject at CITM-UPC. The goal was to understand the internals of a game networking layer — from sockets and authentication through to synchronization models, object replication, and binary serialization — all implemented from scratch without using Unity's Netcode.

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 allow themselves to be serialized in binary format; the replication manager ensures the serialized data arrives at the matching object on the destination machine. Network Variable support for automatic serialization is also included.

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.
Enemy sniper behaviour in Priest of Firepower

About the GAME

A 2D top-down shooter where two players cooperate to fight waves of enemies. The game uses a Client-Server network model with State Synchronization and Binary Serialization, all built without any engine networking framework.

Wall weapon pickup interaction
Interactable chest in Priest of Firepower