Website powered by

Tower defense project (C# Programming)

This is a technical prototype for a tower defense project, it's almost feature complete. It was inspired by 90s RTS games like C&C: Red Alert and modern games such as Bloons. It features an isometric camera and 3D graphics.
***
There are many interactive systems, the buildings and enemies existing on Unity's native Navmesh. The buildings can be bought and sold with a simple mouse click. Building placement is checked against other buildings and enemies, as well as the boundaries of the level. Upon placement the fog of war system updates and shows the enemies that leave the fog. Some buildings have neighbour effects and provide bonusses in terms of attack range and visibility, the fog of war updates to reflect this. There are different types of weapons, ammo and damage types. Some ammo might stun the opponent, some weapons fire in a radius around the building, other weapon only shoot straight at the enemy.
***
For the game balance I created three editors, based around Unity's native Gizmo system. Inside of the scene view I use debug images and debug lines to easilty visualise certain key values shared between buildings or enemies. As a result these values can be easily compared and tweaked from the editor. The third editor is used for level design and is also based on the Gizmo system. It displays spawnwaves as a timeline inside of a volume. Each image represent an opponent on a linear timeline, the further the opponent is to the horizontal axis the later he spawns.
***
Additionally, the game has audio in place. There's a rudimentary UI that passes the right references around to show to the use what is going on. And finally there is a gamestate system which works together with the spawning system, this system creates pauses to allow the player to set up and waits for enemies to die so the game can progress to the next wave and in doing so give the player additional in game currency.
***
The project is stable and close to alpha status from a technical perspective.

The project in Unity.

The project in Unity.

Early game progression from game and scene view.

Early game progression from game and scene view.

A maximized game view shows the placeholder graphics.

A maximized game view shows the placeholder graphics.

The game with its currently set up spawnwaves reaches its conclusion. This is the final build the player has made.

The game with its currently set up spawnwaves reaches its conclusion. This is the final build the player has made.

The level design is done through a time line, the box represents a spawnwave, the spawn time on the horizontal axis. In one wave we can see four groups spawning with up to three simultaneous spawns, most of the spawns are at regular interval.

The level design is done through a time line, the box represents a spawnwave, the spawn time on the horizontal axis. In one wave we can see four groups spawning with up to three simultaneous spawns, most of the spawns are at regular interval.

The buildings are balanced against each other, with the graphic representing the building and the white debug line representing a key value. ScriptableObjects are easilty accessible from the inspector.

The buildings are balanced against each other, with the graphic representing the building and the white debug line representing a key value. ScriptableObjects are easilty accessible from the inspector.