Announcement

Collapse
No announcement yet.

[SUPPORT] Advanced Turn Based Tile Toolkit

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

    [MENTION=250146]SpineRazor[/MENTION]: When you use the SetActorRotation node with target set to self you are attempting to rotate the actor whose event graph you have placed it in. If you use it as you have pictured in the player controller you will attempt to rotate the player controller, which does not really make sense. You must either get a reference to the unit you are trying to rotate and plug it into where it now says "self" or you must use the node within the unit blueprint itself. For example inside of the End Movement and Update Arrays comment box in the Event Graph of Unit.

    [MENTION=49487]Mewbits[/MENTION]: I'm not exactly sure what you mean when you say that movement cost is set to 0. Do you mean the move variable of unit, perhaps? Move cost should always be higher than 0 if your unit is moving at all. Do you mean when the unit is attacking an adjacent unit?
    The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

    Comment


      What I mean is, I'm printing the movement cost and usually it tells me the correct cost, but sometimes is prints 0 when the unit has moved. When the unit is ranged it will do double damage when attacking without moving. This causes the unit to sometimes get double damage despite having moved which should not happen.

      Click image for larger version

Name:	movementcost.JPG
Views:	1
Size:	77.2 KB
ID:	1126908

      Comment


        Originally posted by Mewbits View Post
        What I mean is, I'm printing the movement cost and usually it tells me the correct cost, but sometimes is prints 0 when the unit has moved. When the unit is ranged it will do double damage when attacking without moving. This causes the unit to sometimes get double damage despite having moved which should not happen.
        Ok, I see. It might be because the CanMoveToArray has been cleared between moving and checking, in which case it would always return 0. Not exactly sure where that would be in this case, though. If all you want to do is having double damage when you have not moved wouldn't it be simpler to check whether current move >= max move and deal double damage if it is?
        The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

        Comment


          Hey Monokkel,

          You mentioned needing some ladder climbing animations - unfortunately my expertise is more in modeling/texturing/concept art, basically the static stuff. I have animation experience but it's definitely not my specialty. I scoured the marketplace and the best I could find is this https://www.unrealengine.com/marketp...g-system-basic

          It looks like it has some ladder climbing animations and some ladder systems set up. Unfortunately it's quite pricey! I was actually really surprised at the lack of resources for animations, you'd think a climbing animation would be something many people would request!

          And speaking of the new update, I think it's fantastic that you are reviewing your blueprints and refactoring/cleaning everything up, and I just wanted to say please take your time! The multicell units and definitely the multiplayer setup I'm sure is a large and involved process. Quality over speed! Anyways good luck with it, and I hope you are able to see it through to the end! Also, if it becomes quite a large amount of work, I would even suggest upping the price on the ATBTT, I think even 59.99 is plenty reasonable, if that would help you be able to continue to work on it.

          Comment


            Originally posted by jparker4 View Post
            Hey Monokkel,

            You mentioned needing some ladder climbing animations - unfortunately my expertise is more in modeling/texturing/concept art, basically the static stuff. I have animation experience but it's definitely not my specialty. I scoured the marketplace and the best I could find is this https://www.unrealengine.com/marketp...g-system-basic

            It looks like it has some ladder climbing animations and some ladder systems set up. Unfortunately it's quite pricey! I was actually really surprised at the lack of resources for animations, you'd think a climbing animation would be something many people would request!
            Thanks for searching, but the problem is not really finding a climbing animation in and of itself. To be able to include the animation in the toolkit the animation must have a very permissive license that allows for resale. This is the case for the third part assets I use in the toolkit, which are all licensed under creative commons zero. It is a bit annoying not being able to add this feature because of lacking skills in animating, because I'm confident I could code the underlying logic fairly quickly. I'm considering paying someone to make such an animation in the future, but I'll prioritize making features that I can do on my own first.

            Originally posted by jparker4 View Post
            And speaking of the new update, I think it's fantastic that you are reviewing your blueprints and refactoring/cleaning everything up, and I just wanted to say please take your time! The multicell units and definitely the multiplayer setup I'm sure is a large and involved process. Quality over speed! Anyways good luck with it, and I hope you are able to see it through to the end! Also, if it becomes quite a large amount of work, I would even suggest upping the price on the ATBTT, I think even 59.99 is plenty reasonable, if that would help you be able to continue to work on it.
            Not to worry, I'm a bit of a perfectionist when it comes to this sort of thing, so I'm not going to rush it. I'm working on the toolkit almost daily, but since I'm going through every bit of code I've made and making improvements wherever I see the possibility this will certainly take some time. It is a great opportunity to do this since adding networked multiplayer requires modifying many parts of the toolkit anyway. I'm actually having quite a bit of fun reorganizing and cleaning up. If only I could have the same enthusiasm for organization and cleaning irl :P

            Regarding increasing the price, it is something I'm considering doing. The toolkit is certainly significantly better and has tons of features compared to when it was first released. However, there is no guarantee that increasing price will increase revenue, as it might scare off people who would otherwise have bought the toolkit. If everyone considering purchasing could fully understand how much time it takes to make something like this, and by extension how much developing time they can cut down by using it, upping the price a bit should not cause a large drop in sales. This is something that is difficult to convey by screenshots and description alone, however, especially for novice game developers. It is also difficult to know what proportion of purchasers are developers who are serious about developing a commercial games (who would be willing to pay a lot. Just multiply hours saved by hourly wage and you would get a very large sum) and people toying around in Unreal Engine for hobby projects or buying the toolkit to learn about blueprints (who would be willing to pay a lot less, understandably).
            The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

            Comment


              Originally posted by Monokkel View Post
              Ok, I see. It might be because the CanMoveToArray has been cleared between moving and checking, in which case it would always return 0. Not exactly sure where that would be in this case, though. If all you want to do is having double damage when you have not moved wouldn't it be simpler to check whether current move >= max move and deal double damage if it is?
              Yeah, that would totally work as well. Unfortunately, the cost is being cleared before it even sets the current move... and I can't seem to find where or when.

              And it only seems to be happening with AI units. Might possibly have to do with the fact that we didn't switch the AI over to 1.7 because it made our game unplayable for some unknown reason. So the AI units are using 1.6 logic and the player units are using 1.7 logic... And if that's the problem, I might as well wait for the next update to fix this glitch (work on other things), because the game will pretty much need to be rewritten anyways, or adapted rather. For instance, some of 1.7 couldn't seamlessly cross over because Unit_Parent was changed to simply Unit, etc. and I chose to stick with the previous naming conventions, but I may switch over in the next update.
              Last edited by Mewbits; 04-29-2017, 12:26 AM.

              Comment


                Originally posted by Mewbits View Post
                Yeah, that would totally work as well. Unfortunately, the cost is being cleared before it even sets the current move... and I can't seem to find where or when.

                And it only seems to be happening with AI units. Might possibly have to do with the fact that we didn't switch the AI over to 1.7 because it made our game unplayable for some unknown reason. So the AI units are using 1.6 logic and the player units are using 1.7 logic... And if that's the problem, I might as well wait for the next update to fix this glitch (work on other things), because the game will pretty much need to be rewritten anyways, or adapted rather. For instance, some of 1.7 couldn't seamlessly cross over because Unit_Parent was changed to simply Unit, etc. and I chose to stick with the previous naming conventions, but I may switch over in the next update.
                Hmm, ok. It is a bit hard for me to know the reason for it resetting when you are using a toolkit that is a mix between several versions. But with my suggestion you should not even have to worry about movement cost. As long as the AI units actually reduce their move points when moving, that is. Then you can just check if the move score is at its max value; if not that means the unit has moved. If this is not working because the AI's move value is not being reduced for some reason, make sure to add this in the AI controller before the unit is instructed to start moving.

                As for waiting for the next update, toy are aware that this will take a while, so you would need to be pretty patient in that case. I am also changing the names of a lot more variables and blueprints this time around. I'm confident you can solve the problems you are having. Worst case you can add a new boolean variable that you set to false when a unit is activated and true when it moves, and then you simply check this to see if you should do extra damage.
                The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                Comment


                  Originally posted by Monokkel View Post
                  Hmm, ok. It is a bit hard for me to know the reason for it resetting when you are using a toolkit that is a mix between several versions. But with my suggestion you should not even have to worry about movement cost. As long as the AI units actually reduce their move points when moving, that is. Then you can just check if the move score is at its max value; if not that means the unit has moved. If this is not working because the AI's move value is not being reduced for some reason, make sure to add this in the AI controller before the unit is instructed to start moving.

                  As for waiting for the next update, toy are aware that this will take a while, so you would need to be pretty patient in that case. I am also changing the names of a lot more variables and blueprints this time around. I'm confident you can solve the problems you are having. Worst case you can add a new boolean variable that you set to false when a unit is activated and true when it moves, and then you simply check this to see if you should do extra damage.
                  Adding a Boolean fixed the issue. Thank you.

                  Comment


                    Hi Monokkel, i have developed a turnbased game in the ingame editor of panzer corps, a ww2 hex tbs. It became better then panzer corps, in every aspect: https://www.designmodproject.de/foru...-corps-endsieg
                    Naturally i dont own the rights for that old engine, so i want to recreate my game in the UE4. (my native language is german, so sorry for my engl.)

                    Your toolkit looks very interesting, but can it handle air units on the same tile as ground units ? I really need that otherwise its not possible to bomb ground targets in the same hex.

                    Does it offer a functionality to implent "entrenchement" ? I mean every turn a unit, that is capable of entrenchement, doesnt move and holds the hex, it should get a bonus to defense, like in panzer corps. (different bonuses in wood, hills, town and for higher exp.)

                    How does the toolkit handle battleexperience for units and i want to implent my unit placing system that i invented. Its partially random but in an intelligent way, so every new try on an already known map, offers surprises.

                    Another point is the ai. I am generally very dissappointed of nowadays ais. (Especially Civilization VI suckz in that regard. On the one hand ai scientists talk, as if real ai will soon be created, and on the other hand ai´s in games are no challenge, if they dont cheat massively. I wonder when will we see those real ais in games like civ ?) Building a good defence is easy, but I would need an ai that is good in attacking also. Ideally with groups of units. (pincermanouvers with tanks for example) Another imp. point: The artillery should never go too close to the enemy for example.

                    Future Plans: As a big fan of Master of Orion 2 i want to create a REAL sequel, with tbs fights. Same to Jagged alliance 2. Would you say, that your toolkit is up for the challenge ?
                    Finally: Sorry if my questions might sound naive, but i am new with game devel. - just modded games and worked with ps, html, vba and sql. (years ago exc. ps and html) But i make progress in UE4, every day and i have lots of time.
                    Last edited by Metalfan66; 05-01-2017, 06:00 AM.

                    Comment


                      Originally posted by Mewbits View Post
                      Adding a Boolean fixed the issue. Thank you.
                      Great! >Though it is a bit of a workaround, but for your purposes I think it is a pretty good solution. By creating a dedicated variable you ensure that you have full control of its value.

                      Originally posted by Metalfan66 View Post
                      Hi Monokkel, i have developed a turnbased game in the ingame editor of panzer corps, a ww2 hex tbs. It became better then panzer corps, in every aspect: https://www.designmodproject.de/foru...-corps-endsieg
                      Naturally i dont own the rights for that old engine, so i want to recreate my game in the UE4. (my native language is german, so sorry for my engl.)
                      Hi there! I took a look at the forum page about your mod. Looks like a very ambitious project! Have you completed the mod already and now want to remake it, or are you at the planning stages?

                      Originally posted by Metalfan66 View Post
                      Your toolkit looks very interesting, but can it handle air units on the same tile as ground units ? I really need that otherwise its not possible to bomb ground targets in the same hex.
                      Not by default, no. ATBTT uses an array to determine what units are positioned at what tile, which only holds one unit per array index. However you have full access to the source code and can add this yourself. I do not know the mechanics of Panzer Corp, but if there can only ever be a maximum of two units on one tile (one flying and one on the ground), then making another array for flying units would probably be the easiest. If you want the possibility of stacking an arbitrary number of units on one tile, then a nested array with each array index containing an array of units would be the way to go. Note that making this change would require you to modify many other parts of the toolkit, such as scripting which unit is selected when clicking a tile with multiple units etc.

                      Originally posted by Metalfan66 View Post
                      Does it offer a functionality to implent "entrenchement" ? I mean every turn a unit, that is capable of entrenchement, doesnt move and holds the hex, it should get a bonus to defense, like in panzer corps. (different bonuses in wood, hills, town and for higher exp.)
                      Again not something that is included by default (I try to design the toolkit as a blank slate where you can add your own features rather than having lots of game specific features cluttering up the blueprints), but not something that would be difficult to add. At the end of a unit’s turn you could check how many unused movement points it has, and if it does you could increase its defense. Defense is a new attribute you would also need to add and implement yourself.

                      Originally posted by Metalfan66 View Post
                      How does the toolkit handle battleexperience for units and i want to implent my unit placing system that i invented. Its partially random but in an intelligent way, so every new try on an already known map, offers suprises.
                      If by battle experience you mean units improving their stats and abilities over the course of the game, this is again not something that I have added to the toolkit; again it is too game specific for my goals. There are lots of examples of people creating systems for experience/leveling up if you search the UE4 forums, though, and many of these could work for ATBTT. The general idea is just to increase some experience variable when a condition is met (killing an enemy) and increasing various stats when the experience variable has reached a certain threshold (which could be determined by a formula or a data table). For random unit placing you can use the ATBTT’s Spawn Unit function along with some semi-random formula for picking a tile to spawn (there are many ways to do this).

                      Originally posted by Metalfan66 View Post
                      Another point is the ai. I am generally very dissappointed of nowadays ais. (Especially Civilization VI suckz in that regard. On the one hand ai scientists talk, as if real ai will soon be created, and on the other hand ai´s in games are no challenge, if they dont cheat massively. I wonder when will we see those real ais in games like civ ?) Building a good defence is easy, but I would need an ai that is good in attacking also. Ideally with groups of units. (pincermanouvers with tanks for example) Another imp. point: The artillery should never go too close to the enemy for example.
                      There is good reason AI is often a weak point of TBS games, and that is because it is actually very difficult to do well. I have included a game example in ATBTT that includes fairly complex AI blueprints for determining the best course of action, and it is some of the most challenging work I’ve done. I’m pretty happy with it and it works well, but it is still not “true” AI, but rather a complex state machine. How difficult something is to script depends on a lot of factors. Moment to moment decisions where a unit only needs to use information of the game’s present state is the easiest (and the only sort of AI I have made so far). Your artillery example is an example of this. It is easy enough to add a check when the artillery unit decides its move so that it does not move to tiles adjacent to units. Pincer movements are a lot more difficult to implement, since you need to have each unit determine not just the possible actions it can do, but also all allies. Planning complex strategies involving multiple units over multiple turns again makes this exponentially more difficult. Don’t get me wrong, this sort of stuff can be done, and can also be a lot of fun to program, but it requires a ton of work to do well. I’m sure you’ll be more sympathetic of TBS developers once you’ve tried your hand at it.
                      There is hope that machine learning will be used for game AI in the future (my research group has just used this for determining the age of research participants from their MR-images at my day job), but if you want to go that route it is a whole new, complex field to learn.

                      Originally posted by Metalfan66 View Post
                      Future Plans: As a big fan of Master of Orion 2 i want to create a REAL sequel, with tbs fights. Same to Jagged alliance 2. Would you say, that your toolkit is up for the challenge ?
                      I’m embarrassed to say that I have not played either game, though I know they are considered to be classics. You would have to be more specific about what features you suspect might be difficult to implement in ATBTT.

                      Originally posted by Metalfan66 View Post
                      Finally: Sorry if my questions might sound naive, but i am new with game devel. - just modded games and worked with ps, html, vba and sql. (years ago exc. ps and html) But i make progress in UE4, every day and i have lots of time.
                      Best of luck learning UE4! You should try to become very confident with UE4 before attempting to recreate your mod with ATBTT. I would recommend working gradually towards your goal by making several small, simple games first that teach you various aspects of the engine before trying to convert your mod.
                      The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                      Comment


                        Originally posted by Monokkel View Post
                        [MENTION=250146]SpineRazor[/MENTION]: When you use the SetActorRotation node with target set to self you are attempting to rotate the actor whose event graph you have placed it in. If you use it as you have pictured in the player controller you will attempt to rotate the player controller, which does not really make sense. You must either get a reference to the unit you are trying to rotate and plug it into where it now says "self" or you must use the node within the unit blueprint itself. For example inside of the End Movement and Update Arrays comment box in the Event Graph of Unit
                        Monokkel, I have been messing with this off and on since I posted and cannot get the correct result. Either the player always rotates to face the same direction at the end of the turn or the camera rotates to a different view at the start of the turn. All I really want to happen is at the end of the player units turn, if there are no enemies within range, I would like the player model to rotate to face the red tile that you click on that completes your turn. :-/

                        Comment


                          Originally posted by SpineRazor View Post
                          Monokkel, I have been messing with this off and on since I posted and cannot get the correct result. Either the player always rotates to face the same direction at the end of the turn or the camera rotates to a different view at the start of the turn. All I really want to happen is at the end of the player units turn, if there are no enemies within range, I would like the player model to rotate to face the red tile that you click on that completes your turn. :-/
                          Ok, I'll show you what you need to do. I'm sure you've made some small mistake which will hopefully become clear now. You want to rotate the unit when it has ended its move and clicks a an empty tile. By default this ends the unit's turn, so you want to have it rotate before the turn ends. The logic determining if the unit's turn should end when a tile is clicked is held in ATBTT_PlayerController, so that is the simplest place to add the rotation code (though calling a custom "rotate unit" function in the unit blueprint might be more "correct"). I've added these few nodes to the event grah of the player controller, in the Initialize Movement - Step 1 comment box right before End Unit Turn is called. Here they are:

                          Click image for larger version

