Top Down Stealth Toolkit v1.3 Update Change Log

The v1.3 update for Top Down Stealth Toolkit has gone live on the Unreal Engine Marketplace: https://www.unrealengine.com/marketplace/top-down-stealth-toolkit

1. The Gadgets from previous iterations have now been split up into three categories based on their functions: Suit Abilities, Gadgets, & Weapons. Splitting them up into multiple categories essentially paves the way for using a component based approach, thus nullifying the need to store details about implementation of all types of gadgets within the player character or within a single component. This facilitates replacement of the default player character with custom player characters/pawns with minimal code transfer. The three new actor components introduced for this purpose are:

Suit Abilities Manager: The Suit Abilities Manager handles all instant activation abilities. As a result, the 'EMP Blast' function from the previous iteration will be activated through this component. The Suit Abilities can be used as many times as needed, but have a cooldown period once they're activated.

Gadget Deployment System: The Gadget Deployment system is used in scenarios where activation of a loadout entity requires it to be deployed in the physical level space. The 'Proximity Shockmine' from previous iteration will be deployed through this component. The Weapons can be used only for a limited number of times, but do have any cooldown periods.

Weapon Targeting System: The Weapon Targeting system enables usage of weapons that require manual targeting by the player. For example, the Stun Gun implementation is now handled through this component. The component takes cares care of both aim/holster logic as well as the actual firing mechanism. The Weapons can be used only for a limited number of times, but do have any cooldown periods.

All three of these components interact with the parent class through their associated interfaces only, thus allowing them to be used with different types of actors. For example, when the Stun Gun is being used, the Weapon Targeting System calls the associated interface function from the player character (owning actor), which then creates a laser particle system to accurately portray the aiming mechanics.

On the other hand, when the parent actor interacts with these components, it does not need to provide any information. A request is passed through to the component, which then handles the required functionality based on the equipped entity of it's type. For example, if there are multiple types of possible suit abilities, with EMP Blast being the equipped one, the Suit Abilities Manager will know that it needs to activate the EMP Blast & not the other abilites.

2. The inclusion of multiple types of entities in the player's arsenal has been implemented through a new loadout system, which consists of one type each of Suit Abilities, Gadgets, & Weapons. Among these three entities, only one may be active at any point of time. For example, if the active loadout entity is a Gadget, the player pressing 'F' will deploy the selected gadget. Of course, the active loadout entity can be changed at runtime through their associated input buttons whenever required.

In the screenshot below, the three different loadout entities are marked within the green box, while the active entity marked within the red box has been scaled up to convey the aforementioned information to the player:



3. Added a new function library BPFL_GetterFunctions to easily retrieve frequently referenced important information without compromising on the visual clarity of the code. As a result, accessing the gadget data array or enquiring about the active hud state, can be done by calling their associated getter function from this library.



4. The BP_PlayerController class now manages all low level HUD requests [updating independent UI elements like stamina bar, mission timer, loadout button states, etc within the In Game HUD] thus acting as a single conduit through which all updates pass through.



The BP_PlayerHUD & the BP_GameInstance classes on the other hand, handle all high level HUD state changes like transitions between the loadout HUD, In game HUD, & Mission Summary HUD.

5. The new custom Game State class stores critical information about the mission status, while the new Player State class stores information about player activity that aren't directly related to any of the character's core attributes.

6. The new Weapon Pickup class provide opportunities for the player to change their weapon loadout at runtime.

7. The BP_GameMode now handles initialization of all core gameplay actors from a single central location, thus ensuring both improved code clarity as well as an organized workflow instead of the actors having to rely on Begin Play events or initializing each other.



8. A new Stamina Manager component has been added to move the stamina management part of the sprinting mechanic over to a separate independent module. This basically frees up the player character to primarily deal with changing the walk speed parameters, while leaving most of the remaining calculations to the component.


All changes within the blueprints are marked with the boolean variable 'Version1.3' 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:




For more details about the Top Down Stealth Toolkit, check out the official Unreal Engine forum support thread at: https://forums.unrealengine.com/showthread.php?97156-Top-Down-Stealth-Toolkit