Announcement

Collapse
No announcement yet.

[SUPPORT] Advanced Turn Based Tile Toolkit

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

    Hey Curiosichi, sorry for the late reply. I was very busy yesterday.

    Originally posted by Curiosichi View Post
    [ATTACH=CONFIG]143629[/ATTACH]

    So I changed the code as follows and the error is resolved.

    I didn't want to change the base code and only make my changes to children BP as base class changes I plan to leave to you in future updates, but making this change did resolve the logger errors. I'd consider this a bug report but I can't create a repeatable test easily. All I did was migrate the Sci_Fi project over to root and renamed everything and then this popped up. Sorry I can't be more help with recreating the error; it did take a long time migrating the files and resetting up references so it may be hard for you to recreate.
    Not to worry, I've identified the problem and it is already fixed in the WIP update. It is caused by me using the regular Set Visibility node instead of my custom one in one instance in the player controller. It is in a part of the graph which is very rarely triggered in the unmodified toolkit, so I did not notice the error message during testing. Since the error is rare and has no effect on the game, I won't send an update to Epic just to correct this one thing, but it will be fixed in the next update.

    Originally posted by Curiosichi View Post
    Ok, I found another task I want to implement.

    I want to move movement to be like an ability. Movement is tied more into Grid manager then it is to the unit/skill however, yet with the introduction of sprint and abilities, I feel like it would be better suited to use movement as an ability and I am finding its a bit more in depth then just adding a new ability.

    I think I have an idea how to accomplish this: with Spawn Movement Tiles in Grid Manager Sci_Fi, as I see there is an array (Index Can Move to Array) and select statement that decides whether to spawn yellow or blue tiles, but what I want is to make sprinting and movement two separate skills.

    Do you have any pointers for me to accomplish this? Is automatic movement tied too deeply for me to just change in the _Sci_Fi child BP?

    Goals:

    Make movement not automatic - it's a skill to use
    Disable sprinting after movement - don't automatically show yellow tiles, leave this to logic of clicking sprint as a second ability instead of choosing to attack or use another spell

    Its been a few months since I purchased this toolkit but I am finally digging into making changes, so I appreciate the guidance as I learn both unreal and the nuances of the toolkit.
    You can do a couple of small changes that will hopefully give you your desired result. Firstly in the Skill_move blueprint in the Activate Skill comment box set the Move Range and Max Move inputs to Pathfinding to be equal to Current Move instead of [Current Move * Current Action Points]. This will prevent the yellow "sprint" tiles from showing and just find the tiles within regular move range.

    As for making movement not automatic, you want to change this in the Event Graph of ATBTT_PlayerController_SciFi in the Begin Unit Turn comment box. Here, on activation, the first skill in the unit's skill array is activated at the beginning of a unit's turn (which is the move skill for all the units in the example scene. Remove the CastToSkill and ActivateSkill nodes from here and skills will have to be manually activated by clicking the skill bar.

    Hope that gives you your desired result!
    The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

    Comment


      You know, I figured out the changing the skill bit, but I over looked the PlayerController's activation. I believe I thought the skill array was being loaded for the HUD, I don't remember seeing it cast the skill, so I had moved past that class when I was digging myself.

      Your help was spot on.

      Just to close out the feature I am implementing and finish wrapping my brain around how skills work, I noticed that after you move using the modified move skill, you are able to cast move again, though this time it displays the yellow tiles. This leads me to believe that current move is not updated properly after the move is finished and pathfinding is still able to search for extended movement. I believe if current move were just updated to zero then extended range would not be allowed, but then the issue of allowing sprint as a second ability becomes broken if the fix is placed in the Pathfinding function.

      Where would I put this type of logic, and where would I place logic to check if a skill should even be able to be cast: would that be placed in the activate skill for each skill or should I be stopping it somewhere higher in the chain?

      edit: an idea, what if in the base Skill I added a function called "Can Be Cast" - returns true by default, then each skill has to override it with checks. Or is that basically supposed to be the responsibility of the Activate Skill function? Maybe its just the name throwing me off.

      Click image for larger version

Name:	movement fix.png
Views:	1
Size:	214.2 KB
ID:	1129115

      ideally on the check if current move is greater then zero, you might display a HUD error or something, but I feel like all abilities would have some kind of validation of if they can be cast, so it may be cleaner as a stand alone function check as stated above. This method breaks sprint though because of the current move being set to zero. I can fix that, but the point of this post is understanding fundamentally where/how things are laid out.
      Last edited by Curiosichi; 06-05-2017, 11:08 AM.

      Comment


        long time no see



        really wip, still a lot left for me and my art buddy to do

        Comment


          [MENTION=422736]Curiosichi[/MENTION]: In the example game where I have made the skills, current move is actually never reduced. It is purely action point based. This explains why you are still able to use the move skill after moving once. Movement takes one action point and you have two total. You can prevent your units from activating their skills by using a check like the one you suggest. I would add this check before Parent:ActivateSkill is run, though, since you do not want to activate the skill at all if the check returns false. Also, for the move skill you will need to make sure CurrentMove is actually reduced when you move somewhere. A good place to do this is in the DecideActionForClickedTile comment box in Skill_Move, after action points are reduced. If you do this, then I think it should work as you want it. Let me know if it does not.

          [MENTION=16997]Selentic[/MENTION]: Looks fantastic! Great to see that you've made such amazing progress. Cannot wait to play some cel-shaded warfare. Let me know if you make a progress blog or something, as I'd love to follow your progress
          The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

          Comment


            Yup, aside from changing the check from owning unit to the incoming casting unit (since owning unit is set in the parent cal of the spell), everything is working as desired.


            Click image for larger version

Name:	check.png
Views:	1
Size:	113.6 KB
ID:	1129131


            Your help has been tremendous and really sets me off to create new skills with excitement. Thank you thank you!

            Comment


              [MENTION=422736]Curiosichi[/MENTION]: Glad it worked I apologize if the organization of the skill system in the example game is a bit less intuitive than the base toolkit. The features in the example maps are a bit more experimental than the rest. One of the changes I'm working on is making the skill system a part of the base toolkit and in the process I'm organizing it in a way that is more straightforward. The general logic behind the skills is mostly the same, though, so you should be able to port over any skills you make quite easily if so desired when I complete the update.
              The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

              Comment


                Originally posted by Monokkel View Post
                [MENTION=16997]Selentic[/MENTION]: Looks fantastic! Great to see that you've made such amazing progress. Cannot wait to play some cel-shaded warfare. Let me know if you make a progress blog or something, as I'd love to follow your progress


                Anything significant will end up on my artstation (or here in this thread), so you can follow me there if you want.

                I might do a blog in the future, as there's not a lot to talk about right now since all the really important game mechanics were finished months ago (make multi tile units tho plz). A lot of the work right now is just defining the style and keeping it consistent, while making sure we've got good visual clarity going. I'll let you know if I end up making one though!

                Comment


                  Originally posted by Selentic View Post


                  Anything significant will end up on my artstation (or here in this thread), so you can follow me there if you want.

                  I might do a blog in the future, as there's not a lot to talk about right now since all the really important game mechanics were finished months ago (make multi tile units tho plz). A lot of the work right now is just defining the style and keeping it consistent, while making sure we've got good visual clarity going. I'll let you know if I end up making one though!
                  Ok, great I'll check it out periodically, and feel free to post any significant progress in this thread

                  Your talent as well as that of your art buddy is apparent from your ArtStation profiles, so I'm super excited to see the finished game. Best of luck!
                  The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                  Comment


                    Hi Monokkel!

                    It's been a long time since my last post and I see that project is really flying high now with built-in multiplayer support and multi-tile units.
                    BTW, regarding UE4 Framework multiplayer system, can you give some clues on how are you doing it?

                    Because, as far as I know, GameMode Blueprint should exist only in the server and my old version of ATBTT does a big rely upon GameMode Blueprint almost everywhere (PlayerController, Grid Manager... almost every blueprint gets GameMode and use it or its properties).

                    So, since I'm really curious about it, can you tell when you will release this new version? And also: coming from an old version will it be so much terrible to get this new multiplayer function to work without starting my project from scratch with the new release of the toolkit (with the number of custom content I put in it would be quite a nightmare to start again)?

                    In addition, are you using a "Listen Server" solution or "Dedicated Server" one?

                    Thanks in advance and thanks for your precious time investment in this great project.
                    Fantasy Turn-Based Tactical Game
                    STEAM: https://store.steampowered.com/app/9...Arcane_Legacy/
                    IG: https://www.instagram.com/arcanelegacyofficial/
                    FB: https://www.facebook.com/ArcaneLegacy/
                    WEB: http://www.arcanelegacy.com

                    Comment


                      Originally posted by Wisdom-HELLy View Post
                      Hi Monokkel!

                      It's been a long time since my last post and I see that project is really flying high now with built-in multiplayer support and multi-tile units.
                      BTW, regarding UE4 Framework multiplayer system, can you give some clues on how are you doing it?

                      Because, as far as I know, GameMode Blueprint should exist only in the server and my old version of ATBTT does a big rely upon GameMode Blueprint almost everywhere (PlayerController, Grid Manager... almost every blueprint gets GameMode and use it or its properties).

                      So, since I'm really curious about it, can you tell when you will release this new version? And also: coming from an old version will it be so much terrible to get this new multiplayer function to work without starting my project from scratch with the new release of the toolkit (with the number of custom content I put in it would be quite a nightmare to start again)?

                      In addition, are you using a "Listen Server" solution or "Dedicated Server" one?

                      Thanks in advance and thanks for your precious time investment in this great project.
                      Hi Wisdom-HELLy, long time no see! You are right that the way the game mode is used is a bit awkward for networked multiplayer. Same goes for the player controller. It is possible to get around most of that by using RPCs to the server etc., but it is not ideal. Because of this, much of what is handled in the game mode has been moved to a custom blueprint for managing turn order (BP_TurnManager) and the game state. As for the player controller, everything that happens after input is registered is done in skill blueprints. There is a default skill (BP_Skill_Default) that is used if the user does not want to use the skill system, which functions like the player controller did before.

                      It is hard to know how long it will take to finish the update. A rough estimate (which might be very inaccurate) is three months (taking delays due to summer vacation into account). It will be more difficult to convert to this update from previous updates than has been the case before. I'm going through all blueprints and I'm being quite merciless when it comes to making changes anywhere I feel things can be improved, simplified or clarified. I'm not keeping anything just for the sake of having it be similar to earlier versions. That being said, the general framework is still quite similar, and I hope most games should be able to port their additions over to the new version if they put in a few days of work.
                      The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                      Comment


                        Thanks for the ETA on the feature additions! Good luck with it and the code clean up. If it is possible, do try to document how one would upgrade from your current version to the new version to make the process as easy as possible for your current customers. Thanks!

                        Comment


                          Do you have an easy way to disable the default HUD? Or manage overriding it with a custom HUD.

                          In the base toolkit, you have a HUDBlueprintRef set on Begin Play(), a get at HUDTurn Toggle() and referenced again by Non_Nativized_Functions for displaying game over.

                          To override the functions that use it without changing the base toolkit, would I need to create a copy of Event Begin Play in a child blueprint just to change the HUD generations portions of the base toolkit? That seems a bit clunky.. In the example maps, you create a reference to new UI elements in the child grid manager instead but they only overlay the base UI, which to me makes obvious sense that a custom UI goes with a custom game mode/grid manager/player controller, but I want control over the whole UI.


                          edit: blarg I wrote a huge wall of text explaining how I did this then unreal forums decided I wasn't logged in while typing into the quick reply..., but I accomplished this by basically copying parent/base toolkit code into the children custom bps. As I stated above, its clunky, I am no longer calling to the base class for begin play, kill unit, copying the Non Nativized functions file and using my pawn with skills to refrence it instead of counting on the base pawn to set that.

                          While I got it to work, it feels wrong, this is basically just copying your base classes to my custom, so my question still stands. Is there a better way to do this while retaining your base blueprints.
                          Last edited by Curiosichi; 06-07-2017, 10:15 PM.

                          Comment


                            Originally posted by Curiosichi View Post
                            Thanks for the ETA on the feature additions! Good luck with it and the code clean up. If it is possible, do try to document how one would upgrade from your current version to the new version to make the process as easy as possible for your current customers. Thanks!
                            I'll repeat that I might be completely off the mark regarding the ETA, but it is the best guess I could make. I'll have to think about the best way to log all changes. It will be tricky to list everything, but I'll note all the big structural changes at the very least.

                            Originally posted by Curiosichi View Post
                            Do you have an easy way to disable the default HUD? Or manage overriding it with a custom HUD.

                            In the base toolkit, you have a HUDBlueprintRef set on Begin Play(), a get at HUDTurn Toggle() and referenced again by Non_Nativized_Functions for displaying game over.

                            To override the functions that use it without changing the base toolkit, would I need to create a copy of Event Begin Play in a child blueprint just to change the HUD generations portions of the base toolkit? That seems a bit clunky.. In the example maps, you create a reference to new UI elements in the child grid manager instead but they only overlay the base UI, which to me makes obvious sense that a custom UI goes with a custom game mode/grid manager/player controller, but I want control over the whole UI.


                            edit: blarg I wrote a huge wall of text explaining how I did this then unreal forums decided I wasn't logged in while typing into the quick reply..., but I accomplished this by basically copying parent/base toolkit code into the children custom bps. As I stated above, its clunky, I am no longer calling to the base class for begin play, kill unit, copying the Non Nativized functions file and using my pawn with skills to refrence it instead of counting on the base pawn to set that.

                            While I got it to work, it feels wrong, this is basically just copying your base classes to my custom, so my question still stands. Is there a better way to do this while retaining your base blueprints.
                            I'm not sure there is a super clean way of overriding the HUD functionality without altering the base toolkit. Your solution is actually pretty much how I would do it if I was forced to do that myself. I'm not sure I see the point of not altering the base toolkit, though. In the next update the HUD-setup will be completely changed anyway, so keeping the old HUD-nodes intact won't wake porting your game to the new version any simpler. So unless there is not some other reason for not touching the base toolkit that I'm not seeing I would just alter it directly.
                            The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                            Comment


                              I suppose I am in the mindset the toolkit is a library and not a framework. I have this dream that I leave your toolkit in its own base folder and folder structure and when you do an update, I copy all the files from your new version into my project in the same structure and all my custom classes will not be affected or know anything changed and it compiles in one click with no other changes, only that I can add extra functionality from the parent now if I desire to in my custom child blueprints. You are starting to shatter those dreams from the sounds of it, heh.

                              Really getting into the project now with another developer and after dealing with something as simple as trying to change your base UI, if I no longer developed around the idea of not changing base toolkit functionality, things like removing the base ui calls wouldn't be a concern. At the end of the day though, my dream is I can develop content while retaining your base kit functionality, because if and when you release an update, it will become exponentially more difficult to merge your new functionality into my child classes (or modified base toolkit if I stopped with this child blueprint ideology).

                              It seems inevitable for a production game the toolkit would become no more than a basis of foundation and learning if I go down this path of over writing base classes and I only just started to learn how it all works. So... til I cut ties with the base toolkit, I am trying to hold on to modifying anything core.

                              Comment


                                [MENTION=422736]Curiosichi[/MENTION]: What you're saying is understandable and for all updates save the next one, keeping the base toolkit unmodified and working with child blueprints etc. should be possible without too much of a hassle. However, the next update is special in that I'm doing a large reorganization and refactoring. Any updates after the next one should be primarily additive rather than transformative and should be a better fit with your preferred way of working. I'm sorry if this makes things temporarily more difficult for you, but for this particular update I felt like I needed to disregard easy backwards compatibility in order to make the toolkit the best it can be.
                                The Advanced Turn Based Tile Toolkit (Marketplace page - Feedback thread)

                                Comment

                                Working...
                                X