
SUNSET HALL ALLIANCE
A chaotic third person tower defence game; influenced by games like the 'Orcs Must Die! series'. Battle against hordes of enemies using interesting & creative traps. Can you hold them off or will darkness reign over the Sunset Hall Alliance?
Team / Duration: 3 / 7 Weeks
Genre: Tower Defence
Focus: Create a short vertical slice for a "tower defence" game
My Role: Games Designer / Systems Designer
Engine: Unreal Engine 5
Purpose: MA Final Project (2022)
Software Used: Unreal Engine 5 / Adobe Illustrator / Git Hub (Source Control)
Design & Mechanics
This project required multiple systems to be created. As I was the games designer / tech designer, I was tasked with creating these systems. I wanted to possibly open this game to be multiplayer in the future, therefore I wanted to create the blueprints in a way that allows for this to be possible, by using interfaces & event dispatchers.
SYSTEMS CREATED:
-
Customisable wave systems (using Structures & Data Tables)
-
Varied enemy types, traps & status effects (using Blueprints, Behaviour Trees & Navmeshes)
-
Implementing UI & Menu's (using the Widget System)
-
Ability System (using Unreal Gameplay Ability System)
Dynamic Collision box

Shoots out a linecast to calculate required length of the collision box

Using the 'returned' linecast length with preset width and length values. The collision box height value is set to the linecast length and the collision box is automatically sized to the appropriate size


Shoots out a linecast to calculate required length of the collision box
Custom AI MoveTo

Task is called by the AI's Behaviour Tree

The Task calculates the AI's path and checks if the path to the objective is blocked. If it is the enemy will perform another Task.

Task is called by the AI's Behaviour Tree
Wave Spawner

Created a Data Table using Structures (Structures include an array for character types, an array for amount of each type to spawn for a wave & an array for which spawnpoints to use for each wave - any value over the maximum amount of spawnpoints causes the spawner to decide enemy spawnpoint at random)

Includes information for enemy types and how many of that type to spawn (This information is for 1 wave & can have multiple enemy types in 1 wave)

Contains an array of structure 1 (1 element = 1 wave) and an array for where each wave should spawn. THIS IS THE STRUCTURE USED IN THE DATA TABLE

Created a Data Table using Structures (Structures include an array for character types, an array for amount of each type to spawn for a wave & an array for which spawnpoints to use for each wave - any value over the maximum amount of spawnpoints causes the spawner to decide enemy spawnpoint at random)
Building Functionality

Create perpendicular lines to create squares

Create multiple lines to create the grid patterns

Different Trap Types the player can buy

Create perpendicular lines to create squares

