Tower Defense 3D - Blitzkrieg Master

Contexte :

In the first project of my training at the Gaming Campus, I realized in pairs a 3D Tower Defense in 3 weeks. This game was developed in C# with the Unity game engine. This is my first 3D project under Unity.

Game's rules:

The goal of a tower defense is to defend an area against successive waves of enemies moving along a route or not, building and gradually improving defensive towers.


Needs

At the end of the 3 weeks of the project, we had to have finished as a team a functional tower defense, without bugs and including the following elements :

  • -The game is in 3D with Unity’s standard pipeline rendering (“built-in”)
  • - The game consists of several levels (or successive waves) with a progressive difficulty
  • - The player loses when a certain number of enemies have crossed the level
  • - A level is completed when all enemies are eliminated
  • - The player wins when all levels are completed
  • - The game starts with a title screen that allows the player to start the game when ready
  • - Using pathfinding (NavMesh) for enemies
  • - Programming the behavior of turns (attack of enemies within range)
  • - Bonus: There can be several types of units (turns and enemies) with a different aspect and behavior
  • - The player can click on areas of the level (predefined or not) to build towers
  • - The player can click on towers to upgrade its.
  • - The game contains music and sound effects
  • - The game contains VFX (particle systems)
  • - The player can control the camera with the mouse and keyboard

Solutions

Difficulty modes

The game consists of three difficulty modes: Easy, Medium, Difficult. The number of enemies, the type of enemies and the number of waves to survive are random. The draw is based on the difficulty mode.

Difficulty modes screen

Enemies

We opted for four types of enemies: soldiers, jeep, trucks and tanks. They even behave alone their vitese, their life points, their duration of invulnerability and the money they bring back are different. So the soldier will be less resistant than the jeep but will be faster than the tank and so on.

Towers

Regarding turrets, we have chosen to make three different types: machine guns, flamethrowers and mortars. The turrets are soldiers in this game that can be placed on predefined locations.

Machine guns
Flamethrowers
Mortars

Turrets can be upgraded up to two additional levels. The improvement increases the damage, reduces or increases some additional parameters. For example, the level 3 mortar is more powerful than the first one but the time between two shots is more important. The turrets are placed by clicking on the menu on the left. The turrets can also be sold.

Modification screen : (1) Upgrade (2) Sell

What I have learned thanks to this project

It was my first real 3D project under Unity, a real fighter’s course but I love challenges. I have learned several technical skills:

  • - Scriptable Objects
  • - NavMesh (Surface, Components)
  • - Lightning
  • - UI (TextMeshPro, Slider, Button)
  • - RayCast
  • - Prefab Variant
  • - Sounds
  • - Particles
  • - Game Design
  • - Animation

I have also developed my soft skills:

  • - Independence
  • - Communication
  • - Decision making
  • - Creativity
  • - Flexbility

Even if this one is not perfect. I’m proud of it. I hope you will have fun playing as much as we had fun developing it!

Try it !

Download the project