Back to projects
An online multiplayer game icon

An online multiplayer game

Game developed with C# and Unity to learn UDP sockets and optimization.

An online multiplayer game
UnityC#Game developmentMultiplayerHostingUDP socketsOptimization

Summary

This project is an online multiplayer arena game where players control spheres to push each other off the map. The game offers two modes: a solo mode (offline) where you face AI opponents in a round-based system, and a multiplayer mode where you can play against friends in real-time with a lobby system. The game is playable on Windows and Mac and can be downloaded from my GitHub repository.

Why this project?

I built this project to learn game development, but more specifically to understand how servers work and how they manage to be fast and efficient without latency. This project was an excellent opportunity to learn about sockets, UDP vs TCP, how to secure a server to prevent cheating, and how to optimize the data to send to clients versus what to calculate server-side.

Features

Key features include physics-based movements and realistic collisions. In solo mode, you face AI-controlled spheres that become stronger and faster after each round. Online mode can accommodate around 10 players without noticeable latency, you can create a private lobby to play with people you know and customize game settings (score, name, etc.).