Announcement

Collapse
No announcement yet.

[SUPPORT] Advanced Turn Based Tile Toolkit

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

    Many of the arrays in the toolkit are essentially faked 2d-arrays, but I assume you're aware of this. Are you suggesting a macro for converting two 2d-indexes into a 1d index? Something like taking (X Index MOD GridSizeX + Y Index / GridSizeX)? I will actually be including a function for this in the next update. Or are you thinking of something else?
    The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

    Comment


      Actually yes that is exactly what I have though it is type cast as I have not looked into how to make it otherwise. However if you already have something it would not surprise me and I would guess what you have is much better than the simple macro I have.

      Comment


        Hey,
        How difficult would it be to make several AI factions in one game?
        With their own economy and agenda?
        E.g. AI 1 is at war with AI2 and AI3 is at war with the player

        Comment


          Hi Monokkel, thanks for the speedy response to my questions. I think the issue here is that I'm working off some tutorials that reference older versions of UE4. A lot of the stuff I've watched/read has been rendered outdated, and I noticed in more than one comment section people pulling their hair out in frustration attempting to find where this or that feature went, or why it's not working as it did in the video/article. I'm a complete newb in all of this, and the last several updates to Unreal have come without updated tutorials so it's a steep learning curve. Anyway, I'll keep poking around and see if I can figure out where I'm going wrong. Thanks again!

          Comment


            @Monokkel: I have gone back and started to rewatch tutorial 5. Based on the conversation we have had here and the better understand I have watching it now I think I see a better way to handle this. I am still putting all the pieces together. I think the biggest issue I am facing is that I have watched and done a number of the Unreal Tutorials and what I am finding is that things that I think are good ideas based on how I have done them with other test projects do not fit with how your tool set works. While there is an extremely high level of control here I think it also causes extra work to fit in the frame work. As an example I need to know exactly which tile an actors location is on the grid. I keep digging into the functions to see if there are things that will help speed things up. Just so you are aware I am not trying to say anything bad about your tool kit in fact I love it still. It is way ahead of anything I would even know how to do at this point. I just have to keep digging and figure out how to work within the frame work better.

            On a side note I my trigger box idea while I have it working 90% I found a bug. If the actor paths across the trigger box then it will open the next area rather than when the actor stops. This is exactly a case in point where I just need to find the right function to call at the end of the actors movement to check the tile and see if that tile is on an edge. I have been looking into creating a 4 element array on each edge that holds the index of the platforms edge tiles and then I can check if the actor is located in one of those and activate the platform next it it correctly. I think by doing this I will also gain the ability to directly effect the edge array for a platform and set the correct values that way.

            I will keep you posted as I work on this. I am very happy with the progress I am making now as I am starting to get a better understanding of both unreal and the tool kit.

            Comment


              Originally posted by Anzak View Post
              I think the biggest issue I am facing is that I have watched and done a number of the Unreal Tutorials and what I am finding is that things that I think are good ideas based on how I have done them with other test projects do not fit with how your tool set works.
              The toolkit is definitely not an 'end all be all' solution for any style of game, but more so a helper to get you started on a grid based game. The great thing to remember is that you have full control to change or override anything you want within custom functions, and this toolkit gives you the start/examples you need.

              Originally posted by Anzak View Post
              While there is an extremely high level of control here I think it also causes extra work to fit in the frame work. As an example I need to know exactly which tile an actors location is on the grid. I keep digging into the functions to see if there are things that will help speed things up.
              There is quite a bit to catch up on as far as macros and functions go; but there are many helpers that can do what you are looking to accomplish already built in, it will just take a bit of time to get accustomed to it. For your example, there are 3 ways you can located a unit on the grid depending on what you can input, what is need as a return value, and what you are going to do with that information. To get the location on the grid based on index you can use the 'Index to Vector' macro or from a transform vector 'Vector to Index' macro from the Grid Manager BP. If you need to know which Tile Index or Faction the Unit/Pawn is currently on, you can reference the Grid Managers 'Pawn Actor Array'.

              Stick with it! It took me a few weeks to get an almost full grasp of what is all in the toolkit and how it can be used to customize a game. All I can say is that you will be glad you looked through it, there is a lot to learn and absorb.

              Comment


                Originally posted by LDodds View Post
                Hey,
                How difficult would it be to make several AI factions in one game?
                With their own economy and agenda?
                E.g. AI 1 is at war with AI2 and AI3 is at war with the player
                In short: Intermediate/Advanced.

                Intermediate: You will need to make some adjustments to how the Grid Manager handles Factions to accept your new ones, or build some overrides for Pathfinding/Attack. (If you add all factions to 'Enum Factions')
                Advanced: Create and handle all of the Factions through a custom 'AI Player Controller', setup a lot of rules through your custom 'Game Mode', add a Data List for Factions Names and what 'Status' they are in with each individual Faction. Etc

                Comment


                  @isthisbad: Thanks I am learning a lot right now I am sure there are better ways to do what I am doing but I think it will come over time. In fact I am thinking that I might be able to move back to my idea of spawning the rooms as they are found and then setting the edge array to make them walkable. I have to do more looking into this but I need to get my function for handling setting the edge array as needed functional first.

                  Comment


                    Originally posted by Anzak View Post
                    Actually yes that is exactly what I have though it is type cast as I have not looked into how to make it otherwise. However if you already have something it would not surprise me and I would guess what you have is much better than the simple macro I have.
                    I've simply made it as a pure function in BP_GridManager, but there are of course many ways to do this. I think it makes sense to contain it in BP_GridManager as it uses the gridsize variables.

                    Originally posted by LDodds View Post
                    Hey,
                    How difficult would it be to make several AI factions in one game?
                    With their own economy and agenda?
                    E.g. AI 1 is at war with AI2 and AI3 is at war with the player
                    Somewhat difficult, but not terribly so. The changes will mainly have to be made to the Pathfinding and Find Tiles In Range functions for identifying potential targets, and in ATBTT_PlayerController for deciding what to do when a tile containing a particular faction is clicked. I would recommend waiting until my next update if you want to implement this, as I've made some changes that should make this easier.

                    Originally posted by MicahM View Post
                    Hi Monokkel, thanks for the speedy response to my questions. I think the issue here is that I'm working off some tutorials that reference older versions of UE4. A lot of the stuff I've watched/read has been rendered outdated, and I noticed in more than one comment section people pulling their hair out in frustration attempting to find where this or that feature went, or why it's not working as it did in the video/article. I'm a complete newb in all of this, and the last several updates to Unreal have come without updated tutorials so it's a steep learning curve. Anyway, I'll keep poking around and see if I can figure out where I'm going wrong. Thanks again!
                    No problem! I'd post an example blueprint to you if I wasn't abroad. It kind of sucks that tutorials get outdated when updates are made, but it is quite inevitable. My next update will make several major revisions to the toolkit, which will make some parts of my tutorials outdated. I'll try to combat this by adding several new annotations to the videos.

                    Originally posted by Anzak View Post
                    @Monokkel: I have gone back and started to rewatch tutorial 5. Based on the conversation we have had here and the better understand I have watching it now I think I see a better way to handle this. I am still putting all the pieces together. I think the biggest issue I am facing is that I have watched and done a number of the Unreal Tutorials and what I am finding is that things that I think are good ideas based on how I have done them with other test projects do not fit with how your tool set works. While there is an extremely high level of control here I think it also causes extra work to fit in the frame work. As an example I need to know exactly which tile an actors location is on the grid. I keep digging into the functions to see if there are things that will help speed things up. Just so you are aware I am not trying to say anything bad about your tool kit in fact I love it still. It is way ahead of anything I would even know how to do at this point. I just have to keep digging and figure out how to work within the frame work better.

                    On a side note I my trigger box idea while I have it working 90% I found a bug. If the actor paths across the trigger box then it will open the next area rather than when the actor stops. This is exactly a case in point where I just need to find the right function to call at the end of the actors movement to check the tile and see if that tile is on an edge. I have been looking into creating a 4 element array on each edge that holds the index of the platforms edge tiles and then I can check if the actor is located in one of those and activate the platform next it it correctly. I think by doing this I will also gain the ability to directly effect the edge array for a platform and set the correct values that way.

                    I will keep you posted as I work on this. I am very happy with the progress I am making now as I am starting to get a better understanding of both unreal and the tool kit.
                    Glad to hear you're getting more confident with the toolkit and UE4 in general. As you keep getting better you're bound to find several things in the toolkit that you feel you could improve. There are a few reasons for this. Firstly I'm designing the toolkit to be a general framework for several kinds of TBS games, so for more specific genres there will often be more straightforward ways to achieve things then my solutions, which are forced to take multiple kinds of games into account. Efficiency and speed is another big reason for many choices which might not seem to make that much sense until you measure the performance impact of doing things differently. Lastly and most obviously there are many things that could simply be done better, and I'm encouraging any users who find superior ways of doing things to let me know, as I'm always striving to improve the toolkit. I'm looking forward to hearing what ideas you have for improvements.

                    By the way, if you want to know the tile an actor's location is on the grid, there are several ways of doing this. Firstly you can of course simply get the index variable of the actor and get that index from the VectorField Array. This does not work while the unit is moving, though, as the index is set at the end of movement. To more generally get the grid index of a particular location you can use the Vector To Index function in BP_GridManager to convert any location to the correct index.
                    The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                    Comment


                      @Monokkel: Thanks I have found those functions. I am trying to figure out when the best time to call them is. I found if I called it at end movement and just printed out the value as a test that end movement gets called repeatedly. I don't want to call it on end turn because if you look at how the D&D Board games work there are phases to the turns knowing this means I know I have a lot of rework do to in how the pawn works in terms of what it can do in each phase. I am trying to avoid too much rework I am thinking I will more than likely create events for each of the phases and then start working on linking them in to call in the right order so I have the hooks to use later.

                      Comment


                        @Monokkel: Thanks for the info
                        When are you thinking the next big update will be?

                        Comment


                          Originally posted by LDodds View Post
                          @Monokkel: Thanks for the info
                          When are you thinking the next big update will be?
                          Curious as well.

                          Just bought the advanced turn based tile toolkit BTW.

                          Look forward to the next big update

                          Comment


                            Oh I did think of something while I was driving today. I noticed that all your macros are in the different classes. A macro can only run in the class that created it or it's child. However you can create a macro lib based off the object class for the parent which makes every class a child of it. Then you can make macros that can be used anywhere in your project. I did this for my array manager that I am using as well as I created a new ++ and -- because while + and - do not have exec pins the ++ and -- do and they do not really need them. And actually that is how I found out about the macro lib being a child of the object class because I was looking at -- trying to figure out why it had exec pins. It turns out the -- and ++ that come built in are actually part of utility macro lib which is a child of the object class. Anyway I found it very interesting and thought I would share with anyone who might not have figure this out yet.

                            Comment


                              Originally posted by Anzak View Post
                              @Monokkel: Thanks I have found those functions. I am trying to figure out when the best time to call them is. I found if I called it at end movement and just printed out the value as a test that end movement gets called repeatedly. I don't want to call it on end turn because if you look at how the D&D Board games work there are phases to the turns knowing this means I know I have a lot of rework do to in how the pawn works in terms of what it can do in each phase. I am trying to avoid too much rework I am thinking I will more than likely create events for each of the phases and then start working on linking them in to call in the right order so I have the hooks to use later.
                              Ok, it's concerning that it's printing multiple times. That shouldn't happen. It's annoying that I can't check it out until I'm back home. I DM D&D frequently and I want to experiment with making a D&D-style turn structure some time in the future. Creating events for each of the phases makes sense. Let me know if you have any problems with implementation.

                              Originally posted by LDodds View Post
                              @Monokkel: Thanks for the info
                              When are you thinking the next big update will be?
                              Originally posted by HeadClot View Post
                              Curious as well.

                              Just bought the advanced turn based tile toolkit BTW.

                              Look forward to the next big update
                              Good to hear you finally got the kit, HeadClot You've been following the toolkit for a long time, so I hope it will live up to your expectations. The update has taken a lot longer than I anticipated. This is partially because I've had a lot to do at work and that I have been travelling a lot, but it's also because I've done a lot of experimentation with the toolkit, changing almost every aspect of the base toolkit at some point, though I've only kept some of these changes. I think I could probably finish the update in a week if I could work on it full time, but I'm lucky if I can get an hour per day these days, which means it will probably still be a few weeks before it's done.

                              Edit:
                              Originally posted by Anzak View Post
                              Oh I did think of something while I was driving today. I noticed that all your macros are in the different classes. A macro can only run in the class that created it or it's child. However you can create a macro lib based off the object class for the parent which makes every class a child of it. Then you can make macros that can be used anywhere in your project. I did this for my array manager that I am using as well as I created a new ++ and -- because while + and - do not have exec pins the ++ and -- do and they do not really need them. And actually that is how I found out about the macro lib being a child of the object class because I was looking at -- trying to figure out why it had exec pins. It turns out the -- and ++ that come built in are actually part of utility macro lib which is a child of the object class. Anyway I found it very interesting and thought I would share with anyone who might not have figure this out yet.
                              Indeed macro libraries are pretty awesome. Some of the new macros in the next update are contained within a macro library. In time I might move more of my macros to a library. Any macros in particular you would prefer if were in a library?
                              Last edited by Monokkel; 09-30-2015, 11:34 PM.
                              The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                              Comment


                                @Monokkel: Is there a function to get an array of indexes that an object cover? For example a wall that covers multiple tiles.

                                Comment

                                Working...
                                X