Friday, 29 April 2016

Top Down Stealth Toolkit: Update I Change Log

Update I (v1.1) [Compatible with Unreal Engine v4.11] project files for the Top Down Stealth Toolkit are now available in the Marketplace. Since this update brings about a lot of changes, both in terms of new features as well as the improvements over the previous v1.0 implementation, the update has been released only for Unreal Engine v4.11. This ensures that anyone who wants to keep using the v1.0 implementation can still download the v4.10 project files from the Marketplace. 

Listed below is a brief overview of the code changes in the update:

- Dynamic Vision Arcs & Laser Tracking system are now implemented through the use of custom components & interfaces. The component based design provides improved modularity & enables easy attachment to different classes.

- Added Turret Bot AI. Uses the new Laser Tracking component to acquire & lock on to targets. [Preview Video: https://www.youtube.com/watch?v=9uOBp0Tnk34]

- Gadget Selection menu at level start enable players to select custom loadouts. Gadgets populated as HUD elements dynamically based on information specified in the Gadget Data Array. [Preview Video: https://www.youtube.com/watch?v=1FJeg6V7iek]

- The new Gadget Data Array controls the important parameters of all available gadgets from a central location.

- The Camera Bot now triggers timed alarm loops instead of single alarm as long as player character is within vision range.

- Replaced Camera Jammer with an EMP that can temporarily deactivate both camera & turret bots.

- Laser Tracking component added to Ranged Patrol bot to improve over the existing targeting system.

- Improved aesthetic feedback for peripheral range display. The peripheral range display changes color from white (default) to red based on peripheral alert level, replacing the text render that displayed peripheral threat counter.

- The patrol bots can now distinguish between different types of noises & handle decision priorities accordingly. Alarm sounds receive higher priority compared to footstep & whistle sounds.

- Added new suspicious & alarmed states for the patrol bots to create a more realistic design for state changes.

- The new Vision Arc Optimizer actor provides performance boost by removing rendering calculations for arcs outside the screenspace.

- Added dynamic operational cost levels enable AI to turn on/off expensive calculations like vision arc updates & threat detection logic on the move based on the requirements.

- Setter functions implemented to enable variables changes to occur only from within their parent objects.

- Improved code standardization & optimization implemented across all classes.


All changes within the blueprints are marked with the boolean variable 'Version1.1' 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 default HUD class added: BP_PlayerHUD.

- New default Game Instance class added: BP_TDSTGameInstance.

- Removed BP_EnemyAI_Parent class.

- Added new stationary enemy AI class: BP_StationaryAI_Turret.

- BT_PatrolEnemyAI, & BTT_SearchCurrentLocation renamed to 'BT_PatrolAI', BTT_SetNewPatrolLocation & BTT_InspectCurrentLocation respectively.

- Removed BT Tasks BTT_AimAtPlayer & BTT_ExecutePatrolMovement.

- Added new BT Tasks BTT_KeepTargetInFocus, BTT_SetActiveThreat, BTT_SetNewPatrolLocation, BTT_SetNewTargetLocation & BTT_TakeAimAtTarget.

- BP_StationaryEnemyAI_Camera & BP_StationaryEnemyAI_Parent renamed to BP_StationaryAI_Camera & BP_StationaryAI_Parent respectively.

- Added new custom components: BPC_AutomatedLaserTracker & BPC_VisionArcVertexManager.

- Added new enums: EHUDState, ENoiseType & EOperationCostLevel.

- Removed enum Enum_PlayerSkills.

- Added new class BP_VisionArcOptimizer.

- Added new widgets: Widget_GadgetSelectionButton, Widget_GadgetsGridPanel & Widget_LoadoutMenu.

- 'BB_PatrolEnemyAI', 'BP_AIController_PatrolEnemyAI, 'BP_PatrolEnemyAI_Melee, BP_PatrolEnemyAI_Parent, & BP_PatrolEnemyAI_Ranged renamed to BB_PatrolAI, BP_AIController_PatrolAI, BP_PatrolAI_Melee, BP_PatrolAI_Parent, & BP_PatrolAI_Ranged respectively.

- Enum_PatrolAIClass, Enum_PatrolAIState, Enum_PatrolType, Enum_PlayerGadgets, Enum_StationaryAIClass & Enum_StationaryAIState renamed to EPatrolAIClass, EPatrolAIState, EPatrolType, EGadgets, EStationaryAIClass & EStationaryAIState respectively.


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

FPS Tower Defense Toolkit: Update VI Change Log

Update VI (v1.6) [Compatible with Unreal Engine v4.11] project files for the FPS Tower Defense Toolkit are now available in the Marketplace. Since this update brings about a lot of changes, both in terms of new features as well as the improvements over the previous v1.5 implementation, the update has been released only for Unreal Engine v4.11. This ensures that anyone who wants to keep using the v1.5 implementation can still download the v4.10 project files from the Marketplace. 

Listed below is a brief overview of the code changes in the update:

- Loadout & Tower Selection menus added to enable tower selection at level start. The list of available towers in the Tower Selection menu are populated dynamically based on the information specified in the Tower Data Array. [Preview video: https://www.youtube.com/watch?v=uqLN_pxcR5k]

- The new Tower Data Array can be used to set the list of available towers for each level as well as basic tower initialization attributes like Tower Cost, Tower Class, etc. This essentially removes the need to keep separate variables & checks for each tower & paves the way for a much more dynamic workflow when other parts like the HUD system are interacting with the Tower Data.

- Blueprint interfaces added to handle resource points management during tower setup/destroy events & grid data retrieval for trace hit actors.

- New HUD class to manage high level HUD state changes.

- Simplified output boost implementation for the Boost Tower.

- Added provision to set the scale [number of digits succeeding the decimal point] for tower stats display in order to prevent clipping of text between widgets.

- All Grid Data updates now handled within the Game State blueprint only.

- Tower upgrades now improve the rate of fire & tower range/resource cap alongside the normal output increase. The improved tower upgrade menu showcases both current stats as well as upgraded stats. [Preview video: https://www.youtube.com/watch?v=jx5lNGws-9k]

- Stats for all offensive towers now display Damage Per Second instead of the regular output per cycle value, thus providing more useful data to the player when interacting with towers.

- The Holographic tower spawn logic has been moved from the Tower Spawn Manager to their respective classes, thus reducing the need for unnecessary checks & improving the code modularity.

- Setter functions implemented to enable variables changes to occur only from within their parent objects.

- Improved code standardization & optimization implemented across all classes.


All changes within the blueprints are marked with the boolean variable 'Version1.6' 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 enums: EHUDState, EHUDStatsType, ETowerConstructorMenuType & ETowerFunctions.

- New interfaces: BPI_GridLink, BPI_GenericHUDUpdates & BPI_TowerFunctions.

- 'Struct_GridGeneratorData' renamed to 'Struct_GridCellData'.

- 'Struct_MapGridData' renamed to 'Struct_GridData'. New member added to struct.

- 'BP_TowerSpawnHandler' & 'BP_WaveHandler' renamed to 'BP_TowerSpawnManager' & 'BP_WaveManager' respectively.

- New struct: Struct_TowerData.

- New default HUD class added: BP_FPSTDHUD.

- New widgets: Widget_LoadoutMenu, Widget_TowerButton, Widget_TowerListBox & Widget_TowerSelectionMenu.

- Navmesh runtime generation changed from dynamic to dynamic modifiers only.

- BP_PlanarGridGenerator moved to GameplayActors folder.

- Removed 'BP_FloorGridGenerator' & 'BP_WallGridGenerator' blueprints.


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

Monday, 25 April 2016

Tower Defense Starter Kit: Update I Change Log

Update I (v1.1) [compatible with Unreal Engine v4.11] project files for the Tower Defense Starter Kit are now available in the Unreal Engine Marketplace. Since this update brings about a lot of changes, both in terms of new features as well as the improvements over the previous v1.0 implementation, the update has been released only for Unreal Engine v4.11. This ensures that anyone who wants to keep using the v1.0 implementation can still download the v4.10 project files from the Marketplace. 

Listed below is a brief overview of the code changes in the update:

- Loadout & Tower Selection menus added to enable tower selection at level start. The list of available towers in the Tower Selection menu are populated dynamically based on the information specified in the new Tower Data Array. [Preview video: https://www.youtube.com/watch?v=uqLN_pxcR5k]

- The new Tower Constructor widget enable dynamic tower construction/function in-game menus [right down to button positions] based on the towers selected by the player as well as the data specified in the Tower Data Array & Tower Functions Array. Since the tower constructor can shift between a Tower Build menu & Tower Functions menu based on the context, this ensures that no HUD changes are required when adding new towers/tower functions as long as the necessary information is specified in the aforementioned struct arrays.

- Data driven tower spawn workflow implemented. Unlike the v1.0 implementation of setting default values within the tower blueprints, this new implementation showcases how to use data stored in struct arrays to control the attributes of the towers. By having all the data in the Tower Data Array, the Tower Manager acts as a central HUB for setting all user defined attributes for towers.

- New towers: Mining tower. The Mining tower harvests resources at regular intervals until the resource pool gets exhausted. Both the resource cap as well as the harvest rate can be increased through tower upgrades.

- The new modular target stats widgets can dynamically alter themselves to display relevant information about the focused/selected target based on a combination of data retrieved from struct arrays as well as the new interface functions.

- Blueprint interfaces added to handle tower functions like upgrade/sell features & target stats display.

- New HUD class to manage high level HUD state changes.

- Simplified output boost implementation for the Boost Tower.

- Added provision to set the scale [number of digits succeeding the decimal point] for target stats display in order to prevent clipping of text between widgets.

- All Grid Data updates now handled within the Game State blueprint only.

- Added level boundaries to prevent camera from going offscreen. [thanks to tanka2d for pointing out the issue]

- Tower upgrades now improve the rate of fire & tower range/resource cap alongside the normal output increase.

- Stats for all offensive towers now display Damage Per Second instead of the regular output per cycle value, thus providing more useful data to the player when interacting with towers.

- Setter functions implemented to enable variables changes to occur only from within their parent objects.

- Improved code standardization & optimization implemented across all classes.



All changes within the blueprints are marked with the boolean variable 'Version1.1' 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 enums: EHUDState, EHUDStatsType, ETowerConstructorMenuType & ETowerFunctions.

- Enum EEnemyType renamed to ECreepType.

- Member name changes/additions in the enums ENavType & ETowerType.

- 'BP_BulletProjectiles' blueprint moved to 'GameplayActors' folder.

- 'BP_GridCellHighlighter' renamed to 'BP_GridCellDetector'.

- New interfaces: BPI_GridLink & BPI_TowerFunctions.

- New functions within the interface 'BPI_UpdateHUDStats'.

- 'Struct_GridGeneratorData' renamed to 'Struct_GridCellData'.

- 'Struct_MapGridData' renamed to 'Struct_GridData'. New member added to struct.

- New structs: Struct_HUDStats, Struct_TowerData & Struct_TowerFunctions.

- New tower: BP_MiningTower.

- New default HUD class added: BP_PlayerHUD.

- New widgets: Widget_LoadoutMenu, Widget_SelectionButton, Widget_TargetInformation, Widget_TowerBuildButton, Widget_TowerConstructor, Widget_TowerFunctionsButton, Widget_TowerListBox & Widget_TowerSelectionMenu.

- Renamed 'WidgetBP_EnemyTypeData' to 'Widget_Stats'.


- New static mesh: 'SM_MiningTower'.


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