This prototype was created for a University assignment. I modelled every asset, and also created the player's weapon animations.
The prototype featured several systems, such as enemy spawning, building creation and management, multiple modular weapon types which all derive from the same class, and multiple different enemy types that can hold different types of weapons.
Waves are split into sub-waves. A sub wave consists of enemies, and enemies can have all their details changed. So when creating a wave, you first create the enemies for the sub wave. So you can change things like their speed, weapon, type of enemy, health, size, etc. Then for the sub wave itself, you can choose things such as which type of spawning mechanism to use: fountain which will produce enemies over a time span, or burst, which will produce a certain amount of enemies in one go. Then you can combine these sub waves, to make waves.
This system is extremely modular and allows for a variety of enemy types, weapon types and the combinations of different enemies together.
Buildings are similar, they are all derived from the same class and creating a new building is simple. When creating a new building, you must choose whether it is: attacking, defensive or a utility building.
Utility buildings are extremely specialised but include the Dispenser and the Jump Pad. These buildings, as their name implies, provides the player with utilities such as endless scrap metal, or extra jump height.
Attacking buildings will attack nearby enemies. You can change values such as: whether they shoot projectiles or use hitscan to damage enemies; should the hitscan attack explode; the class of projectile to shoot; the speed at which to shoot; the range of the sentry; the health of the sentry; etc.
Each entity also uses the same health component, which is another system. This system simply manages an entities, health, max health and any damage or healing that is inputted. It will produce a "signal" once it has taken damage and when it dies. This allows for enemies to ragdoll when dying, and for buildings to explode when destroyed.