Announcement

Collapse
No announcement yet.

[SUPPORT] Advanced Turn Based Tile Toolkit

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by Dijon View Post
    Monokkel In your Jungle Raid map the player faction has green health bars and the enemy have red ones. In the current version they are all red. I've looked in the "switch on faction" BPs but I can't find where you set the value.
    Hmm, how about that, I had forgot that I used to color the health bar by faction in Jungle Raid. Here is a quick way to achieve this result:



    Originally posted by Dijon View Post
    Currently (again in Jungle Raid) with the characters in the centre of their grid, trying to play a cover animation will look silly because the character is half of a tile away from cover. Have you come across this before and, if yes, how did you solve it? I'd rather not start playing with grid offsets, so the only thing that I can think of is to shrink the size of the tiles or scale up the characters. Your thoughts?
    You could of course resize the tiles, but in any case you would probably want to detect the direction of the cover so that you can play your cover animation leaning against that cover (where the unit can move closer to the cover within the tile as part of an animation). Does that sound like a way to do it? Not 100% sure if I understand the question.

    Originally posted by Dijon View Post
    I'm pretty sure that I saw in one of your videos that an event is fired when a character enters a new tile. Would that event contain any information about the tile, such as whether it is a cover tile?
    The event dispatchers OnUnitEnterTile and OnUnitEnterTile are both called during movement simulation, and they have the GridIndex of the tile as input. This GridIndex can be used to get values from any of the grid sized TMaps. This includes things like GridLocations in BP_GridManager for the viewport location of a tile, or the GridCoverTiles TMap in BP_CoverSystem, from which you can get the cover data for each tile on the grid.

    Originally posted by Dijon View Post
    Also, do you have a roadmap of any planned future changes? I'd like to change the movement areas, that are currently colour coded to show move distance, to the XCom 2 / Gears Tactics style where only an outline of the move distances are shown.
    There is a link to my Trello on the original post of this thread, which shows current WIP and planned features, as well as lists of all significant changes that were made in each update since the early days of the toolkit.

    Move outline are my one great nemesis. I've tried to implement it several times, and each time I've gotten something that almost works, but breaks for certain map combinations. It is something I plan to tackle again someday, as it is a much-requested feature, but I need to come up with a good way to solve it first. The result of my previous attempt can be found in the 2D map HydrasLair. This uses procedural meshes and post process outline shaders. It works fine if your map has flat tiles, so you could look at it and see if it can work for your game.

    Originally posted by [B
    spartacusthegod[/B];n1769701]Hello again! Having a weird issue, and I'm having trouble debugging it. Seeing which nodes are/aren't firing correctly is rather difficult with a small, one-monitor setup. I'm hoping to get some clarity. For context, I'm trying to randomize stats from character to character, and I am succeeding in what I've applied so far for simple things, like health and movement speed (effectively the number of tiles a character can move). I'm taking advantage of the basic PrintString node just to see that yes, different variables are being applied correctly, and yes, those variables are showing as in-game effects. Perfect so far, and thank you for the help getting me there!

    However, when I change the health of units, sometimes things break in regards to taking damage and removing units. Right now, I'm generating a random integer for health that falls between 62 and 160, converting it to a Float, and then setting the Max Health config variable to that. Some units take damage correctly, show the death animation, and are removed from the grid, while others will take damage, still show a small amount of health remaining and will stay on the grid, but will act as if they have died (cannot be targeted or controlled, AI ignores them, can move into the same tile, etc.).

    I can't seem to figure out the root cause of this. I've tried looking at the TakeDamage function in Unit_BP in particular, that seems to be the function that would control the issue I'm having, but I can't see what could be going wrong. Could you take a look at this for me, or at least point me at the correct variables/functions to examine closer? Thank you!

    (Also the updated tutorial series is deeply appreciated, I will absolutely be diving deeply into that as you upload them.)
    Hi, this seems likely to stem from a mismatch between what is held in the unit variables and what is passed to the action system. The health bar is not automatically updated when you change the value of health. It has to be separately modified. This is done since game logic things are done instantly (so the moment you click an enemy, damage is applied), but you generally want to delay modifying the health bar until after the attack animation has played. So, in other words, after changing health and max health set the scalar parameter value of the health bar to a percentage that reflects it. Hopefully that should do the trick.

    Originally posted by ser.man94 View Post
    Good day someone make turn based strategy?
    Indeed they do Are you looking for examples of things made with this toolkit?

    Originally posted by leo bar View Post
    hi mono

    thanks a lot for the new videos, they are great!
    Glad you think so, leo!

    Originally posted by leo bar View Post
    1. in the new version I noticed that there is some lad/ delay when starting the game. after a lot of searching i ended up in the turnmanager in the NotifyPlayerReady event there is a delay for tick node that is set to 20. i think its a mistake and probably should be 2. but if you did it on purpose can you explain why?
    That delay is to make sure everything is set up before starting the game. The value is so high to make sure clients with slow connections will not have issues in networked games. However, it is unnecessary to have the value be this high for local games, so I should have added a Select node based on if the game is networked or not. I will put it on my list of things to fix. More long-term I'm also working on a setup that would eliminate the need for a hardcoded start delay altogether.

    Originally posted by leo bar View Post
    2. in the setup base edges function in grid manager you made minor change in the new version. that change made some problem with my outer line display i did. it seems that is now (with the new version its gives me incorrect line).
    Oh, that's right. It is a pretty subtle change, but one for which it makes sense that would screw up some things in custom projects. So the base edges used to be ordered clockwise, so North, North-East, East, South-East etc., more or less arbitrarily.

    However, this caused some minor visual pathfinding issues in some cases for multi-level grids. When edges are added between tiles on multi-level grids, they do so in the order specified in the base edges. This is also the order in which pathfinding will prioritize adding tiles to the open list when searching for a path.

    With this old ordering, units would sometimes prioritize walking North-East rather than East on a path, if both had the same cost. The path is just as efficient, but it looks weird to have the units zig-zag like that. Because of this I reordered the BaseEdges array so that the straight edges go first (North, East, South, West) and then the diagonal ones (North-East, South-East, South-West, North-West).

    Originally posted by leo bar View Post
    3. this is a Very general question. i have like 40 character a player could choose from to start a mission. my base character have a lot of variables and some components. i have few option on how to have all the 40 character and there data store in the game , but i need your input on what way you think is the best to organize every thing. one way is to make to each one of the 40 character a separate character with all his stats and variables on his character, but making 40 like this doesn't make sense to me (does it?). the other way is to place a tmap list with struct somewhere like in the gameinstance and store all the variables for each character there. and just spawn from this tmap the character according to there name (for example). is this a better way to do it? is there another way you would have done this? performance and memory wise.
    Sounds like something that would be a good fit for a data table. Create a struct with the relevant unit data and make a data table from it. Then populate it with your unit selection.
    Advanced Turn Based Tile Toolkit (Marketplace - Support)

    Dungeon Crawler Toolkit (Marketplace - Support)

    Discord

    Comment


      New tutorial video is live. This one is about working with height differences in ATBTT, including overlapping multi-level grids. Enjoy!

      Advanced Turn Based Tile Toolkit (Marketplace - Support)

      Dungeon Crawler Toolkit (Marketplace - Support)

      Discord

      Comment


        Originally posted by Monokkel View Post
        New tutorial video is live. This one is about working with height differences in ATBTT, including overlapping multi-level grids. Enjoy!

        Thanks so much for the updated tutorials, this latest pointed out something I didn't realize I could use.

        Were you planning on making a tutorial soon using the UpdateTilesInRange function to show how to spawn meshes dynamically creating our own heightmap bounding box?

        Comment


          Originally posted by Monokkel View Post
          New tutorial video is live. This one is about working with height differences in ATBTT, including overlapping multi-level grids. Enjoy!

          Thanks for these new tutorials; I'm so appreciative since they really help in understanding the toolkit. I'm that one person who can use the Height Slow Increment so I'm glad you pointed that out! That feature was not created in vain

          Comment


            Originally posted by RTE1984 View Post

            Thanks so much for the updated tutorials, this latest pointed out something I didn't realize I could use.

            Were you planning on making a tutorial soon using the UpdateTilesInRange function to show how to spawn meshes dynamically creating our own heightmap bounding box?
            I might do an extra video at some point on things like subgrids and UpdateTilesInRange. UpdateTilesInRange is fairly straightforward, though. Input a location or GridIndex, set a range and the tiles in range will be added as if they had been within the bounds of the grid at BeginPlay.

            Originally posted by Reinhart_x View Post

            Thanks for these new tutorials; I'm so appreciative since they really help in understanding the toolkit. I'm that one person who can use the Height Slow Increment so I'm glad you pointed that out! That feature was not created in vain
            Happy to hear that! I've had to learn the hard way that even if something is simple and quick to add initially, having to keep the feature updated through all versions is a lot of continued work. The HeightSlowIncrement is one of the prime examples of this, so it is good to hear it was not all in vain.
            Advanced Turn Based Tile Toolkit (Marketplace - Support)

            Dungeon Crawler Toolkit (Marketplace - Support)

            Discord

            Comment


              How does a unit entering cover know that it is in cover? Is the unit also aware of what is in the surrounding tiles, or just the edges? I would also like to replace the existing combat system with my own, but I want to keep your ability system. It seems like I could just change the BP_Ability_Laser, for example, to how I want it to run. Is this too simplistic (i.e. is there a better way)?

              It's taking me a while to get my head around the toolkit, but I'm really liking it, and the videos help a lot. It would be nice to have written documentation, rather than having to watch an entire video when I get stuck, but I'm one of those dinosaurs who prefer written tutorials.

              Comment


                Originally posted by Dijon View Post
                How does a unit entering cover know that it is in cover? Is the unit also aware of what is in the surrounding tiles, or just the edges?
                BP_Unit has a GridIndex variable, representing its place on the grid. If you get the value on this index from the cover TMap in the cover system you can find the cover values for the tile the unit is on. If you need the surrounding tiles as well you can use GetIndexesInRange in BP_GridManager to get an array of tiles within a set distance of the unit's GridIndex.

                Originally posted by Dijon View Post
                I would also like to replace the existing combat system with my own, but I want to keep your ability system. It seems like I could just change the BP_Ability_Laser, for example, to how I want it to run. Is this too simplistic (i.e. is there a better way)?
                Creating and modifying abilities is generally the simplest and often best way to modify the toolkit. The included abilities (such as Laser) are intended mostly as examples, and I encourage you to make your own. If any of the abilities is close to what you want you can create a duplicate to use as a starting point.

                Originally posted by Dijon View Post
                It's taking me a while to get my head around the toolkit, but I'm really liking it, and the videos help a lot. It would be nice to have written documentation, rather than having to watch an entire video when I get stuck, but I'm one of those dinosaurs who prefer written tutorials.
                I understand very well that written documentation would be useful for many. It mostly boils down to the amount of time I have on hand, and the sort of work I find enjoyable. I'm already struggling to put out enough tutorial videos, so I don't know how I would find the time to make and maintain a written documentation. It would have to come at the cost of other stuff. I also personally prefer to learn from videos when possible, and there are so many things in the toolkit that are much simpler to show than to write out in words. If I'm ever able to make this my full time job I would definitely put off time to make a written documentation, but as it is I'm afraid I have too much on my plate as it is. Sorry about that.
                Advanced Turn Based Tile Toolkit (Marketplace - Support)

                Dungeon Crawler Toolkit (Marketplace - Support)

                Discord

                Comment


                  A hotfix to ATBTT was uploaded by Epic today. It has two minor fixes:

                  v2.61 (live 08.06.20)
                  • Fixed infinite loop error if all AI abilities were simultaneously given a value of 0.
                  • Reduced game start delay for standalone games.
                  Advanced Turn Based Tile Toolkit (Marketplace - Support)

                  Dungeon Crawler Toolkit (Marketplace - Support)

                  Discord

                  Comment


                    Hi Monokkel,

                    To my knowledge there is no option in the toolkit to allow players to share a space on the grid, am I mistaken and if not could you provide a direction on how we would accomplish this? The image below would be an unlikely but possible case that could happen because our game has a maximum of 5 players. We're thinking to avoid weird clipping issues that maybe we could assign different locations on each grid space to each player.

                    Click image for larger version

