Zoners

  • Category: Game development
  • Tools used: Unity Engine, C#
  • Project date: 2020 - 2021
  • Project URL: github.com/Grenco/Zoners

About

This 4v4 online multiplayer game places you in a maze, connected to your neighbouring teammates by a line. The lines come together to create a "danger-zone" which you can use to trap and damage the other team. Try to score the most kills before time runs out!

Development

The game was developed in Unity Engine, with the code being written in C#. I used this project to introduce myself to the basic concepts of game development, and everything in the game is devloped from scratch by myself.
Some of the features include:

Online Multiplayer

The game is fully networked using Photon Unity Network (PUN). This includes setting up lobbies with a room name, managing lobby members, and full replication of player movement and details.

Procedurally Generated Maps

Every time you load into a new game, the map is different. Using the maze generation algorithm from Berserk for generating mazes with open areas, a random map is created by the master client/server and then sent to each client for the mesh to be generated locally.

Mesh Manipulation

During the game, the mesh for each team's zone is manipulated programatically in real time. This includes checking for overlaps and updating the mesh to match the players' positions.

AI-Controlled Players

If you can't get a party of players together, AI players are available. They are coded to avoid other players by ray-casting in different directions to detect visible players. Each team member has a different preferred direction of movememnt and an algorithm is used to decide which direction to move in while avoiding obstacles and repeated movement patterns.

Collectable Powerups

Players can collect powerups to increase their movement speed or power up the damage from the zone. Powerups were developed to be easily added with different effects.

UI

I developed all of the UI, including a load-screen and lobby screen, minimap, zone-strength bar and timer and scores at the top.