top of page

Blood Bastion

Description

Blood Bastion is a Tower Defense style video game where you have to defend your castle against waves of angry villagers. Defeating enemies grants you 'blood' which allows you purchase and upgrade towers to defend the increasingly difficult waves.

github.png

Project Length

12 Weeks

Genre

Tower Defense

Platform

PC - Android

Project Overview

Blood Bastion was the final product for my final production group assignment at AIE. For this project, my role was the lead and solo programmer and as such it was my job to create all gameplay features into the game. Features that included, the towers mechanics, the pathfinding and enemy mechanics, general gameplay such as player health and waves. I also created several shaders and particle effects that were used throughout the game.

Tower Placement

   The placement script works by first selecting a tower by receiving information from the buttons. Then the cursor finds the floor and makes sure that the ground is placeable ground and not the track, a tower or scenery. Once the tower is placed it then spawns an instance of the tower prefab on where the cursor is and activates it, allowing it to target and attack enemy AI. This is supported by the placement shader I created which is reads red when unplaceable and green when it can be placed, to make it easy for players to understand when they can and can't place towers.

​

image_2023-07-04_132623599.png
Tower Targeting

   The targeting works by accessing a list created by the wave spawner script that keeps track of all enemies active, this is a fast and optimised way of scanning all enemies on map. The targeting script then uses the list to find the location of all enemies in the scene and measuring the distance between them and the tower. If the distance is smaller or equal to the towers range stat, the tower will set the current target to the enemy and attack the enemy using the attacking script until the enemy either dies or leaves the towers range. Targeting is also effected by camouflaged enemies and taunting enemies. Camo enemies can only be detected by certain towers and taunting enemies will make itself the target of all towers in range, regardless of any other factor.

Wave Spawning

   Waves are spawned using a wave manager in conjunction with scriptable objects. The wave manager is designed to allow full customization of what spawns in a wave, the quantity and density of the enemies in a wave. Each wave scriptable object includes multiple groups each dedicated to its own enemy type, each group has its own information that is accessed by the wave manager which is then used to spawn the waves. This information includes;

  • Type - What enemy is spawning.

  • count - How many of the enemy type.

  • rate - How frequent each enemy in the group is spawned

  • delay - The time until the next group spawns.

The wave manager also handles smaller functions such as wave intermissions and end of wave currency.

image_2023-07-04_125853643.png

Enemies

The enemies in each wave determine what towers and upgrades the player should buy. Each enemy is different and some have special effects and traits that the player needs to specifically adapt to.

Towers

Each tower has its own strengths and weaknesses that need to be weighed before buying and placing. Each tower has their own upgrades that increase the towers potential and some counter specific enemies.

bottom of page