Name:	share space.JPG
Views:	105
Size:	155.3 KB
ID:	1773180

                    Comment


                      Hi Dr. Knut
                      First I wan´t to say thank you for your great Toolkit, I learned a lot in the last days from it and your videos. So I have three initial questions, mybe you can help me out:

                      1. When I wan´t to update to latest version, what way do you recomend updating an already started project? Creating a new Project from thew new version and migrate all of my own stuff to the new project excluding the Toolkitfolder itself? Or is it enough to just click the Update button in the library and it will be updated?

                      2. I have started something similar to Might an Magic Heroes 7 but with every unit beeing able to gain Levels and without the stacks. So every unit will just represent one unit. Switching from the world map (level) to an encounter should then lead to a new level where combat starts. After that the Level will be cleanded out and the player rejoins the world map. How would you organize the units so that they are able to progress throughout the game? So were to store their data best that I can load (spawn) them to the temporary combat level.

                      3. After revisiting a lot of your resources I intend to organize the world map via your strategic combat mode and the combat levels via your basic and D&D initiative combat mode. Is that a good starting point? Or am I wrong and there is a better starting point from your point of view?

                      By the way what is the game you are programing yourself about? Are there already some information you can share? I am really interested

                      Thank you a lot in advance and keep up your great work

                      Comment


                        Originally posted by RTE1984 View Post
                        Hi Monokkel,

                        To my knowledge there is no option in the toolkit to allow players to share a space on the grid, am I mistaken and if not could you provide a direction on how we would accomplish this? The image below would be an unlikely but possible case that could happen because our game has a maximum of 5 players. We're thinking to avoid weird clipping issues that maybe we could assign different locations on each grid space to each player.

                        Click image for larger version

