[SUPPORT] Advanced Turn Based Tile Toolkit

Hi behappyandsm1le, I’m doing just fine and hope the same is true of you. Working with replication can sometimes be quite frustrating. Much of this comes from UE4 replication being constructed with a heavy emphasis on preventing cheating. Though this is undoubtedly sensible it puts some major roadblocks on a client’s ability to affect the state of the game.

In general, clients are only able to truly modify blueprints where they are set as the owner. This is true of the PlayerController, and in ATBTT units are owned by the players controlling them and abilities are owned by whatever player is currently interacting through them. On these owned actors you can call events on the server from the client, passing through variables as needed.

It takes a lot of getting used to, though, and both reading the documentation and a lot of trial and error is needed to fully grasp it. I used eXi’s compendium myself, but after that it was mostly trying and failing until i got it. The ActionSystem in ATBTT was created partly to make replication simpler, and you should at least watch my tutorial on this if you have not done so already. You pass anything to be displayed on the client through and action, only referencing these variables or ones you know to be unchanging and you are good to go for replication.

This only works for stuff you want to queue as actions, of course, and sending the position of the hovered tile is not such a thing. However, the hovered tile is always accessible on the server as part of the ServerHover event, so you should be able to get this if that is what you need. By default, the client passes a hovered location from the PlayerController into the active abilit, which turns it into a HoveredTile grid index in the ServerDecideWhatToShowOnHover event in BP_AbilityBase.

On a side note, any experienced game designer I’ve heard speak on the topic recommends never making a networked multiplayer game as your first game. Even if you have a solid framework, it makes everything more difficult and greatly increases the amount of considerations you need to do while programming, playtesting etc. I have a pretty good handle on replication by now, but I’m still putting off releasing a multiplayer game until I’ve released a couple of single player ones first. Making a game is a huge undertaking already, and networking adds a whole slew of extra challenges. Those challenges can be fun, of course, and everyone is different, but just something to take into consideration :slight_smile:

UE4.25 is out and it brings some exciting new features that I want to see how I can bring into ATBTT. I will send a new proper version of ATBTT to Epic in a few days, but until then from my limited testing it seems like converting a 4.24 version of the toolkit to 4.25 works without any issues.

Hi, this is great news that it is finally released.

We were asking a while back about the feature of connecting separate tile grids, and you said you would include it in the next update when 4.25 released. Is this still coming in your next update? We’re making that digital board game where 3x3 tile grids connect to each other as the players progress along the tiles.

Yep, I’m including the function I made when you asked a while ago. To be pedantic it doesn’t exactly connect “separate” grids. Rather, the grid manager is always 999*999 tiles, just with most of the tiles being empty. The new function updates tiles in a chosen square area based on the collison of meshes placed there. It should be pretty well suited for what you are describing, though :slight_smile:

A correction to what I said about converting from UE4.24 to 4.25 being unproblematic: It seems like multiplayer is not working correctly, with the TurnManager not detecting the number of players joining. I will have this fixed before I send Epic the new update.

That’s great! Any chance you will make some kind of tutorial to demonstrate how to use it once it is up?

A series of tutorials is underworks for how the toolkit sets up connections between tiles (edges), where I will cover some of this. It is pretty straightforward, though. Input a TileIndex (or location), set a range and the UpdateTilesInRange function will automatically add all tiles in that area to the grid.

JOB POSTING: (With 's permission)
Looking for someone experienced with the ATBTT toolkit for some paid work.
As a solo dev also doing freelance im looking to delegate some of my personal work to speed up game development.
The work will be focused around making some custom abilities for my turn based strategy game.

If you are interested please pm me or email me at [EMAIL=“lukedodds94@gmail.com”]lukedodds94@gmail.com
This post will be removed when the position has been filled.

I’ve sent version 2.6 of ATBTT to Epic! This update includes several bug fixes, some reorganization and a couple of minor additions. Many of the bug fixes are specific for networked multiplayer. If you’re making a networked multiplayer game I highly recommend switching to this new version. If this is not practical, let me know and I will describe the most important changes that need to be made.

v.2.6 (Being processed by Epic)

  • Option to restrain Grid Camera panning to the bounds of the grid.
  • Added the UpdateTilesInRange function, which simplifies adding new tiles and updating edges during runtime
  • Added several getters to FAction, making it simpler and cleaner to access action variables
  • Improved updating of the hover mesh and path spline on networked clients
  • Several network-related bug fixed
  • Many other small fixes and changes (see full log on Trello)

Hope you like it :slight_smile: It should hopefully be live in a couple of days.

hi

thank you very much for the new update

leo

Hello all,
i am looking to implement a system that when the round is over I use a random int to simulate dice and what ever the number is the max amount of movement each character can move. How would I go about this ?

Thanks again for your help

Hope you’ll like it :slight_smile:

Simulating dice is pretty simple. Use the GetIntegerInRange node to simulate a dice throw. The end of a turn and the start of a new is triggered by the BeginNewTurn event in BP_TurnManager. Here you would add your custom code. Loop over the InitiativeOrderActors array or use GetAllActorsOfClass(BP_Unit) and for each set their MaxMove and CurrentMove to your randomized values. This should do the trick, I belive.

Hi @

I want to be able to end the game based on a property of a Faction. I would like this variable to be increased based on passage of time. Ideally, I’d like to show this counter updated on the screen on a regular basis, say every second, and fire an event or end the game when threshold is reached.

What would you say that the relevant objects, events and modifications to accomplish this be?

Apologies if something similar has been answered before. Feel free to point me to an earlier post if there is one. My search came up empty.

Thank you for your continuing support.

Do you have any updates on when Epic is pushing the new version? I assume it isn’t up yet because the marketplace page still says 4.24 is the newest version.

Hi yucu, apologies for the late answer. I’m afraid I don’t completely understand the question, though. Could you elaborate on what you want to achieve mechanically? Is this a turn timer that ends the turn when it has reached a value? Without knowing more of exactly what you want to achieve it is difficult to make specific recommendations. It sounds like something you could do in BP_TurnManager. Have an integer variable that you increment every second, bind this integer to a text widget, check the value in the turn manager each time it is incremented and fire you end game event when it reaches a specified value. Something like that, though it depends on exactly what you want to achieve.

I have not heard from them yet. Apparently the marketplace team is pretty overwhelmed at the moment. Seems like a lot more people have begun submitting assets during Corona lockdown.

Hellow guys, Im trying to create dedicated server, and play my project with the friend, but I can’t figure out what’s wrong. I’ve already tried about 3-4 tutorials but it won’t help. here are my configs and logs. Also, i have a custom session, I’ll attach it.

The marketplace page now says it is compatible with 4.25, does that mean the update was pushed? Is the only way to find out is create a new project to see the differences?

Yep, it is out! If you are allowed to create a new ATBTT project for 4.25 through the launcher that means the update is live.

Setting up a dedicated server in C++ is not something I know anything about, I’m afraid.

Hey - I’ve been lurking for a very very long time. I purchased the toolkit back in July of 2017. I wanted to say that you have been extremely Epic in your support to everyone, so thank you. I find myself waiting to jump in as you keep improving on the content of this asset. I should probably take this “extra” time and actually start. In any case…you have a great product and even better support. Thanks again.

hi mono

in the new build i get a warning if i try to run the experimental- split animation map.

when you climb on a ladder get get this warning - Attempted to access index 0 from array ‘Actors_48_C65EEEEA4722265004E44098B2A1335D’ of length 0 in ‘/Game/AdvancedTurnBasedTileToolkit/Core/FAction.FAction’

leo