The last post covered the new stats system and how it is set up across the toolkit through gameplay tags and the StatContainer component. This one is about the Tower Core architecture, which is where the actual behavior of each tower lives.
In v3.0, every tower has a tower core component attached to it at runtime. The core is responsible for what the tower does, when it does it, and how it responds to targets entering and leaving its range. All tower cores derive from a shared base, BPC_TowerCore_Base, which derives from StatContainer, giving it the ability to own and process stats. The base class handles the common infrastructure: an action cycle, target validation, FX references loaded from the data table, and the initialization pipeline that sets all of this up.
There are five distinct functional tower core types derived from this base, each representing a unique way a core interacts with the world.
Single Target Lock cores track and engage one target at a time. They activate when a target enters range and stay focused on that target until it leaves or is eliminated, at which point they either stop or switch to the next available one.
Multi Target Lock cores work similarly but track and engage multiple targets simultaneously, up to a configured maximum. No towers in the current update use this type, but it's in place for new tower types planned in future updates.
AoE Pulse cores don't track individual targets. Instead they affect everything within range periodically, hitting the entire pool of targets in range with each pulse.
Proximity Trigger cores don't engage targets in the traditional sense. Instead they apply an effect to anything that enters their range and revert it when that target leaves, making them well suited for support and utility roles.
Non Targeting cores operate independently of the targeting system entirely. They run on their own schedule and perform their action regardless of what is or isn't in range. The Mining Tower is an example of this, generating resources at a fixed interval without needing any targets at all.
All tower cores used by the towers in this update are listed here, each derived from one of the five types covered above:
- BPC_TowerCore_HitscanFire (Sniper Tower)
- BPC_TowerCore_LinearProjectileLauncher (Machine Gun Tower)
- BPC_TowerCore_ContinuousBeam (Laser Tower)
- BPC_TowerCore_ArcingBeam (Tesla Tower)
- BPC_TowerCore_CurvilinearProjectileLauncher (Artillery Tower)
- BPC_TowerCore_RadialBlast (Shockwave Tower)
- BPC_TowerCore_StatBooster (Boost Tower)
- BPC_TowerCore_ResourceGenerator (Mining Tower)
Each overrides PerformAction to define the actual behavior, whether that's a hitscan line trace, a projectile launch, a continuous beam, a radial blast, or a stat modifier applied to nearby allies. The base and functional layers handle everything else: when to start, when to stop, how to acquire and validate targets, and when to fire.
That wraps up the tower core architecture for v3.0 of Tower Defense Starter Kit.
The next post will cover the AgentProfile system and how it handles tower initialization from data table to a tower with all its components set up and ready to go.

Comments
Post a Comment