User Tag List

Page 3 of 3 FirstFirst 123
Results 81 to 111 of 111

Thread: FPS Tower Defense Toolkit

  1. #81
    0
    Quote Originally Posted by Stormrage256 View Post
    1. Letting the player remote control towers is actually a cool idea. The closest thing that I can think of is the game Star Wars Republic Commando. In that game, when the player presses F while the targeting reticule is focused on an enemy, all his squadmates in range will start firing at that unit. Is that what you had in mind? Like highlight an enemy & all towers that have this unit in range would immediately stop it's current course of action & set this enemy unit as the highest priority?

    2. Yes, changing the scale of the system is quite easy. You can check out this earlier post to see how to accomplish the same in the toolkit: https://forums.unrealengine.com/showthread.php?79300-FPS-Tower-Defense-Toolkit&p=439776&viewfull=1#post439776

    3. I have never really tried out implementing a flying unit, it's just one of those things that kept getting backlogged to future updates. The toolkit does not come with any default flying units, as all the units are using character movement components. But if you already have a basic idea in mind about the type of implementation you would require for a flying unit, I should be able to answer that question more clearly. If not, I'll do some research on common flying AI implementations this weekend & let you know.

    4. Unfortunately, my knowledge about using Matinee is pretty much non existent. So to be honest, I'm afraid I cannot give any accurate answer for that.

    Please don't apologize for asking questions. Some of the important features that made it into the toolkit like the idea of multiple wave spawning systems & traps were made possible because some one asked/suggested about them. Plus it really helps to realize new possibilities that I have never thought of like the remote controlled turrets you just mentioned, & possibly increase the quality of the toolkit.
    1. Yeah that's it. Although a free fire mode would be cool as an option for a single turret as well so it shoots where ever you point at regardless of how far. Im thinking of a weak and somewhat inaccurate option for emergencies with fire converging on location you point at.

    2. Good to know thanks.

    3. Anything simple will do for what i have in mind. If i can place a path in the air for some enemies to follow that would be great. Might be possible with an invisible floor?

    4. No problem was just wondering.

    Thanks.

  2. #82
    0
    Quote Originally Posted by Magneto View Post
    I'll probably get this once it has been updated to 4.11.

    I think it would be a definite buy for many if it includes some basic vr and motion control support for menus and combat.

    Hey Magneto, I've been going over some ideas about how to include interactive 3D widgets as part of the HUD. After trying out some of the solutions, I believe that the best way to add this feature without making a mess of both 2D & 3D HUD logic coexisting with each other would be to use both types for different scenarios. For example, I decided to keep the static in-game HUD & the tower selection menu at level start as 2D HUD elements, while converting the in-game interactive elements like Tower Upgrade/Sell Menu into a 3D widget [There are plans to add some weapon selection options in the future as well, & that could also use 3D widgets]. This way, I can demonstrate the working behind both methods of interaction without making everything too generalized & complicated to understand.

    However I'm not confirming this as there is an in-engine bug in v4.10 that causes problems while interacting with 3D widgets. If it get's fixed in v4.11 & it seems to be fixed in the preview version, I will try looking into the 3D widgets in the coming updates. So it would be better if you wait for the v4.11 update, which will be submitted as soon as the engine hit v4.11 stable release.
    Last edited by Stormrage256; 06-20-2017 at 07:11 AM.

  3. #83
    0
    Work on the next update is finally over. I'm waiting for v4.11 Engine release for further testing. Meanwhile here is a preview video for the new Tower Selection Menu:



    Using the Loadout menu, the user can specify the maximum number of tower types that the players have at their disposal for a particular level, while the Tower Selection menu enables players to add towers to the Loadout menu. The Tower Selection menu also provides description for all available towers. The In-Game HUD logic has also been updated to reflect the towers selected by the player in the Loadout menu. The tower buttons are now displayed dynamically based on the player selection & hence do not need to be modified manually using the UMG editor.

  4. #84
    0
    Looking good! Don't worry too much about making 3D menus work if you've got more important updates to do.

  5. #85
    0
    FPS Tower Defense Toolkit Basics: Enemy Spawn Points

    While the Wave Manager does the majority of the work related to spawning enemy units, it is the Enemy Spawn Point class in FPS Tower Defense Toolkit that creates the spawn points for the creeps. The toolkit supports placement of multiple enemy spawn points in a level thus creating multiple avenues of approach toward the Power Core. This class is also responsible for displaying information about the upcoming waves so that players can change the maze layout & tower placements to best counter them. To further aid in this regard, the spawn points dynamically update the spline based nav path display towards the Core based on the placement of tower bases in the level.

    With customization in mind, this class is also equipped with Spawning Volumes that can spawn creeps anywhere in the specified region apart from the default functionality of spawning at the exact actor location. To save runtime operational costs, users can also choose the option to enable usage of cached spawn transforms, thus creating a specified number of random spawn points within the spawning volume at level start. The public variables 'UseCachedSpawnTransforms' & 'NumberOfCachedSpawnTransforms' control this aspect of the Enemy Spawn Points.

    Name:  esp1.jpg
