C#, .NET game network solution built for fast-paced, online multiplayer games, plus a Player vs. Player First Person Shooter built with Unity to demo.
Q1 2023 - Q2 2023
Overview
This is a large solo project producing a scalable network solution that can be used in the creation of modern, fast-paced, online multiplayer games. The system is a lightweight framework for replicating a shared game simulation between a server and clients, implementing techniques to reduce the negative effects of network latency and providing a more immersive and competitive experience for players.
The project also includes a minimal online player-vs-player first-person shooter built in Unity to demonstrate the capabilities of the solution. This genre requires accurate synchronization of the simulation on all nodes to maintain a fair, balanced environment, making it a relevant test for the solution.
This page presents an overview of the entire development process, from the original pitch to planning future features.
The Concept
To start, my elevator pitch for the project was the following:
“A custom networking solution written in C# for Unity 3D, used to achieve fast-paced multiplayer gameplay in a basic first-person shooter demo.”
I wanted to use this project to explore modern network programming for games, specifically in the context of multiplayer first-person shooters, as they make up one of my personal favourite genres and are among the most difficult games to network.
This is because these games are typically fast paced and highly competitive, requiring very accurate replication of the game world across all players’ machines to maintain fairness.
If not handled correctly, differences between each local simulation at a given time can cause perfectly aimed shots to miss, or players getting hit despite dodging the shot on their screen, or more fundamental issues like delays between inputs and their corresponding actions.