Unity Engine Multiplayer Game

Year

2025 - ongoing

Involved

Computer Science

Web Developement

Credits

James Maclennan

Idea

The first time I ever coded was in Unity. Me and my friends wanted to create a game together. But soon we realized how difficult that would be. From the broad components of the engine to the unique features of C# code, everything was new. It was really overwhelming at first. In fact, my friends gave up on it after two weeks, because it was too difficult. And eventually the project came to an end.

But it didn't stop there for me. There was something rewarding in seeing my code create something unique, even if it was very unspectacular at first. And so, I decided to embark on my Unity journey. Soon I was watching tons of YouTube videos about C# and learned all about the impressive features of the unity engine. And then I went on to create my first minigames, which I published to web.

Process

Each minigame grew in complexity and intricacy and I was learning as I went along. From school projects, to further web games and even a Hackathon for Game Development, I expanded my skillset with Unity until I felt comfortable to create something big. A project unimaginable just a year ago: A Multiplayer, Co-op shooter with more features than any game I had ever made before. This time I wanted to create something that would be worthy of uploading on steam (the biggest game distributor on the internet). So now, I had committed to my biggest project yet.

Game

I spent the first month working on the game itself and not so much on the multiplayer. This meant I implemented movement, characters, the ability to shoot, secondary items, a health system, waves and zombies. Whereby I spent most of my time on the zombies since these required 3 dimensional pathfinding, which is really difficult to do (video above). However I cracked that in about two weeks and started working on the multiplayer features. My multiplayer service of choice was Unity UGS, since they offer quality relay servers and other cloud services like cloud saving and remote configurations, with the opportunity to scale up on demand. From here I spent the next few months working on the various multiplayer features for the game.

Multiplayer Implementation

The first few weeks were spent on creating joinable relay servers, that run the main game. Since the game needs to synchronise player position and rotation, as well as when the player shoots and where he is looking at every moment, I had to optimise the game as much as possible. Then, for a few days I worked on my own, custom account system (seen in video) with cloud saving, so that the player can log in anywhere and have all of their items. Then I went on to code the lobby, which involved creating and displaying public lobbies, code joining and character customization, that syncs across the lobby. And finally, well up to this point in time, I used UGS's remote config to create a fully functioning item shop, that can manually be changed on the web and implemented remotely at any time (seen in video).

Since this is my biggest project so far and I am still in school, I can't complete the game just now. However, I plan to publish the game within the next two months and I am looking forward to sharing it with the Internet!