The v2.18 update has gone live on the Marketplace. This is one of the biggest updates in quite some time, focusing primarily on improving the Tower side logic. As a result, I’ve released it only on 4.26 (and hence the long delay for 4.26 compatibility) and the previous version of the toolkit is still intact & available if you download the 4.25 edition of the toolkit
Change Log:
-
Added a new Team ID system that streamlines the threat detection and damage application logic. Instead of checking through a list of enemy classes, you can now directly call the IsTargetAnEnemy? global function to determine if a target actor is an enemy or friendly.
-
Revamped the Projectile blueprints to make it easier to create child variants with different Hit Response logic. Also integrated the new Team ID system to prevent friendly fire damage.
-
Moved the overlap based Target Detection logic for Towers to the parent class. This makes it easier to create new types of Towers without having to implement the same logic again. Works for both offensive towers and support towers (like Boost) alike.
-
Revamped the Tower Functions to greatly reduce the amount of scripts to be added to the Tower parent class when adding a new ability. Also added a new parent blueprint class (BPC_TowerFunction_Parent) to act as a template for creating new Tower Functions in the future.
For reference, here are the functions that were added to implement the Overdrive & Repair Tower Functions in v2.17:
And here is the implementation for the same in the new v2.18 version of the toolkit:
-
Added new Getter & Setter functions in the Tower parent blueprint for accessing both default and active values of all major Tower attributes.
-
Created a new component-driven design for handling the Tower firing systems. This includes both offensive modules like Laser, Machine Gun, etc and support modules like Boost (Mining Tower not included). As a result, creating new Towers will involve very little in the way of making changes to existing logic in the Tower blueprints.
Again for reference, here is the blueprint for the Laser Tower from v2.17.1:
And here is the same blueprint from v2.18:
As you can see, the child Tower only needs to notify the component about a particular event. And you implement the firing system logic through dedicated components (*which can be inherited from **BPC_TOM_Parent *for offensive modules) and activating/deactivating them as required.
-
The Lock On System has also been revamped to make it far easier to understand. Dealing with various support tickets over the years, I’ve generally gotten the idea that this was an area that was difficult to understand for a lot of new users. So I went ahead and completely rebuilt it from scratch. Gone are the endless series of functions and in its place, you get to see the flow of logic directly when you open up the **BPC_LockOnSystem **blueprint.
Again this is easier to explain with comparison screenshots. And here is the 2.17 version:
Here is the new improved blueprint in v2.18:
-
Finally, added Unreal Engine v4.26 compatibility to the toolkit.
And with that, we’ve come to the end of change log for v2.18 edition of Tower Defense Starter Kit. I’ll be soon posting a more detailed account on some of the new changes in my blog. So stay tuned for that! And feel free to share your feedback on the new changes.