Wednesday, November 23, 2016

Top Down Stealth Toolkit v1.4 Update Change Log

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


v1.4 Update Summary:


1. Added two new weapons: Handgun & Silenced Handgun, thus providing the option to destroy AI bots instead of just temporarily disabling them. The implementation is handled through the Weapon Targeting System component introduced in the last update. Both these weapons functioning almost identically, with the exception that the Handgun produces a loud noise that could alert nearby patrol bots.

2. Since the aforementioned weapons introduce the possibility of AI bots being destroyed, the update introduces a new class of actors that act as replicas for the destroyed bots without the performance cost of the real bots that they replace. These Defunct Replica Bots are spawned with the same physical state as the original.

3. Added a new actor component 'Distress Signal Broadcaster' that can be added to any incapacitated bots or dead bot replicas, in order to alert nearby AI bots that are capable of responding to it. For example, an incapacitated patrol bot will use this component to continuously search for other patrol bots that are capable of reviving it. Once a suitable entity has been detected, it will be tasked with reviving the incapacitated bot.

4. Added a basic Main Menu system.

5. Moved the waypoint calculation logic for patrol bots to the new actor component 'BPC_PatrolWaypointSystem'.

6. Added Motion Sensors that can detect player movement & trigger alarms to alert nearby patrol bots.


Note: 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:

- New actor components: BPC_DistressSignalBroadcaster & BPC_PatrolWaypointSystem.

- New blueprint interfaces: BPI_DistressSignalBroadcast & BPI_DistressSignalResponse.

- New actor blueprints: BP_DefunctCameraBotReplica, BP_DefunctPatrolBotReplica, BP_DefunctTurretBotReplica, & BP_MotionSensor.

- New static mesh: SM_MotionSensor.

- New material instance: MI_Basic_Red.

- New map: MainMenuMap.

- Added new entries to enum 'EWeapons'.

- Added new widget blueprint: Widget_MainMenu.


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

Tower Defense Starter Kit Tutorial: How to add new levels to the Level Selection Menu

The Tower Defense Starter Kit comes equipped with a level selection menu that enables players to choose from a list of levels as shown below:



The toolkit contains three playable maps & one main menu map by default, & supports usage of new custom maps as well. The following steps go over the process of adding your own custom levels into the toolkit:

1. Create a new custom level from the Content Browser.

2. Open the 'BP_GameInstance' blueprint within the Blueprints folder & select the variable 'LevelDataArray'. It should have four entries by default: one for the main menu & three for the sample maps. To add our new custom map, first add a new element to this array.

Each element of this struct array contains the following attributes: ID, ScreenName, FileName, Image, & Unlocked. The ID is used to set the level number, starting with '0' for the main menu level. It is not used for any calculations & serves only to provide a means for classification of levels. The ScreenName determines the name that would be displayed for the corresponding entry in the level selection menu. The FileName is used to store the address of the level asset. The Image is used to display a preview shot of the map within the level selection menu, & the Unlocked attribute determines if the level would be unlocked by default. If it isn't, it will be unlocked, as soon as the player completes the level linked to the previous entry within the Level Data Array.

3. Fill out the attributes mentioned above for the new level data element. Make sure to copy the name of the new custom map asset within the content browser & paste it into the FileName attributes. Here is a sample entry for a new level that I created:



4. Now close the project & delete the 'Saved' folder within the project folder. This ensures that the changes made to the Level Data Array do not get overridden by information specified in an existing save game file.

5. Now open the project, open up the main menu level from the 'Maps' folder within the Content Browser, & launch an instance of the game. The level selection menu will now display information about the new level, provided that it's been set to Unlocked. Here is a sample screenshot with the new custom level:


Monday, November 7, 2016

FPS Tower Defense Toolkit v1.9 Update Change Log

The v1.9 update for FPS Tower Defense Toolkit has gone live on the Unreal Engine Marketplace: https://www.unrealengine.com/marketplace/fps-tower-defense-toolkit

Free playable demo for the updated version of the toolkit is now available for download at: https://www.dropbox.com/s/sryobzdcejf9ohw/FPS%20Tower%20Defense%20Toolkit%20Sample%20Game%20Demo.7z?dl=0

v1.9 Update Summary:


1. This update introduces a new Mission Stats system that provides the following information at the end of a level: 
- Damage inflicted by the player/towers
- Kills scored by player/towers.

The stats are collected through the 'Game Stats Updater' component which then sorts through the information & relays it over to the Game State. This information is later retrieved while displaying the mission summary screen as depicted in the sample screenshot below:


2. A basic Main Menu system has been added to the toolkit.


Note: All changes within the blueprints are marked with the boolean variable 'Version1.9' in order to easily identify the workflow changes introduced with this update, while comments 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:

- Added new actor component: BPC_GameStatsUpdater.

- Added new widget: Widget_MainMenu.

- New item added to enum 'EHUDState'.


For more details about the FPS Tower Defense Toolkit, check out the official Unreal Engine forum support thread at: https://forums.unrealengine.com/showthread.php?79300-FPS-Tower-Defense-Toolkit

Thursday, October 13, 2016

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

Wednesday, October 12, 2016

Tower Defense Starter Kit v1.4 Update Change Log

1. 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 

2. 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

3. 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

4. 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.


5. Added a new Grid Manager class to handle default grid properties & updates to the Grid Data Array.

6. 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:


7. 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.

8. 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.

9. Removed unnecessary collision/trace channel checks for Towers & Creeps.

10. 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.

11. Fixed a bug introduced in the last update which caused creeps destroyed at Exit Point to add Tower Points.

12. 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:




Edit: The v1.4.1 update is now live on the Marketplace. This is a v4.12 exclusive update & fixes a bug that arises due to event access conflict, when multiple groups of the same creep class are spawned from different enemy spawn points within the same time frame. 

Edit: The v1.4.2 update is now live on the Unreal Engine Marketplace. This update officially adds support for v4.13 of the Unreal Engine & introduces the following changes to the product:

- The Camera Zoom workflow which previously relied upon a step zoom system implemented within the player pawn class, has been replaced with a modular component based system that supports both Smooth Zoom as well as Step Zoom functionality. Adding a zoom system to a custom pawn or changing the existing system type is now as easy as adding the Smooth Zoom or Step Zoom component to the pawn blueprint, alongside the required Camera Zoom interface & it's functions.
- Fixed a bug that caused the Mining Tower to display incorrect 'MiningRate' stats when hovering over the upgrade button.

Known Issues:

- If the Global Ability Button is used, the editor might display a warning once that instance of the game is closed. This can be fixed by opening up the 'Widget_GlobalAbilitesButton' class & then setting the 'Is Focusable' parameter to true within the detail panel as shown below: [The issue will be rectified in the next update]



For more details about the Tower Defense Starter Kit, check out the official Unreal Engine forum support thread at: https://forums.unrealengine.com/showthread.php?102675-Tower-Defense-Starter-Kit-Support-Thread