Views: 447
Size:  336.7 KB

    The upcoming update v1.6 will add a new variable 'SpawningVolumeRadius' [as shown in screenshot above] to directly control the spawning volume dimensions of each Enemy Spawn Point placed in the level.

  6. #86
    0
    Hi, I will not have access to my computer until this coming Monday & hence will not be available in the forums. However I will have access to my mail. So if anyone has any queries regarding the toolkit, you can reach me at: rohitmohan.k@outlook.com

  7. #87
    0
    The v1.6 update will be submitted to the marketplace on this coming monday. Meanwhile I've added a few new improvements related to how the Tower Upgrades work. While most of them are based on improving the workflow under the hood, the tower stats menu is also getting a new sweet visual upgrade. Instead of the v1.5 menu which just shows the existing stats & upgrade cost, the new stats menu will show upgraded stats alongside existing stats.

    Preview Video:

    Last edited by Stormrage256; 09-29-2016 at 01:20 AM.

  8. #88
    0
    Submitted the v1.6 update files to the marketplace. This is a v4.11 exclusive update as it brings about a lot of changes to the toolkit, both in terms of features as well as the workflow. So if anyone wants to get the v1.5 project files in the future, it will not be replaced as the v4.10 project files will remain intact.

  9. #89
    0
    Update VI (v1.6) [Compatible with Unreal Engine v4.11] project files 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.

    - 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 [Moved to attachment view]:

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    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.
    Attached Images Attached Images  
    Last edited by Stormrage256; 09-29-2016 at 01:20 AM.

  10. #90
    0
    How Do i deleted the first person controller and only allow the camera angel to be Third Person?

  11. #91
    0
    Quote Originally Posted by StrayDog8797 View Post
    How Do i deleted the first person controller and only allow the camera angel to be Third Person?
    The toolkit already has the support to switch between first and third person [only running & jumping animations included] views. The associated logic lies within the BP_FPSTDCharacter blueprint as shown in the screenshot below:

    Name:  charbp.jpg
Views: 412
Size:  317.9 KB

    If you only want the third person view, you can do the following steps [within the BP_FPSTDTCharacter blueprint]:

    1. First remove that 'SwitchCamera' logic marked with the red box in the screenshot. You won't need that if you're only using third person view.

    2. Then remove the 'Mesh1P' skeletal mesh component & any references to it within the character blueprint.

    3. Replace every instance of '1PCamera' camera component with '3PCamera' camera component & then delete '1PCamera'. Tick the 'Auto Activate' property of '3PCamera'.

    Name:  3pcam.jpg
Views: 410
Size:  242.7 KB

    4. Now select the 'Mesh' component, & untick the attribute 'Hidden in Game' as shown below:

    Name:  mesh.jpg
Views: 407
Size:  303.2 KB

    5. With that, you should be able to get the third person view working. Apart from that, there is only some code clean up to do. So just search for the variable 'FPSMode?' and disconnect the part that's only connected to it's True execution pin.

  12. #92
    0
    Just bought it due to not only because the kit seems brilliant, but you seem to give it fantastic support, and I love seeing that. I'm looking forward to digging into this, it looks great already!

    Edit: Hey, I've been playing around with it and realised that I can't walk through the "range display sphere". My player collides with it as if there's a wall there. Any idea what could be causing this? I'm testing with the same character it came with, although I did migrate the files to my personal project. Thanks!
    Last edited by itsalwayssummer; 05-29-2016 at 12:27 AM.

  13. #93
    0
    Quote Originally Posted by itsalwayssummer View Post
    Just bought it due to not only because the kit seems brilliant, but you seem to give it fantastic support, and I love seeing that. I'm looking forward to digging into this, it looks great already!

    Edit: Hey, I've been playing around with it and realised that I can't walk through the "range display sphere". My player collides with it as if there's a wall there. Any idea what could be causing this? I'm testing with the same character it came with, although I did migrate the files to my personal project. Thanks!
    Hi @itsalwayssummer Thanks for expressing your interest in the product. I do not have access to my computer till the 1st of June, but could you try checking out the range display sphere collision details for the actor that's causing the problem. Could you check if it's set to block the player?

  14. #94
    0
    Quote Originally Posted by Stormrage256 View Post
    Hi @itsalwayssummer Thanks for expressing your interest in the product. I do not have access to my computer till the 1st of June, but could you try checking out the range display sphere collision details for the actor that's causing the problem. Could you check if it's set to block the player?
    I've checked and it seems like it should work fine. Here's how it looks.
    Name:  collision.png
Views: 388
Size:  29.9 KB

  15. #95
    0
    Quote Originally Posted by itsalwayssummer View Post
    I've checked and it seems like it should work fine. Here's how it looks.
    Name:  collision.png