Name:	share space.JPG
Views:	105
Size:	155.3 KB
ID:	1773180
                        Hi RTE, how difficult this is to achieve depends a lot on your desired end result here. The GridUnits array only supports one unit on each tile by default, but you can work around it in various ways depending on your game. Could you explain a bit more about the purpose of this in your game? Are units to be "grouped" on a tile, which can then be moved as a single unit? Should they all be selectable individually once they are all on the same tile? If so, how are you imagining the UI and input would be to convey this to the player and allow him to select one of the units? Be as specific as you can on these things and I will think up a recommendation.

                        Originally posted by Infest1908 View Post
                        Hi Dr. Knut
                        First I wan´t to say thank you for your great Toolkit, I learned a lot in the last days from it and your videos.
                        Great to hear! I always hope that my toolkit is a good learning resource for blueprints more generally.

                        Originally posted by Infest1908 View Post
                        So I have three initial questions, mybe you can help me out:

                        1. When I wan´t to update to latest version, what way do you recomend updating an already started project? Creating a new Project from thew new version and migrate all of my own stuff to the new project excluding the Toolkitfolder itself? Or is it enough to just click the Update button in the library and it will be updated?
                        Unfortunately, there is not really any simple way that does not require significant work. You will have to do most things manually, and how you go about this depends a bit. For very minor updates like my last one, the simplest way is to create a fresh ATBTT project, do a blueprint search for the version number (2.61, in this case) where I have marked the changes and copy the relevant blueprint changes to your project manually. For more substantial ATBTT updates you might want to go the other way (since you know your own changes best), migrating and copying your changes over manually. I'm sorry that there is no automatic merge function, so for any update you will have to consider the magnitude of the changes and if updating is worth the work it takes.

                        Originally posted by Infest1908 View Post
                        2. I have started something similar to Might an Magic Heroes 7 but with every unit beeing able to gain Levels and without the stacks. So every unit will just represent one unit. Switching from the world map (level) to an encounter should then lead to a new level where combat starts. After that the Level will be cleanded out and the player rejoins the world map. How would you organize the units so that they are able to progress throughout the game? So were to store their data best that I can load (spawn) them to the temporary combat level.
                        There are two main ways to save progress in UE4: GameInstance and SaveGame. GameInstance is initialized when a client joins the game and is maintained between levels. You can use it to store the data about your units when transitioning to a level. Then when loading a new level you would get the GameInstance, get the variables you've stored there and create/update your units from there. SaveGame works similarly, but creates an external SaveGame file that is maintained even when exiting the game. You use LoadGameFromSlot to access the data you have stored there. These are general UE4 features, so I recommend looking up the documentation and various tutorial videos that exist out there.

                        Originally posted by Infest1908 View Post
                        3. After revisiting a lot of your resources I intend to organize the world map via your strategic combat mode and the combat levels via your basic and D&D initiative combat mode. Is that a good starting point? Or am I wrong and there is a better starting point from your point of view?
                        Nothing wrong with doing that, if they work the way you want them to in your game. Sounds like a decent fit for a HoMM-style game.

                        Originally posted by Infest1908 View Post
                        By the way what is the game you are programing yourself about? Are there already some information you can share? I am really interested
                        It is a long work in progress that has gone through many prototypes. I want to make sure the game is really fun and interesting before I take it beyond the prototype phase. I have some ATBTT prototypes as well as some paper prototypes that I can play with friends as a board game (great way to have rapid iteration and get feedback early!).

                        The game is a run based TBS all about fast and tactically dense combat, where all abilities are decided by the loot you find, creating wild and emergent synergies that change each game. If I try to compare it to existing titles it is a bit like a cross between D&D and Into the Breach, but it embraces chaos and unpredictability in a vein more like the Binding of Isaac.

                        It is also inspired by some of the higher level design principles of games like Dream Quest/Slay the Spire (the test-your-luck synergy building aspects, not the card mechanics). Game is a long way off, though, but it is a blast to work on

                        Originally posted by Infest1908 View Post
                        Thank you a lot in advance and keep up your great work
                        Thanks!
                        Advanced Turn Based Tile Toolkit (Marketplace - Support)

                        Dungeon Crawler Toolkit (Marketplace - Support)

                        Discord

                        Comment


                          Originally posted by Monokkel View Post

                          Hi RTE, how difficult this is to achieve depends a lot on your desired end result here. The GridUnits array only supports one unit on each tile by default, but you can work around it in various ways depending on your game. Could you explain a bit more about the purpose of this in your game? Are units to be "grouped" on a tile, which can then be moved as a single unit? Should they all be selectable individually once they are all on the same tile? If so, how are you imagining the UI and input would be to convey this to the player and allow him to select one of the units? Be as specific as you can on these things and I will think up a recommendation.



                          !
                          Hi Monokkel,

                          This is going to be a digital version of my published board game. Each unit here is actually a different player. Players can share spaces in the game. Players will always have only one unit / character. So, yeah they are all selected individually.

                          I do have an AI controlled unit which is an enemy that will be several characters that are grouped together as one unit. They need to be taking up 3 spaces in a row standing shoulder to shoulder and will move along the tiles together.

                          I appreciate your help!

                          Comment


                            Originally posted by RTE1984 View Post

                            Hi Monokkel,

                            This is going to be a digital version of my published board game. Each unit here is actually a different player. Players can share spaces in the game. Players will always have only one unit / character. So, yeah they are all selected individually.

                            I do have an AI controlled unit which is an enemy that will be several characters that are grouped together as one unit. They need to be taking up 3 spaces in a row standing shoulder to shoulder and will move along the tiles together.

                            I appreciate your help!
                            Ok, that might make things a bit simpler. If you only have one unit you might not have to click it to select it, since I assume it will automatically be selected on your round. The best approach will still depend on how you are expected to interact with units on the board, though. Can the units affect the unit of other players in some way, so that they would have to be able to target them? Do you have a PDF of the rules of your game or something? That would be helpful.
                            Advanced Turn Based Tile Toolkit (Marketplace - Support)

                            Dungeon Crawler Toolkit (Marketplace - Support)

                            Discord

                            Comment


                              Originally posted by Monokkel View Post

                              Ok, that might make things a bit simpler. If you only have one unit you might not have to click it to select it, since I assume it will automatically be selected on your round. The best approach will still depend on how you are expected to interact with units on the board, though. Can the units affect the unit of other players in some way, so that they would have to be able to target them? Do you have a PDF of the rules of your game or something? That would be helpful.
                              Yeah, you won't have to click to select your unit / character. Players do not target each other in a direct way, meaning they do not attack each other. There will be a card system that can affect other players but none of them involve attacking. I can send you the PDF rule book if you think it would help. It will definitely give you insight into future questions I'll probably have, haha.

                              Comment


                                Hi again

                                so I have four hopefully simple questions:

                                1.
                                I want to have the mechanic of two clicks for ability move (or if it´s easier for more/all Abilities [Ability base]) for mouse input. Equal to what is already implemented for touch input. I already tried to skip some branches for the normal mouse input to directly point to the touch outgoing of the branches but with no success. The pawn is walking in strange directions then

                                2.
                                is there a wait function implemented. That will set the initiative to a high value and pospone the units turn to the very end? If not where to start best?

                                3.
                                What is the best way for flying units or where to start? I am after the heroes of might an magic thing of flying not that xcom complex system. So that the unit can fyl over obstacles but not land on them. But I am open for a solution like invisible tiles above obstacles which can only be "walked" by units with a "fly" tag for example, or working around that with maximum hight accessable tiles for flying units

                                4.
                                Are big units still not supported for hex grids?

                                By the way: The more I digging in the project the more I see what you have already done and taken care of. Really incredible Do you accept any kind of donations? as I think that is more worthy then the ~42€ I have paid.

                                Big thanks in advance from germany to sweden
                                Last edited by Infest1908; 06-12-2020, 04:03 AM.

                                Comment

                                Working...
                                X