Update 4 (v1.4) has gone live on the Unreal Engine Marketplace. Listed below are the main code changes introduced in this update:
- Added a new function library BPFL_GetterFunctions to easily retrieve references to all the core gameplay actors. As a result, getting a reference to the Tower Manager or the Tower Data Array is now as easy as getting the player controller or the game mode.
Preview Screenshot:
For more details about the implementation, check out the dev log at: Tower Defense Starter Kit v1.4 Dev Log #1: Getter Function Library
- The Towers now have access to special Tower Abilities which can enhance their capabilities for a short duration of time. The implementation basically expands upon the same system that drives the Tower Upgrade/Recycle functions, but uses a composition based approach to make sure that the abilities remain as independent modules that can be attached to actors. The two new Tower Abilities introduced in this update are Overdrive [amplifies the tower’s output per cycle for a set duration] & Repair [regenerates the tower’s armor over set period of time].
Preview Screenshots:
More abilities will be added in the future updates. For more details about the implementation, check out the dev log at: Tower Defense Starter Kit v1.4 Dev Log #2: Tower Abilities
- The toolkit is now equipped with a new Global Ability System, which makes it easy to add new abilities that can be activated anywhere on the map. This update introduces the first of these abilities: Airstrike [unleashes a series of explosive strikes at the targeted location].
Preview Screenshot:
Preview Video: [My video creation/editing abilities are really bad, but I think it will atleast serve to demonstrate the working of Global Abilities. Feel free to check out the free playable demo (download link listed below the features section), if you want to try it out yourself]
More abilities will be added in the future updates. For more details about the implementation, check out the dev log at: Tower Defense Starter Kit v1.4 Dev Log #3: Global Abilities
- The BP_PlayerController class now manages all low level HUD requests [updating independent UI elements like tower points, selected actor stats, etc within the In Game HUD] thus acting as a single conduit through which all updates pass through.
-
Added a new Grid Manager class to handle default grid properties & updates to the Grid Data Array.
-
The BP_GameMode now handles initialization of all core gameplay actors from a single central location using a well designed workflow instead of the actors having to rely on Begin Play events or initializing each other. This ensures improved code clarity from the get go as shown in the screenshot below:
Preview Screenshot:
-
The Tower Data Array & Tower Functions Array have been moved from the Tower Manager class to the BP_GameInstance class. This ensures that implementing tower unlocks & any other sort of modifications to the Tower/Tower Function attributes will be as easy as editing this single instance of the Tower Data Array without having to worry about the instances of the Tower Managers within every single level.
-
Fixed a bug that causes creeps to switch lanes immediately upon spawn [creating a flicker effect for less than a second] when using multi lane spline paths.
-
Removed unnecessary collision/trace channel checks for Towers & Creeps.
-
Removed Grid Snapping for towers when placed in the editor as the logic had conflicts with the new more data driven approach to Tower management. May be added back as an actor component in the future, if there are feature requests for the same.
-
Fixed a bug introduced in the last update which caused creeps destroyed at Exit Point to add Tower Points.
-
Other changes include improvements in code structure & modularity across most blueprints in the toolkit.
Gameplay demo of the v1.4 Tower Defense Starter Kit (Windows): https://www.dropbox.com/s/dch4utn15ek80i3/Tower%20Defense%20Starter%20Kit%20Sample%20Game%20Demo.7z?dl=0
All changes within the blueprints are marked with the boolean variable ‘Version1.4’ in order to easily identify the workflow changes introduced with this update. Comments are also written to describe the major changes. The new variables as well as functions added to existing blueprints are also marked in the event graph as shown below:
Changes in the Content Browser:
-
SoundWave asset FirstPerson_WeaponFire renamed to SW_Explosion.
-
Added new SoundWave asset: SW_BulletFire.
-
Added new HUD blueprint: BP_PlayerHUD.
-
Enum EFocusedActorType renamed to ESelectedActorType.
-
Overdrive & Repair entries added to enum ETowerFunctions.
-
Removed enum: EHUDStatsType.
-
Added new enums: EDynamicHUDStats, EGlobalAbilities, & EStaticHUDStats.
-
Added new actor blueprints: BP_GlobalAbilityDeployer, BP_GridManager, & BP_TargetingReticule.
-
Removed Interface: BPI_TowerFunctions.
-
Added new Interface: BPI_TowerAbilities.
-
Added new projectile: BP_AirstrikeProjectile.
-
Added new Struct: Struct_GlobalAbilityData.
-
Added new members AbilityComponentClass & AbilityCost to Struct_TowerFunctions.
-
Added new material: M_TargetingReticule.
-
Added new static meshes: SM_AbilityTargetingReticule, SM_FoundationMesh, & SM_Projectile.
-
Added new texture: T_TargetingReticule.
-
Widgets Widget_HealthBar, Widget_TowerListBox & WidgetBP_EndGameHUD renamed to Widget_3DStatsBar, Widget_HorizontalSelectionList, & Widget_MissionSummary respectively.
-
Added new widgets: Widget_StatusEffect & Widget_GlobalAbilitesButton.