Views: 388
Size:  29.9 KB
    Alright, perhaps the object channels do not get transferred when you migrate it. Because I remember adding some new channels for the tower/range spheres. You could check the collision options under the project settings for the default toolkit project and add the same object channels into your new project. Then maybe do a double check in the different tower classes to see that it's not blocking the player. I believe that should fix the issue.

  16. #96
    0
    Quote Originally Posted by Stormrage256 View Post
    Alright, perhaps the object channels do not get transferred when you migrate it. Because I remember adding some new channels for the tower/range spheres. You could check the collision options under the project settings for the default toolkit project and add the same object channels into your new project. Then maybe do a double check in the different tower classes to see that it's not blocking the player. I believe that should fix the issue.
    Ah, that was it! It works now, thank you!

  17. #97
    0
    The v1.7 update has been submitted to the marketplace. This update will add support for v4.12 of the Unreal Engine. Alongside this update, both the v4.10 & v4.11 project files are getting minor updates focused on bug fixes.

  18. #98
    0
    Update 7 (v1.7) has gone live on the Unreal Engine Marketplace. This update adds support for v4.12. Listed below are the main code changes introduced in this update:

    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:

    Name:  bpfl.png
Views: 342
Size:  233.5 KB

    2. Gameplay states such as Tower Build Mode, Combat Mode, etc have been separated from HUD State which now purely deals with high level HUD updates [transitions between loadout menu, in game HUD, mission summary, etc]. Furthermore all changes to the Gameplay state are now handled directly through the BP_GameState class while changes to the HUD State are handled through the BP_GameInstance & BP_PlayerHUD classes.

    Preview Screenshots:

    Name:  gamestate.png
Views: 335
Size:  269.7 KB

    Name:  playerhud.png
Views: 341
Size:  215.6 KB

    3. The BP_PlayerController class now manages all low level HUD requests [updating independent UI elements like player health, ammo, tower points, etc within the In Game HUD] thus acting as a single conduit through which all updates pass through.

    Preview Screenshot:

    Name:  lowlevelhud.png
Views: 334
Size:  348.3 KB

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

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

    Name:  manualinit.png
Views: 333
Size:  296.3 KB

    6. The Tower Build HUD, Tower Upgrade HUD & Combat HUD have been combined into a single unified In Game HUD, while increasing the modularity of their individual UI elements. The design of the HUD has also been modified to reflect the changes.

    Preview Screenshot:

    Name:  ingamehud.png
