Tanks
A top-down networked multiplayer tank game where you have to battle other players by strategically bouncing projectiles off walls. This project was created for a second year university module.
- Duration
- 2 months
- Platform
- PC
- Module Grade
- 94%

Features
Room System
Each server can run multiple instances of a game using rooms. Rooms can be queried by clients and joined using unique alphanumeric codes.

Multiple Game Modes
Each room supports the 4 available game modes: Duels, 3 Player FFA, 4 Player FFA, and Teams.
Matchmaking
Players can join matchmaking for one of the four game modes and are shown the screen in Fig. 2. Once enough players are in the queue for a certain game mode, a room is created and the players are shown the match found screen in the Fig. 3.


Spectating
Players can view active games in the spectating menu shown in Figure 1.3. When a player requests to join a game they will be put on the waiting screen shown in Figure 1.4. Once the round finishes, they will be put into the game screen and receive the same updates as other players. Spectators also have an overlay with a leave button as shown in Figure 1.5.




Chat
The game has a chat that allows players in the game to communicate. Spectators can also use the chat but their messages are displayed in grey.
Prediction
To minimise network traffic, players only send inputs over the network. Other players then replicate the received input on their client.
De-synchronization prevention
To minimise de-sync, occasional transform sync packets are sent to make sure each players tank has the same position and rotation on all clients.
UML Class Diagram
