[SUPPORT] Advanced Turn Based Tile Toolkit

I understand its’ not trivial because of pathfinding, unit turning and positioning issues. I’m looking forward you implementing these features because if you don’t, in July I’ll have to code everything from scratch to work like in this project:

Yes! That sorted it, thank you. I’ll be honest I didn’t know exactly what I was doing but I managed it in the end :slight_smile: thanks as always!

**@Da Stranger: **I can with almost certainty say that this feature will not be added by July. I am working on a lot of other features and they will take quite some time to get done. I will gladly help you add it yourself, however. If you are making something exactly like the image you are showing there are some things you do not have to worry about, such as walls between tiles or multiple height levels, which should make it easier. Is that the only form of large ship or are there others that take up more than four tiles? If there is only one type it also becomes a lot easier to add.

@rob33: Good thing it worked and I hope you understand my reasoning for why this worked when your previous solution did not :slight_smile:

Thank you for your answers. There will be larger ships and obstacles (“walls”) on the map. The “height level” will be the same.

Ok, I see. There are multiple ways to solve this. Some are more efficient, others are easier to implement. Could you tell me how big you expect your maps to be, as this influences how important it is to keep pathfinding very efficient. Also, will your obstacles take up whole tiles, or will there be obstacles between walls? If it’s the second one it becomes a lot more tricky. I’m also unsure how to solve rotation of big units that cover an arbitrary number of tiles in an arbitrary pattern, but I will think on it.

I need relatively small maps about 20x50 hexes and obstacles will take up whole tiles. And I agree, rotation problem is not simple, but its solvable to some degree when unit overlapping will become minimal. For example, we may assume that units can move sideways and backwards when they cannot make a turn in their current position, but that may cost them extra points.

Sure, it is certainly solvable. The problem is how to solve it in a way that is efficient enough that it does not cause any framerate drops. If you have multi-tile units that always take up the same tiles no matter how they are rotated it is relatively to precompute what tiles can be occupied by such units. When rotation changes what tiles are covered this becomes challenging to solve with precomputation. A dynamic system that checks all rotations for all tiles searched during pathfinding is easier to implement, but can potentially be taxing on memory. How much of an issue this is depends on the game, like I said, and might not be an issue in your game, My macros for running pathfinding over multiple ticks could also prove useful for complex pathfinding of this kind. I will continue thinking about this problem and let you know if I come up with a more elegant solution.

Frame rate loss in a turn based game?! Macros for running pathfinding over multiple ticks?
OnTick / OnButtonClick and everything else on the Render thread should never do any long computations. Usually long physics and AI computations are launched as a task on a separate thread with low priority. When result is available, final path is drawn. In between (for example computation takes 3 seconds) a temporary path is visible to the player. It ignores obstacles, so can be computed very quickly. That’s an example. If the computational time is 0.2 seconds, then just changing the cursor for that time should work fine too.

For C++ you would indeed be correct, but blueprints cannot at present utilize multi-threading and the toolkit is entirely blueprint based. My highest priority has always been to keep pahfinding as efficient as possible within the constraints of blueprints and I have succeeded in creating a pathfinding that is efficient enough to run without framerate drops even for games on very large grids. Pathfinding can quickly become a lot slower if a lot of extra if statements are added, as could quickly become the case for multi-tile units of arbitrary sizes and rotations. There are multiple ways to get around this, though. As mentioned I have created a macro that can run pathfinding over multiple ticks (before it is completed you could indeed show a temporary path). Also, if you use Unreal’s blueprint to C++ converter it becomes even less likely to be a problem. My main point is that there are several different ways of solving the multi-tile unit problem, but finding the solution that is the most efficient will require some testing.

Thanks, I didn’t know about that Blueprint limitation. Good luck with your tests!

The latest version of the toolkit seems to work perfectly with UE4.12. If you want to work with 4.12 just open a 4.11 ATBTT project with UE4.12 and all should be well. I’m notifying Epic and 4.12 should soon also be selectable when creating a new project with ATBTT.

Some of you may have noticed that there is now a new version of ATBTT in the launcher for UE4.12. Unfortunately some new, game breaking bugs seem to have occured with the 4.12.1 update, so this update does not work properly. Therefore do not use the 4.12 version of ATBTT and instead open a 4.11 version in UE4.12 which should also work. I will try to fix these issues and send a new update to Epic soon.

There also seems to be a problem with nativizing the blueprints when packaging. For those of you that don’t know, UE4.11 included the option to turn blueprints into C++ code when packaging. However, checking this option seems to cause a packaging failure for ATBTT. I am looking into what might be causing this, but for now uncheck “nativize blueprints” when packaging ATBTT.

Sorry for the inconvenience these problems might cause any of you.

How would I start a new (4.12) project if I don’t have a copy of ATBTT for 4.11? Does Unreal download a different ATBTT if I pick 4.11 first?

Hello Chrisby, sorry for the terribly slow answer. I did not get a notification for some reason. A working 4.12 version is now available in the marketplace, so this should no longer be an issue.

For future reference, though, if you want to open a project made in an older version of UE4 in a newer version you simply launch the newest version and open the old project from the window that appears. You will be prompted to open a copy, which will create a copy of your project for the newest UE4 version.

I’ve spent a couple of days trying to find out what goes wrong when using Nativize Blueprints with ATBTT. I have identified two causes and posted a bug report on AnswerHUB. Firstly, nativization does not seem to work with child animation blueprints that override their parent animation blueprint’s animations. Having such an AnimBP in your project causes a crash when packaging just for having it in a project folder. Secondly, resizing arrays of structs causes all structs to be assigned seemingly random values. I have found ways around both of these issues, but they are clunky. I have submitted an error report to Epic and they will hopefully fix these issues in a coming update. Until then I recommend that anyone packaging ATBTT simply disables Nativize Blueprints in Project Settings -> Packaging. If you do this everything should work just as it always has.

Sorry for dumb question )
I’m trying to replace default hover cursors (move, attack, etc), replacing components variables in GridManager, but nothing changes ingame. What coukd be wrong?
Thanks!

The meshes (or decals) of the markers, tiles etc. are set using public variables in BP_GridManager. After placing the grid manager in your map, change these variables through the details tab under the Static Meshes or Decals section depending on what you’re using. I recommend looking through the first few videos of my tutorial playlist on YouTube which covers this as well as much else: UE4 - Tutorials - Advanced Turn Based Tile Toolkit - YouTube

Hello , I am looking to possible start creating a game and I think your toolkit would make life so much easier but had a question first; do you think you toolkit could be used to create something similar to the old Gold Box SSI AD&D games like Pool of Radiance. It had kind of a grid based movement from a first person perspective for moving around the maps at a high level, but when a battle began it would transition into a turn based grid combat.

Thank you
Delak

Hi Delak, this should certainly be possible using the toolkit. As a matter of fact the actual developers behind Pool of Radiance are currently using my toolkit to create a prototype for their upcoming game inspired by their classic titles: In the News | TSI Games

I have experimented a bit with including first person movement on a grid and it should not be that hard to implement. You would of course need to have decent knowledge of blueprints to implement this, but I’ll also do my best to help.

Thank you . That’s great news about the former ssi folks making a new game. I also appreciate the willingness to help, I have seen you post several times helping people.