[On Hold] Tower Defence Roguelite
A downloadable game for Windows
Project Source: GitHub
A first-person tower-defense rogue-lite, where you strategically place defenses to fend off waves of increasingly challenging robots.
The objective of the game is to survive for as many waves as possible. Restarting is inevitable.
Game Management
The bulk of the gameplay is contained within the GameMode. It's within the GameMode that gameplay states are contained and managed,
Much global data such as the player's balance is also stored with the GameMode, the reason for this is easy access. The GameMode is a singleton class and this game is single-player only so storing unique data as such is not an issue.
Interaction System
Both the 'Interactor' and 'Interactable' are ActorComponents and provide the functionality you'd expect.
'Interactable' is built with the intent to support multiple types of 'Interaction' actions that are performable through a radial UI widget.
These systems are implemented as ActorComponents as opposed to, say, Interfaces so that implementation is easy to add to existing Actors.
Health Component
The Health Component is of type ActorCompoent and provides health-related functionality to Actors. It allows for the handling of health values and instantiating appropriate actions such as death effects.
Example: AHealthComponent used for UI
void ATowerDefenceGameMode::UpdateTowerHealthBar() { if (UUW_TowerDefenceHUD* TowerDefenceHUD = GetHUD()) { float TotalTowerHealthPercentage = 0.0f; for (int i = 0; i < Towers.Num(); ++i) { TotalTowerHealthPercentage += Towers[i]->GetHealthComponent()->GetHealthPercentage(); } TowerDefenceHUD->UpdateTowerHealthBar(TotalTowerHealthPercentage / Towers.Num()); } }
The HealthComponent is used to get the total health percentage of all Towers in the level within ATowerDefenceGameMode.cpp.
float GetHealthPercentage() const {return (Health / MaxHealth) * 100;}
The GetHealthPercentage implementation within AHealthComponent.h.
AI
The game uses behavior trees for the Enemy and Turret AI, allowing them to make decisions and adapt to different situations.
Shop & Items
The shop updates its stock every five rounds, providing new items to help players fend off the increasingly difficult waves.
Donation Machine
The donation machine offers a way for the player to donate currency from their current play session to get permanent upgrades that last between restarts.
UI
The User Interface is completely implemented through C++, besides from the Interaction menu which is a store asset implemented through blueprints.
Status | On hold |
Platforms | Windows |
Author | Joshua Simpson |
Genre | Adventure |