Name:	HzlM2lA.png
Views:	1
Size:	177.6 KB
ID:	1127150

                          I apologize that it does not really make sense that End Turn is called within a comment box saying initialize movement, which is not really intuitive. This is one of the many things I'm cleaning up in the big refactoring I'm doing.

                          Let me know if it works like you want it to.
                          The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                          Comment


                            Hey Monokkel. Have you played with the 4.16 preview at all? I've been working in it for a few days and I haven't been able to trigger the bug where all blueprint actors in a map lose their non default values. Have you run into that issue at all on 4.16?

                            Comment


                              Originally posted by Selentic View Post
                              Hey Monokkel. Have you played with the 4.16 preview at all? I've been working in it for a few days and I haven't been able to trigger the bug where all blueprint actors in a map lose their non default values. Have you run into that issue at all on 4.16?
                              Yeah, most of the work I'm currently doing is on the 4.16 preview. I've seen the bug many times on my end, I'm afraid. I believe it wasn't marked as resolved in the Unreal issue tracker either since Epic was not able to replicate the issue. Still a good sign that you are not seeing it, though.
                              The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                              Comment


                                Originally posted by Monokkel View Post
                                Yeah, most of the work I'm currently doing is on the 4.16 preview. I've seen the bug many times on my end, I'm afraid. I believe it wasn't marked as resolved in the Unreal issue tracker either since Epic was not able to replicate the issue. Still a good sign that you are not seeing it, though.
                                I probably just got lucky, that's disappointing to hear. I was really hoping they finally nailed it.

                                Comment

                                Working...
                                X