[SUPPORT] Advanced Turn Based Tile Toolkit

It works perfectly now! Thank you very much!

I threw together a quick demo of the VR map included with the toolkit based on a request on the store page. For those interested:

Good to hear :slight_smile:

HI , first time poster, just bought the toolkit a couple weeks ago.

I have been playing around with it and loving your tutorials. I ran across two things that look like they have been updated since older videos, but haven’t found the new solution. Was hoping you could point me in the right direction or let me know if you had an ETA for a tutorial vid otw (BTW, that VR demo looks amazing).

  1. I am not seeing the ā€œHeightMapā€ actor that I saw in a previous video. I would love to be able to create a mesh that becomes transparent when you are underneath it like you showed in those videos. Is that still possible with the toolkit or will I need to write my own height map actor?

  2. Big units, I don’t think I saw a video on them, but I have been playing with them and they look awesome. I would love some big units! Currently mine act a little funky and not sure if I have failed to set something up or the system was still under construction? I have made a YouTube video if you would like to see what I mean.

Thank you so much for the kit!

Hi , great asset!
I’ve been reading the BP graphs, and am going to watch the tutorial vidoes. Here’s what I’m trying to figure out, and hopefully you can give some suggestions about it:

I want to use Marketplace Epic assets (more specifically, paragon & infinity blade assets) to build a level where building blocks are basically natural and high-fidellity, but heroes walk in map using tiles instead of nav mesh. There are rocks & trees & lava where heroes can’t walk through, and there are flat places where heroes walk fast. Think of a super tiny Dota or LoL map.
So around this there are:

  • How to combine the realistic assets with grid system? Like, use grid as base, and make a giant rock into a BP which takes 3*3 hex tiles? Or, just make the whole level, and use some tool to automatically generate tiles that fit the terrain? If latter, where in this project should I check out?
  • How to make it more natural? Since you’ve been making a X-com like game, maybe you have lots of experience about it. Hopefully you can teach us one thing or two.
  • What is the recommended way of using paragon characters with ATBTT? I see there is a series of videos talking about humanoid characters reparenting to Unit. According to my specific goal, are there any suggestions?

Have a great day, and thanks in advance!

Hi .
I apologize for the translation, because my knowledge of English is too small.
I really liked your toolkit, it is multifunctional and contains many ready-made mechanics. That’s just to understand them quite difficult, it would be great to see in the toolbox comments for what this or that function or variable is responsible. But with this you can still understand by trial and error, but to add something your own turns into beating against the wall, only you overcome one another appears.
I had difficulties with the creation and destruction of objects during the game.

  1. When BP_GA_Platform_Tiled is spawned, a grid on it refuses to appear. It is clear that the grid is projected at the beginning of the game, but how to add if the game is already underway.
  2. When destroying the BP_CoverSystem object continues to work, the question arises how to remove this object from the system.
  3. How to make BP_CoverSystem work with a destructible mesh, he refuses to see it.
  4. How to make large units, how to increase it is understandable, we increase the value of ā€œsizeā€ in attributes, but he refuses to move.
    These questions caused difficulties, since I could not find information on them.

Glad you like the asset :slight_smile: I’ll do my best to answer your questions.

It basically boils down to keeping the grid in mind while designing. Your rock does not necessarily need to be a blueprint. It could just be a static mesh. But you proably want to scale most things so that they fit fairly well onto the grid. For square grids this is super easy, as you can just use the default UE4 grid snapping. For hex grids it will take some more testing and moving things around.

As long as you understand how the grid works you are pretty free to design the map as you want. For natural looking scenes you probably want to use the procedural grid systems. Namely the automatic heightmap generation using line traces and automatic wall generation through (bTraceForWalls) in BP_GridManager. After that it is a matter of having meshes you want to be able to walk on block the PathTrace collision channel, have meshes you want to block movement block the WallTrace collision channel and have meshes you want to occlude vision block the RangeTrace collision channel. You will want to play around a bit with how your meshes collision is set up for this. In many cases the default collision geometry of your meshes might work fine, while you might in other cases want to add new collision boxes to fine-tune your setup.

You’re in luck. I very recently made three new videos on using custom skeletal meshes for units. Take a look:

You too, and no worries!

Hi !
There is Overwatch feature in the Toolkit feature list, but I can’t find it from project. Have you taken it away? Is there any example how did you do it in the first place?