Views: 335
Size:  224.6 KB

    7. Updates to the number of Tower Bases & the amount of Tower Points are now handled through the BP_PlayerState class.

    8. The Tower Data Array has 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 Data 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.

    9. Getter & Setter functions implemented throughout all classes to ensure that accessing/editing variables are always handled in a structured manner.

    10. The Wave Manager now uses a single Wave Data Array for all 3 types of wave generators, instead of relying on 3 separate arrays formed out of three different types of structs. Based on the wave generator requirements for the projects, the user can remove the unnecessary struct members from the Struct_CreepSpawnData. [FPS Tower Defense Toolkit Basics section updated with the new changes to the Wave Manager at: https://forums.unrealengine.com/showthread.php?79300-FPS-Tower-Defense-Toolkit&p=349206&viewfull=1#post349206]

    11. Fixed a bug that caused towers to stop functioning occasionally when it loses sight of the active target.

    12. Other changes include improvements in code structure & modularity across most blueprints in the toolkit.


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

    Name:  v17tags.png
Views: 331
Size:  357.3 KB

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Changes in the Content Browser:

    - New Blueprints: BP_GameInstance & BP_GridManager.

    - New Blueprint Function Library: BPFL_GetterFunctions.

    - Removed certain elements from the Enum EGameplayState.

    - New Enum: EHUDState.

    - BP_FPSTDCharacter, BP_FPSTDController, BP_FPSTDGameMode & BP_FPSTDHUD renamed to BP_PlayerCharacter, BP_PlayerController, BP_GameMode & BP_PlayerHUD respectively.

    - BP_FPSTDGameState & BP_FPSTDPlayerState renamed to BP_GameState & BP_PlayerState respectively.

    - BP_TowerSpawnManager renamed to BP_TowerManager.

    - New Structs: Struct_CreepSpawnCounter, Struct_CreepSpawnData & Struct_WaveData.

    - Deleted Struct_GroupBasedWaves, Struct_ThreatBasedWaves & Struct_UnitBasedWaves.

    - New Widgets: Widget_HealthBar & Widget_TowerUpgradeData.

    - Widget_TowerBuildHUD, WidgetBP_EnemyTypeData & WidgetBP_GameOverHUD renamed to Widget_InGameHUD, Widget_Stats & Widget_MissionSummaryHUD respectively.

    - Deleted Widget_CombatHUD.
    Last edited by Stormrage256; 07-03-2016 at 02:20 AM.

  19. #99
    0
    Update 8 (v1.8) has gone live on the Unreal Engine Marketplace. This is a v4.12 exclusive update & listed below are the main changes introduced in this update:

    1. Implemented a new & improved component based Threat Detection system for the Creep AI. The four new components - Visual Perception, Damage Perception, Threat Analyzer, & Threat Response together form a modular system that enables creation of new AI as well as extending features of existing AI with ease. Here is a brief overview of the components:

    Visual Perception component: This component uses a combination of distance, angular, & line trace based checks to provide the parent class with information about it's spatial relation to all potential targets.

    Damage Perception component: This component keeps track of incoming damage from all potential targets & relays the information back to the owning actor. It is also responsible for controlling the relevance of damage inflicted over a long period of time. This allows the owner to focus on the immediate threat instead of focusing on an actor that may have inflicted some damage 30 seconds ago.

    Threat Analyzer component: While the previous two components focus on gathering data, this component focuses on retrieving the aforementioned data & evaluation of potential targets based on it. It also allows the designer to specify the relative importance of visual perception weightage vs the damage perception weightage for the parent actor. For example, if you want a creep that generates more aggression toward damage causing agents than closer targets, it's as simple as improving the maximum weightage of the damage perception while reducing the same for visual perception within this component. The component also makes sure that the active target gets special preference over other targets to prevent the parent actor from rapidly shifting focus between targets based on weightage changes. The evaluated results are passed on to the parent actor through it's associated interface functions.

    Threat Response component: This component comes into play once the parent actor has acquired an active target. It determines whether to move to/attack the active target based on the distance to it. The final decision is then relayed back to the parent actor for execution. For example, an attack order to melee parent actor would be executed in a different manner when compared to the execution by a ranged parent actor.

    The components act independently & are not aware of the existence of other components. They are only aware of their own existence as well as that of the owning actor. Any information that is being relayed between these components happen through the parent class & interface functions. This facilitates creation of new creep types with different combination of components [along with their associated interfaces]. For example, both the melee & ranged creep classes will now be equipped with all 4 components by default, while the corebomber class will only use visual perception component in conjunction with some custom logic in the parent class tailored to it's requirements. Similarly if you do not want a certain type of creep to not respond to damage causing agents, just add all components & interfaces excluding the ones related to damage perception.

    2. All static Tower parameters are now retrieved dynamically from the Tower Data Array, thus reducing the number of variables that need to be stored in each tower actor. Only parameters that can be changed at runtime, such as DPS, Range, etc are stored within the tower actors.

    3. The Selected Tower Data Array which served the purpose of storing all data pertaining to the list of towers available to the player, has been replaced with an integer based array which only stores the Tower Class indices of the selected towers. This ensures that data is not copied around unnecessarily & ensures that accessing information related to the Towers happen solely through the Tower Data Array, provided that entity that requires the said data can provide the Tower Class index.

    4. The Grid Snapping system which enabled placement of towers in the Unreal Level Editor, has been simplified.

    5. Removed unnecessary collision responses for all actors in the toolkit.

    6. The Power Core now calculates a set of perimeter locations, which are used by the creep actors for navigation purposes, thus acting as a middle ground between the previous implementations which either relied on usage of completely random locations or the creeps grouping together in one region. The number of locations to be calculated can be adjusted easily through the editor using a globally exposed variable.

    7. Added a new Creep AI Manager class that keeps track of all potential targets for the creeps, thus freeing them to only focus directly on the targets. It gets alerted everytime a potential target has been spawned or destroyed anywhere in the map. The Creep AI Manager then relays this information to all relevant creep actors in the level, so that their target weightage information always remain up to date.

    8. Fixed a bug that prevented the towers from returning the tower resources when it's associated tower base is sold.

    9. Fixed a bug that caused the wave generator to stop functioning due to event access conflict when multiple groups of the same creep class are spawned from multiple enemy spawn points in the same time frame.

    10. Introduced a new Focus Fire system that enables the player to request all relevant towers to focus fire on a designated target. This system is driven by a component based approach, thus facilitating easy integration into any new towers that maybe added in the future.

    The Focus Fire component has been added to the Laser Tower, Machine Gun Tower & the Sniper Tower by default as these are the three towers capable of focusing on a single target. Along with the associated Manual Target Override interface, this component serves the purpose of overriding any active target & focusing on a new target specified by the player, provided the target is within range.

    With this new system, the player will be able to play a more tactical role during the combat phase of the game.


    All changes within the blueprints are marked with the boolean variable 'Version1.8' 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.
    Attached Images Attached Images  
    Last edited by Stormrage256; 06-26-2017 at 09:52 AM.

  20. #100
    0
    The v1.8.1 update has gone live on the Marketplace. This update adds support for v4.13 of the Unreal Engine & introduces the following minor changes to the product:

    - Reduced the number of nav path validation queries required while using the holographic tower bases, thus providing a small performance boost under the said situation.
    - Fixed a bug that caused newly spawned holographic towers to flicker once between it's default spawn location & the player's focused location.
    - Fixed a bug that caused the holographic tower base actors to leave small artifacts in the nav mesh when the player focuses on a location outside the grid generators.
    Last edited by Stormrage256; 10-21-2016 at 02:33 PM.

  21. #101
    0
    Update 9 (v1.9) has gone live on the Unreal Engine Marketplace. This is a v4.13 exclusive update & listed below are the main changes introduced in this update:

    1. This update introduces a new Mission Stats system that provides the player with 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 shown below:

    Name:  stats.jpg
Views: 238
Size:  129.0 KB

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


    Gameplay demo of the v1.9 FPS Tower Defense Toolkit (Windows): https://www.dropbox.com/s/sryobzdcejf9ohw/FPS%20Tower%20Defense%20Toolkit%20Sample%20Game%20Demo.7z?dl=0


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

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Changes in the Content Browser:

    - Added new actor component: BPC_GameStatsUpdater

    - Added new widget: Widget_MainMenu

    - New item added to enum 'EHUDState'.
    Attached Images Attached Images  
    Last edited by Stormrage256; 06-26-2017 at 09:52 AM.

  22. #102
    0
    FPS Tower Defense Toolkit Tutorial: How to use Towers without Tower Bases

    [Note: I've reduced the pixel quality of the sample screenshots to make it easier to load in the forum page. If the images are not clear enough, you can check out higher quality versions from the associated blog post at Unreal Possibilities: https://unrealpossibilities.blogspot.in/2016/12/the-following-information-is-based-on-v1.html]

    The FPS Tower Defense Toolkit lets players construct mazes using Tower Bases to control the paths of AI bots. The same Tower Bases also act as platforms for placement of Towers, which help prevent the AI bots from reaching the Power Core. However since most Tower Defense games allow players to directly place towers on the ground instead of a separate platform like Tower Bases, I've received a few queries about how to implement the aforementioned design with this toolkit. This tutorial goes over the modifications required for achieving the same.


    BP_TowerManager:

    1. Set the variable 'TowerZOffset' to 0.0. This variable determines the offset of the towers along the z axis relative to the ground location. The offset ensured that towers were spawned physically on top of the Tower Bases. Since we're not going to use Tower Bases in this particular scenario, a value of 0.0 ensures that the towers are spawned directly on top of the ground.

    2. Now head over to the 'Destroy Tower' function & replace the value of 'Grid Status' input parameter for the 'Update Grid Data Array' function call from 'Tower Base' to 'Empty' [check screenshot below]. Having it set to Tower Base ensured that when a Tower is destroyed, the grid status would revert back to the Tower Base on which it was placed. In our case, we can directly set it to Empty as we're not dealing with Tower Bases.

    Name:  DestroyEmpty.png
Views: 205
Size:  433.4 KB

    3. Remove the function call 'Add Tower Base Entry to Selected Tower Data Array' within the 'Create Selected Tower Data Array' function & connect the nodes as shown in the screenshot below:

    Name:  DeleteAddTowerBaseEntry.png
Views: 203
Size:  330.6 KB


    BP_AttackTowerActual_Parent:

    1. Within the Construction Script, add the segment marked with red border in the next screenshot [check below]. This code ensures that the nav paths are rebuilt every time a tower is placed in the level. Since towers used to be placed on tower bases, we only had to do this when tower bases were spawned. And now since towers are going to be placed directly on the ground, we're calling the same functionality here as well.

    Name:  TowerConScriptNavPath.png
Views: 205
Size:  281.4 KB

    2. In the Event Graph, add a new 'Event End Play' node & add the segment marked with red border in the screenshot below. This performs the same function as last step, the difference being that we're requesting the nav mesh to rebuild itself everytime a tower is destroyed.

    Name:  TowerEndNavPath.png
Views: 203
Size:  213.2 KB

    3. Now add a 'Box collision' component to this class. This will act as the nav modifier volume that can block enemy AI paths, thus forcing them along alternate paths. Update the parameters of this component from it's details panel to match the information specified in the following screenshot.

    Name:  NavModVol.png
Views: 210
Size:  449.1 KB


    BP_TowerBaseHolo:

    1. Now go to the folder 'Holographic Towers'. You should see separate holographic tower classes for Tower Base & Towers. All holographic towers currently inherited from the 'BP_AttackTowerHolo_Parent' blueprint.

    Now the easiest way to modify the Holographic Towers based on our requirements would be to have them inherit from the 'BP_TowerBaseHolo' class. We choose to do this because this class already checks if the tower/towerbase can be placed on the focused grid cell based on the availability of paths from the enemy spawn points to the power core. And with towers being placed at the ground level, this has become a requirement for us.

    However, we still need to make a couple of minor changes within the blueprint. Go to 'Evaluate Tower Resource Requirements' & replace it's logic with the nodes shown in the screenshot below. Basically we're replacing the check for availability of tower bases with a check for availability of tower points.

    Name:  TPEvaluation.png
Views: 204
Size:  296.0 KB

    [Note: You can copy paste these nodes from the same function implementation in 'BP_AttackTowerHolo_Parent' blueprint.]

    2. Within the 'Create New Actor Transform' function, replace the 'TowerBaseZOffset' with 'TowerZOffset' as shown in the screenshot below:

    Name:  TowerZHolo.png
Views: 208
Size:  307.5 KB


    BP_GameInstance:

    1. The 'Tower Data Array' variable contains user specified information about all the Towers. If you expand it's elements, you would notice that the first element is a Tower Base entry. Delete this element first.

    2. Now expand the array element associated with the Laser Tower & set it's 'TowerHoloClass' parameter as the new holographic laser tower we created a while ago [check next screenshot]. Similarly change the same parameter for every other tower element within the array.

    Name:  TDAHoloClass.png
Views: 203
Size:  218.3 KB


    Alright, so now you should be able to use Towers without the need for Tower Bases in your projects. Just make sure to remove references to the Tower Bases & associated enums/blueprints if they're not required. And finally here's a sample screenshot with the final result:

    Name:  Working.png
Views: 202
Size:  695.9 KB

  23. #103
    0
    Update 10 (v2.0) has gone live on the Unreal Engine Marketplace. This is a v4.14 exclusive update & listed below are the main changes introduced in this update:

    1. Added a new component to handle the 'Lock-on System' for Towers. The core functionality of the towers remain the same, but moving the aforementioned feature out of the tower using a modular component based approach should significantly improve the workflow involved in adding new custom Towers.

    As of this update, towers like the Laser Tower, Machine Gun Tower, & the Sniper Tower, that focus on a single target are equipped with the new Turret Lock-on system.

    2. Added a new component to handle the Tower Stats display when the player focuses the cursor on a tower. As a result, the tower blueprints themselves do not have to contain the logic required to handle HUD updates. All that's required of them is to have the 'Tower Stats Display' component, implement the necessary interface & provide the information requested by the component through interface functions.

    3. Added a new blueprint function library to act as a container for custom math functions that are required across multiple blueprints.


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

    Name:  20.png
Views: 180
Size:  308.3 KB

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Changes in the Content Browser:

    1. Added new actor components: BPC_TowerStatsDisplay & BPC_TurretLockOnSystem.

    2. Added new interfaces: BPI_DynamicPostProcessSettings, BPI_TowerStatsDisplay, & BPI_LockOnSystem.

    3. Added new blueprint function library: BPFL_MathFunctions.
    Last edited by Stormrage256; 02-25-2017 at 02:29 AM.

  24. #104
    0
    Update 11 (v2.1) has gone live on the Unreal Engine Marketplace. This is a v4.15 exclusive update & listed below are the main changes introduced in this update:

    1. The Holographic Tower Display implementation has received a complete design revamp focused on a more data driven approach, while removing the multiple layers of inheritance based class system present in the previous versions. The Tower Holograms are now split into two categories: Holographic Tower Constructor Hologram & Holographic Tower Highlighter.

    The Holographic Tower Constructor displays a Hologram of the tower model that has been designated by the player for construction. The physical attributes of this Hologram including the mesh types, their world coordinates, etc are set dynamically using a data driven approach that relies on the information specified by the designer in the new 'Holo Tower Constructor Data array'. The Hologram itself will be displayed as long as the selected tower model can be created at the focused location. However, based on the construction pre-requisites like availability of tower resources & valid navigational paths, the hologram may change it's color to reflect the feasibility of constructing a tower of the selected variety under the given conditions.

    The Holographic Tower Highlighter, on the other hand, displays a Hologram based on the focused actor. As long as the focused actor meets the requirements (in this case, being a tower class entity), the Hologram will dynamically alter itself to match the physical properties of the aforementioned actor. This highlighter uses a different color coding system to make it visually stand out from the constructor hologram, as there can be scenarios which require display of both types of holograms.

    Name:  towercon.png
Views: 135
Size:  613.8 KB

    Apart from these modifications, a Grid Cell Indicator has also been added as a visual cue to identify the grid cell (if any) associated with the focused actor. This ensures that player always receive a minimal amount of feedback based on their interaction with the grid systems, even when Holograms are not displayed due to the particular grid location not meeting the pre-requisites for construction of the selected Tower class.

    2. The Tower Stats Display system has also received some modifications as well as new additional new features that improve upon it's previous iterations.

    In conjunction with the display of Holographic Tower Constructors, the Tower Stats Display will now present the Setup Cost information for the selected Tower model.

    The previous Tower Upgrade Stats system has been extensively modified to facilitate display of information about the Current Stats, Upgraded Stats, as well as Recycle Stats for the focused Tower, using a new dynamic design model that requires minimal amount of hand crafted HUD changes.

    Name:  towehigh.png
Views: 136
Size:  632.1 KB

    3. The Holographic Tower Display system is now driven through a component based approach in order to increase it's modularity & thus facilitate easy implementation with new custom player character classes.

    4. Fixed a bug that allowed placement of towers even when navigational paths was blocked, as long as the player were to initiate tower placement before the nav mesh updates finished processing.


    Free gameplay demo for the v2.1 FPS Tower Defense Toolkit (Windows) can be downloaded from: https://www.dropbox.com/s/a4myd6m1ocqkojc/FPS%20Tower%20Defense%20Toolkit%20Sample%20Game%20Demo.7z?dl=0


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

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Changes in the Content Browser:

    1. Added new actor component: BPC_HolographicTowerDisplay.

    2. Added new enum: EFocusedActorType.

    3. Added new interface: BPI_HolographicTowerDisplay.

    4. Added new blueprint: BP_TowerHologram.

    5. Removed the blueprint BP_TowerHolo_Parent & all it's child classes.

    6. Added new structs: Struct_HoloConstructorData & Struct_UnitStat.

    7. Added new member SetupCost_TowerBases & renamed TowerCost to SetupCost_TowerPoints in Struct_TowerData.

    8. Added new widgets: Widget_BinaryStatModule & Widget_TowerConstructor.

    9. Renamed widgets Widget_Stats & Widget_TowerUpgradeData to Widget_UnaryStatModule & Widget_TowerStatsDisplay.

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    The v2.1.1 update has gone live on the Unreal Engine Marketplace, & introduces the following changes to the toolkit:
    1. Replaced the depth of field post processing effects for the Loadout, Tower Selection, & Mission Summary screen backgrounds with the new UMG background blur system introduced in the v4.15 Unreal Engine update.
    2. Moved the entire target acquisition logic into the Turret Lock-on system, thus making it more easier to integrate it with new custom towers.

    [All changes within the blueprints are marked with the boolean variable 'Version2.1.1' in order to easily identify the workflow changes introduced with this update. Comments are also written to describe the major changes.]
    Attached Images Attached Images  
    Last edited by Stormrage256; 06-26-2017 at 09:51 AM.

  25. #105
    0
    FPS Tower Defense Toolkit Basics: Holographic Tower Constructor

    The Holographic Tower Constructor represents the part of the Holographic Tower Display system that displays Holographic models of the tower designated by the player for construction. The Holograms are created & updated at run time through the 'BPC_HolographicTowerDisplay' component (attached to the player character) using information specified in the 'Holo Constructor Data' array, located within the Tower Manager. Listed below is a brief explanation of the different parameters that drive the Tower Constructor:

    Name:  htcdata - Copy.png
Views: 93
Size:  272.4 KB

    - The 'TowerType' enum identifies the data associated with the tower model selected by the player for construction.
    - The 'Tower' parameter determines the base mesh (same as the mesh model for the actual tower) used to create the tower hologram.
    - The 'LocationOffset_GridCellToTower' controls the translational offset of the tower hologram relative to the location of the focused grid cell.
    - The 'UsesGridCellOrientation?' flag decides if the hologram will be partially or fully aligned with the grid generator. For example, the Trap holograms have this value set to true, since their spatial orientation completely match that of the underlying grid generators. The remaining towers (including the Tower Base) on the other hand, have this value set to false, since they only partially align (along the XY plane) with the grid generator.
    - The 'HasTurretAttachment?' flag determines if the tower has a turret attached to it.
    - The 'TurretAttachment' determines the mesh (same as the turret mesh model for the actual tower) for holographic display of the Turret (if any).
    - The 'LocationOffset_TowerToTurretAttachment' controls the translational offset of the turret mesh hologram relative to the tower mesh hologram.
    - The 'RotationOffset_TowerToTurretAttachment' controls the rotational offset of the turret mesh hologram relative to the tower mesh hologram.
    - The 'DisplayTowerRange?' flag determines if the constructor needs to display the effective range of the tower.
    - The 'LocationOffset_TowerToTowerCenter' stores the offset between the tower location & the central point of the tower mesh (specified based on the said offset in the actual tower class)
    - The 'AffectsNavMesh?' determines if the placement of the tower affects the navigation mesh. This flag is set to true for the Tower Bases since the AI bots will have to path around them. As a result, the holograms for Tower Bases keep updating their color to convey the availability of valid navigational paths based on the tower placement location.

    The Hologram itself will be displayed as long as the selected tower model can be created at the focused location. However, based on the construction pre-requisites like availability of tower resources & valid navigational paths, the hologram may change it's color to reflect the feasibility of constructing a tower of the selected variety under the given conditions.

  26. #106
    0
    Thanks for the toolkit; great job! I just picked it up today and it's awesome. I am finally stumped, though. How would I go about adding a delay to the mission success screen? If it's with a delay node, I can't figure out where I would plug it since the mission success is always called in a function. Does anyone know how to accomplish this? It seems like such a simple thing to do... I guess while we're at it, how would I do the same thing for the Tower Selection Menu? I think it could use a 1 or 2 second delay before activating. Thanks in advance!

  27. #107
    0
    Quote Originally Posted by themuzikman View Post
    Thanks for the toolkit; great job! I just picked it up today and it's awesome. I am finally stumped, though. How would I go about adding a delay to the mission success screen? If it's with a delay node, I can't figure out where I would plug it since the mission success is always called in a function. Does anyone know how to accomplish this? It seems like such a simple thing to do... I guess while we're at it, how would I do the same thing for the Tower Selection Menu? I think it could use a 1 or 2 second delay before activating. Thanks in advance!
    Thanks for the feedback . As you've already noticed, there is a dedicated function 'DisplayMissionSummary' that handles the necessary protocols before the actual Mission Summary HUD is displayed. You cannot call a delay from within a function, but you can do so if you create a custom event.

    What you could do is create a Custom Event within the BP_PlayerController blueprint & move out the nodes upto 'UpdateHUDState' function call (from the original function) into this event. You can then add a delay & call the 'DisplayMissionSummary' function from here after it. Now all you have to do is to replace the all instances of the function call with the new event that you created. And just make sure that you set the same value for the boolean flag 'MissionSuccess' while calling the new event.

    Name:  pcendcall.png
Views: 52
Size:  236.9 KB

    As for your second query, I'll get back to you in a while.

  28. #108
    0
    Quote Originally Posted by themuzikman View Post
    Thanks for the toolkit; great job! I just picked it up today and it's awesome. I am finally stumped, though. How would I go about adding a delay to the mission success screen? If it's with a delay node, I can't figure out where I would plug it since the mission success is always called in a function. Does anyone know how to accomplish this? It seems like such a simple thing to do... I guess while we're at it, how would I do the same thing for the Tower Selection Menu? I think it could use a 1 or 2 second delay before activating. Thanks in advance!
    Alright, the process for adding a delay to the Tower Selection Menu is very similar to the previous solution. So basically when you start a level, what happens is that the BP_GameMode class requests the HUD to display the Loadout menu. Since this is handled through a function in the Player HUD blueprint, you will have to add a delay before calling this function. But adding a delay creates the problem of letting the player send input to the player character which is probably not desirable. There are two ways to prevent this: either by spawning the player character manually after the delay or just pausing the game during the timespan of the delay. Since the toolkit spawns the player character automatically, I'll show you the second approach.

    Create a custom event within the BP_PlayerController class. Add a 'Set Game Paused' node followed by the delay & then use the pause node again to unpause the game. Now call the 'DisplayLoadoutMenu' function from the player HUD class. The last step would be call the new custom event from the Game Mode class as shown below:

    Name:  custinit.png
Views: 52
Size:  224.7 KB

  29. #109
    0
    Quote Originally Posted by Stormrage256 View Post
    Thanks for the feedback . As you've already noticed, there is a dedicated function 'DisplayMissionSummary' that handles the necessary protocols before the actual Mission Summary HUD is displayed. You cannot call a delay from within a function, but you can do so if you create a custom event.

    What you could do is create a Custom Event within the BP_PlayerController blueprint & move out the nodes upto 'UpdateHUDState' function call (from the original function) into this event. You can then add a delay & call the 'DisplayMissionSummary' function from here after it. Now all you have to do is to replace the all instances of the function call with the new event that you created. And just make sure that you set the same value for the boolean flag 'MissionSuccess' while calling the new event.


    As for your second query, I'll get back to you in a while.
    Thank you for answering me so quickly! I had fiddled around with this for a while but I still can't get it to perform the way I'd like. It actually doesn't seem to do anything different even with the delay lol. Can you offer further support on this via e-mail??? I'm sure it's just something simple I'm not doing correctly. Thanks!

  30. #110
    0
    Quote Originally Posted by themuzikman View Post
    Thank you for answering me so quickly! I had fiddled around with this for a while but I still can't get it to perform the way I'd like. It actually doesn't seem to do anything different even with the delay lol. Can you offer further support on this via e-mail??? I'm sure it's just something simple I'm not doing correctly. Thanks!
    Sure, you can always contact me through the support email: rohitmohan.k@outlook.com. Also, if you send me a screenshot of the above mentioned event graphs/functions, it should be easier to figure where to make the changes.

  31. #111
    0
    The v2.2 update is now available for download from the Unreal Engine Marketplace. This update adds support for using Object Pooling with Bullet Projectiles. For more details, refer the change log below.

    v2.2 Change Log:

    1. 1. Added the option to activate Object Pooling for Bullet Projectiles. The pooling system uses a free list (of array indices & not pointers) to chain together unused objects within a fixed size pool, & thus removes the need for iterations through the array.

    To turn on the object pooling system, select the Object Pool Manager actor & set the 'Pool Bullet Projectiles' to true. The pool size itself can be modified through the 'Pool Size_Bullet Projectile' variable as shown below:

    Name:  opmfps.png
Views: 16
Size:  621.9 KB

    2. Added a Projectile Manager class to act as a bridge between objects requesting for creation/deletion of projectiles, & the Object Pool Manager.

    3. Removed projectile lifespan restrictions & added Level Bounds Volumes to assist in the removal of projectiles.


    All changes within the blueprints are marked with the boolean variable 'Version2.2' in order to easily identify the workflow changes introduced with this update. Comments are also written to describe the major changes. The new variables, functions, interfaces, & components added to existing blueprints are also marked within their event graphs as shown in the screenshot below:

    Name:  v22changes.png
Views: 16
Size:  273.0 KB
    Last edited by Stormrage256; 06-23-2017 at 11:27 PM.

Page 3 of 3 FirstFirst 123

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •