← All work
Tower Defense poster with the names of everyone who worked on it
Procedural tower defense

Tower Defense

Three procedural paths, an adaptive wave director, and elite enemies that are never the same twice.

My roleProgrammer
TeamSolo
EngineUnity 6 (6000.0.44f1)
Year2026

Windows build. Unzip and run the .exe.

Synopsis

The game

Enemies march down three randomly generated paths toward your tower. Spend coins on Gunners, Mortars and Frost units, then upgrade them as the pressure builds. The wave director watches what you rely on and pushes back. From wave three, elite enemies roll random traits like Shielded, Splitter or Frost Immune, so no run plays out the same way.

Single-player 3D tower defense for Windows PC. Place and upgrade three defender types to protect your tower while an adaptive wave director builds every wave around how you play.

Project brief

The brief

A three part solo programming project for Game Development 3B (GADE7322). The brief asked for a complete tower defense game in Unity with procedural terrain, varied units, an adaptive wave system, upgrades, custom shaders, visual effects and an original procedural feature.

Credits

  • Gift Zowa · Programmer
My role and contribution
  • Solo project. I owned the full codebase and every system in the game.
  • Procedural terrain with three enemy paths to the tower.
  • Three defenders and three enemies that each attack differently, including a Runner built as a small state machine (Running, Dashing, Returning).
  • An adaptive wave director that reads player behaviour through a PlayerTracker and plugs in new rules through an IWaveModifier interface.
  • Per-unit upgrades that change stats and looks, and unlock perks like the tower's shield dome.
  • Two custom URP shaders (hit wobble with vertex displacement, and an energy shield ripple) plus a post-processing pass.
  • Seeded elite enemies built from 8 random traits and paid for out of the wave budget.
Technology

What I used in my part of the project.

  • Unity 6 (6000.0.44f1)
  • C#
  • URP
  • HLSL / ShaderLab
  • Renderer Features
  • Kenney Tower Defense Kit (CC0)

Why this project

This is my systems project. The interesting part is the feedback loop: the player gets stronger, the director notices and spends its budget differently. My lecturer's feedback on Part 2 was that my units all attacked the same way, so in Part 3 every unit got its own attack style.

In the game

Screenshots

Process

How it was made

Process: EliteGenerator.cs plugs into the wave director through an in
EliteGenerator.cs plugs into the wave director through an interface. Elites are bought from a share of the wave budget, so the director has to choose between more enemies or stronger ones.
Process: Upgradable.cs. One upgrade call changes stats, adds a ring,
Upgradable.cs. One upgrade call changes stats, adds a ring, emblem and glow, then tells the rest of the game.