Hi @histiz , I’m on the latest version of the kit and can see the ability in Maps>Advanced>Abilities. The BP is called BP_Ability_Overwatch. If you didn’t know, all assets belonging to the XCOM-ish map made is inside this ā€œAdvancedā€ folder, including abilities, units and other utilities. Keep in mind you can use the search bar in the Content Browser, meaning that if you type in ā€œoverwatchā€ in the root folder Unreal will automatically find any files containing the name for you. Use the search bar on the folder contents panel, not the bar on the folder directories.

As for information on how he did it, your best bet at the moment is to go back and watch his video talking about the map, though by now it may or may not be a bit outdated, or searching in this forum with the ā€œoverwatchā€ keyword i would imagine.

Of course, if @ could make some tuts for dummies like me on the subject, I wouldn’t complain teehee…

Thanks @ , but I can’t find that Overwatch BP! Are you sure that you have latest Toolkit? Downloaded Toolkit again (cleared downloaded content) and made fresh new project and there is no BP_Ability_Overwatch. Is it possible that it’s removed from latest ATBTT that is in Marketplace?

Sorry for the late reply, @JBetamaxxx and @Danort. When you make your first post on these forums it takes a while for Epic to validate it and it also seems this prevents me from getting an e-mail notification, so I did not see your comments until now.

The heightmap blueprint is still there, just moved and renamed. You can find it as BP_GA_Platforem in Core/Tiles. You can see an example of implementation in the JungleRaid map.

​​​​​​​

Yeah, this feature has always been a bit of a headache. For square grids and units up to a size of 5*5 tiles it works fine, but it is the sort of feature that impacts a lot of other features in the toolkit, since it breaks the basic assumtion of 1 tile = one unit. This means that whenever you make an ability or modify the AI you need to write the blueprints so that it targets and considers multiple different tiles etc. In short I would not recommend using big units unless you are very proficient with both blueprints in general and this toolkit in particular. To see an example of an ability set up to work with big units see BP_Ability_Move.

These questions are all related, as all of them have to do with how the toolkit does many things at the start of the game, which does not change unless you do so directly. If you want to add new tile locations after the game has started you need to change the GridLocations TMap in BP_GridManager. To be able to move to that tile, the surrounding tiles must have edges connected to that tile. This is defined in the GridEdges TMap. Since you are talking about platforms I’m assuming you are using multi-level grids, which makes this a bit difficult. However, you can use many of the same function that are used at the beginning of the game to achieve the same effect later. Here is one example setup as a starting point:

First I spawn a BP_GA_Platform actor above the tile hovered over by the mouse (this could just as well have been a regular static mesh):


Next I repeat the setup normally done for the whole grid at the start of the game, but only do it for the index I spawned over as well as all its neighbors (in order to have them connect their edges appropriately):


Here is the pastebin for this code.

This does the job for a platform covering a single tile. For a larger platform, like the one you are suggesting, you would need to loop over every tile the platform covers as well as one more tile in every direction.

Let me know if you run into any difficulties. My next planned tutorials will be about the various grid arrays in BP_GridManager and how they affect pathfinding etc.

Firstly, it only works with square grids, and also does not work 100% with multi-level grids. For single-level square grids it will work, but you need to set both the size of the unit and the max unit size of BP_GridManager. As mentioned before, big units are pretty difficult to work with, and if you are using grids with overlapping levels I would not recommend using this feature.

You are correct that the overwatch ability does not exist in the current version. I broke the implementation during a previous refactoring and have not gotten around to re-implementing it yet. This is partly because I was not perfectly happy with the previous implementation. It is on my list of things to add, but thanks for reminding me about it. Apologies for the incorrect feature listing. I will remove it from the list and will try to add an improved version soon.

Well that’s odd…I just created a new project, ATBTT apparently up to date in the Epic Game Launcher, 2.0 from 15/11/18 supposedly, and I can see the Overwatch BP in that directory…? It’s not in the map of course, like says he’s taken it out of the game because the BP is currently broken, but the BP uasset should still be there…?

I saw the word ā€œeasyā€ and took the bait. Would love to make this work just for experimenting more with ATBTT’s architecture. Here’s my progress and current obstacles if anyone can chime in:

1-As for the logic of the affair: first check if the incoming attack is a counterattack. If true, do nothing - we do not want an infinite loop of counterattacks. If not, check if the enemy is one tile away, and if he is, send the signal for the counterattack. The CA could be an Ability BP, to make things easier with the validation checks.
2-Since this is something unit-specific, I thought the best thing would be to put this logic in the Event Graph of the unit, after the Event Animate Hurt is activated? After the animation is played, do this action.
3-How do I get the enemy’s position (to calculate the Index and other operations) for this? Working on a BP_Unit_Anim copy, I tried using the incoming Action of the Animate Hurt event, pass it through a Break FAction pin to get the Vector, but this returns always 0,0,0, or at least its 0th element. I imagine this is so because this information was not put into the Vector array inside this particular Action?

Thanks !

I did find that BP_GA_Platform and Wall after playing around a bit. As for the big units, No worries! I searched through the rest of the thread and saw similar comments.

As for the ā€œlateā€ reply, don’t even worry about that! You responded plenty fast! Keep up the good work, I enjoy watching all of your tutorials and playing around with this toolkit, very fun!

hi

not something super important but just take a note for it, in bp_ga_tile blueprint you need to add small delay before the function - get tile base edge. engine trying to read grid manager ref to early

cheers

leo

Yes @, that is really odd. Did you clean downloaded content? If you have downloaded Toolkit before and make new project, then it is using same files and doesn’t download it again. Anyway no Overwatch BP or uasset.

Thanks for the reply @ and no problem with incorrect feature listing. It would have been nice to see how you did it, but I will do my own implementation then.

@histiz what exactly do you mean with clear downloaded content, just to be certain I did that? I tried manually sending to the dustbin my previous ATBTT project (inside my Unreal Projects directory) then re-downloaded the project using the same name for the new project.

I will look into reimplementing the overwatch ability fairly soon. For those who need something before then, install the 4.20 version of ATBTT (which you can open in 4.21) where these blueprints are still included. Be warned that they are a bit glitchy, though. It seems their animations disrupt the action system in some rare cases, which is why I removed them for the time being.

Weird, no idea why you are seeing this. They seem to be gone on my end.

Ok, my previous suggestions were a starting point, but when you know precisely what you need for your game the requirements and best practices will change. The solution I gave you does both the attack and the counterattack within the same ability (of the attacker). This works if you only have one melee attack type in your game, but if you have a lot of varying properties for the melee abilities of different units this makes the approach less ideal. However, using the action system, if you want two different animations to play out in parallel it is simplest to animate them as part of the same action (like I suggested). If you want to animate the counter attack after Animate Hurt is played then the attacks will not happen at the same time, which is what I think you wanted? Please give me a more detailed description on what you want to happen both on the game logic side and for what is shown to the player.

Yep, this action does not normally need the position of the enemy, so this is not input into the action. If you want to use this you have to do so. Also note that you should never do game logic stuff within actions. They are strictly for showing stuff to the player. If you use stuff like grid indexes within an action you will often get weird results, since such gameplay logic stuff is calculated instantly, while the animation of actions happen later. For instance, if you move a unit from one tile to another, the unit reference will first be moved on the grid (instantly), and then an action will be called which moves and animates the unit actor when the time comes in the action queue. Therefore if you try to get the unit’s grid index at the start of the animated movement action you will not get the index representing where the unit was at the start of moving its reference on the grid. If this is still a bit unclear I recommend rewatching my videos on the action system.

Great! Have fun developing and let me know if there is anything else.

Ok, thanks for letting me know. Could you tell me the condition under which you get a warning for this? Is this when spawning new tiles?

As mentioned, the ability and status effect 4.20 version of the toolkit should be a good starting point.

hi

the most easy way is to just compile this blueprint and you will see the warning in the output log

cheers

leo

Is there a way to remove a tile properly at runtime?
Im trying to have obstacles removed but despite actors being dead the grid is still affected.
Tried calling AddTileEdgesNoHeightmap on event Destroy, but that does not have an effect.

I’m having an issue following along with the tutorial videos. I was up to part 3 of the Action System (from 2018) and making the teleporter but for some reason I don’t have access to the grid actor variables in my teleporter blueprint and I’m really not sure why. It’s there in the original blueprint, but doesn’t seem to carry over in the child BP.

Admittedly, I’m super new to UE4, but it seemed pretty straightforward so I’m more than a little bit confused!