Hi , I just downloaded a new update for the 4.7.6 version of the toolkit. Could you update the change log for this update?
Strange. This isnât the 4.8 update I sent to Epic. Seems like they just reuploaded my old 4.7 version again. I canât find any changes in this version that arenât already in the changelog. Iâll notify Epic.
Yea it seems so, it just verified the toolkit once again. I just thought the update was small, so that it was over before I knew it. After update, the toolkit size is the same as before and the project version in settings is listed as v1.4. So I guess youâre right.
Ok, so the 4.8 version is up. This is not a major feature update, but makes the toolkit compatible with 4.8 and fixes a few bugs. A larger feature update is still in the works. Here is the changelog:
v1.41 (23.06.15):
- Updated the toolkit as per the âupdating to 4.8â guidelines found here. Note: some of these changes are workarounds for bugs Epic introduced in 4.8, and will be changed back when these engine bugs are fixed.
- Fixed the Create Walls on Edges function in ATBTT_GridManager. This function was not creating walls on edges correctly before.
- Modified Add Viewport Terrain to Arrays to allow for getting height information from placed tile actors.
- Changed the AI controller to appropriately account for difficult terrain when choosing a target to move towards.
Iâve just made two new tutorials for the toolkit. Itâs more of a two parter, but both can be viewed and understood separately.
The first video shows how easy it is to add new features to the toolkit. In this example I show how to set up area attacks and destructible terrain:
In the second video I show how to set up a unit that uses a skeletal mesh with a different skeleton than the default UE4 humanoid one. I also show how to create units that do not use skeletal meshes at all.
Hope you like the new tutorials!
What would be the best way to dynamically spawn units for the player. I have a menu system that allows the player to select their unit types but I cannot figure out where the best place/way to dynamically spawn the units and have them snap to the grid made by the grid manager. I can spawn them but they are not part of the tool kit. Please help, I will continue to look for the solution as well and If I can will post the solution to the forum once my pc stops being dumb.
Thank you in advance.
âEnd Quoteâ
The following is from and worked great to solve my issue. Thank you.
Hi Imonin, sorry about the silly computer. The important thing to understand about the toolkit is that everything important is happening within arrays, and all actors, such as tiles and units, mostly exist to display the current state of the grid to the player. For instance, the grid doesnât âknowâ that a unit is placed upon it, only that a certain index of the grid (corresponding to a location) is set to a certain value. So to add a unit dynamically you cannot simply spawn a unit actor, but must also add that actor to the appropriate arrays. For units that means the Pawn Actor Array (where you add a reference to the actor itself) and Pawn Array (where you add the faction of the pawn) inside BP_GridManager. This means that you must use the Set Array Element on the appropriate array on the index corresponding to the pawns desired location. You also need to add the unit to the initiative order contained within ATBTT_GameMode. I have made some utility functions that will add to
the next patch that do precisely this. This is a function contained within BP_GridManager which can be called from whichever blueprint that has a reference to the grid manager. Hereâs the function:
Image: http://i.imgur.com/OTD3074.png
and hereâs an example of how it can be called in ATBTT_PlayerController if you want to add a pawn to a tile you are currently hovering the mouse over by clicking â1â:
Image: http://i.imgur.com/SMBBO1O.png
Hope that helps!
, Nice work I really love what you have done. I am new with Unreal (since the start of the year though no time to really work with it) So I have tons of questions. Though I will jump to 3 that hit me right off the bat if they have already been answered Iâm sorry I read most of the thread but it is a bit long so if I missed something I did not mean to.
- Camera movement. From what I can tell you can only scroll in or out. The default settings on my screen I can not even see the entire movement area. I have not looked into the mouse interface much but would it make more sense to use something like a third person floating camera so players can pan and rotate so they can see all their options?
- I noticed the for tick and for each tick loops are in the grid manager. Would it not be better to put in the game mode as a global function so it can be used by all blueprints? While I know the bulk of where you would want this is in the grid manager I am just thinking if there was something on actor that might be better to spread of ticks. Maybe an effect on an object in the world.
- I noticed there were no black boards. Again just wondering if black boards would give more flexibility by place on a black board so all actors can access them. I know there are some private var that will be per actor but it seems there are plenty of global vars that could take advantage of this. Also it would be an easy way for users to keep their settings if they just import their back board after an update.
Really is a great product I canât want to really get into the nuts and bolts and learn from it. There were so many problems I was having with building my own system I thought it would be better to start with a working system and customize. I am glad I made the call. Keep up the good work.
Ok one more silly question. Why do you not take advantage of the navmesh for pathing?
Thanks, Anzak. Iâm glad youâre enjoying the toolkit. Iâll do my best to answer your questions.
You can pan the camera using WASD and rotate it using Q and E at the moment. Touch support is coming in the future, as well as some other control options. There are also a few variables in that you can easily modify to change the distance you are allowed to zoom, speed of panning and rotation etc.
Those loops arenât used for anything in the current version on the marketplace. They cannot be functions as functions have to be begun and resolved on the same tick. If you want delays you have to use macros. Therefore you have to put them in the event graph of a blueprint for them to work, and Iâve put them in BP_GridManager because all the ways Iâm currently using the tick loops experimentally use a lot of the functions from BP_GridManager. It can be set up to be called externally using a custom event. Here is a post in which I describe this: A couple of useful macros: Loops Per Tick - Blueprint - Epic Developer Community Forums
As I understand it blackboards are mostly used with behavior trees, and as Iâm not using behavior trees I havenât looked into blackboards. Can you give examples of some variables that would benefit from being placed in a blackboard instead of how itâs currently set up?
The Navmesh in UE4 isnât grid based. Additionally a lot of the navmesh stuff isnât exposed to blueprints, and I wanted full control of every aspect of pathfinding. Also, in a turn based game where only one unit is moving at a time, the additional speed of navmesh is not really needed.
Thanks! I will
The things I was thinking for the black board and maybe I have it wrong. I was thinking if you stored all the stats around a character. So for you D&D example you could store STR, CON, etc⌠As well as hp and things like that. This way I could make a black board for each actor in the game and call the value from there. When you update the version I donât have to worry about losing custom stats I just have to relink the black board. Though I could be wrong I thought that was one way you could use a black board.
I donât really see the benefit in storing stats in a blackboard instead of in the individual units. When you add new units you have to add them again when you update the toolkit. If you migrate them to a new project they will keep their stats if these are variables stored in the pawns. If you are making large, complex rpgs ore something like that, with tons of different units I think it would be better to store their stats in Excel or something similar, as discussed in this thread: Driving Gameplay with Data from Excel - Announcements - Epic Developer Community Forums
Hi , Iâm sure there will be a lot of work involved on my part in this request but I was wondering what would need modified to add extra factions. I am looking to add 2 more factions to create a 4-player game.
This is something that Iâm also interested in having. Iâm planning on making a 5-player game where each side is itâs own faction (So-to-speak)
I just did some tinkering on this front myself by extending off a similar faction-based feature that I had already added (KOed Player, so that player pawns can be revived if desired).
After a bit of work I got it sorta working, Iâm just fighting with the tiles and how theyâre displayed (The attack range tiles are now visible on the start of a unitâs turn for some reasonâŚ), and the AI now sometimes attacks a tile where a pawn was just destroyed and thus never ending its turn because itâs calling Attack but nothing ever calls Receive Damage, which in turn means Choose Next Pawn doesnât get called eitherâŚ(my guess is itâs an issue with timing somewhere, and the array is not being cleared before the new pawn starts his turnâŚ)⌠But yes, multiple factions are possible.
To get it working, you basically need to tell the appropriate places to add new Factions to the Pawn Array, and Initiative Order Array, and if they are not the Current Pawnâs faction or an Empty Faction to add them to the Pawns in Sight Array, and Reachable Pawns Array.
Took me about 3 hours to figure out, so itâs not hard to do, just a little tricky to make sure all the nodes are hooked up correctly so the game doesnât stall. I can try and take some screenshots of my somewhat spaghetti-fied nodes if you guys want, but there was a lot of little things that needed to be changed, and like I said, itâs only sorta workingâŚ
Thanks for the input, Shenku. So to TrueSkittles and AxelRantila, as you can see games with more factions is certainly possible, but it requires some tweaking. The main things that have to be changed are any functions or blueprint graphs that use the faction variable from units. This includes functions like Pathfinding and Find Tiles In Range, where units that are within ranged are marked and stored. Itâs also important for input. When the player clicks a tile the following actions is determined by checking what faction is stored in the Pawn Array index corresponding to the clicked tile. There might also have to be adjustments to the AI. If an AI pawn finds pawns from multiple factions within range, how does it decide which one to attack? None of the changes that have to be made are particularly large, but there are quite a lot of them. Iâll happily provide support to anyone attempting to add more factions, but I recommend that they are comfortable with the basic functionality of the toolkit first.
To your specific problems, Shenku. For the attack tiles being visible at the start of the turn, thatâs probably because Find Tiles In Range is called at the start of unit turn (like it usually is), but that you have not set it to âfind only pawnsâ (possibly because you have changed it to find all possible pawns since youâre not looking for a single faction). I would probably keep it at âfind only pawnsâ, but change the function to find all indexes with pawns except the ones that contain the faction of the current pawn or are empty. Your second problem with the AI attacking empty tiles tells me that you probably arenât removing the pawn from both the Pawn Array and the Pawn Actor Array at the appropriate index where it is killed. If these suggestions donât help you in fixing the problems I can take a look at your project for you, if youâre interested.
In other news, Iâve changed the units to use the new 4.8 mannequin. While doing this I have been made aware that there is a bug with 4.8 that I was unaware of. It seems like 4.8 has a problem with child components of the animation blueprint. If you have units with child components of the unit animation blueprint in your maps and modify Unit_Parent by adding a variable it causes a crash every time. Iâm looking into this and trying to fix this, but I think I might need Epicâs help on this one. Iâll upload a new version when everything is working as it should again.
Here are the new shiny pawns that will be included when I do:
Well I didnât change anything with the way Pawns are handled when dying outside of simply adding a switch on faction node so that the player doesnât get destroyed, but everything else still uses the same nodes past that. And everything is already set to find only pawns, so Iâm not sure whatâs going on there unless I accidentally connected/disconnected something without realizing itâŚ
Hereâs some screenshots of some of the blueprint changes I made (not all of them, though, since I canât recall half the changes I did while troubleshooting to get it workingâŚ).
http://spritehaven.com/wp-content/uploads/2015/07/FindTilesInRange.png
(Appologies for the hacked-up nature of this one, was hard to fit it all on my screen for one shot so I edited it together in PhotoshopâŚ)
http://spritehaven.com/wp-content/uploads/2015/07/FindVisiblePawnsStep2.png
http://spritehaven.com/wp-content/uploads/2015/07/SearchAndAddTile.png
Regardless, I fixed the problem for the most part I think by adding in an âescapeâ bool of sorts to make sure that when Receive damage is called that it actually fires on a pawn, and if it doesnât for some reason it just ends the pawnâs turn anyways⌠Partly had to add this because I was experiencing an issue with my AoE/Cone attacks not actually hitting the target because of height differences (I get all the targets based off a static mesh volume to get all its overlapping actors and apply damage to them if their faction doesnât match the current pawn), but it helped with the AI hanging a bit too for those âattacking airâ situationsâŚ
The top one resets the bool when the Attack Victim function is executed, and then in the second portion at the end of the attack itâll wait 2 seconds before checking to make sure that the damage was actually received by something, and if not it ends the unitâs turn. The bottom portion is simply switching the bool after Receiving damage so that it registers as the victim having actually been hit so when the delay finishes itâll see if it changed or not.
I do however get an intermittent issue (unrelated to this I think) that only comes up once in a while where a Player unit will begin its turn and automatically try to attack the nearest Player unit then switch back to letting the Player Controller having control of it for the second half of its turn. Itâs really random though⌠Probably something I broke myself, possibly when I was extending the Player turn order to include âaction pointsâ for moving and attacking(Iâm leaning towards that because I never noticed it before that), but Iâm just not sure because of how random it isâŚ
Hi ,
I just purchased and downloaded your release a few days ago, itâs great and thanks for that
After having fun and learning for some days, I made a little mods. It seems having not considered the Z-extent of the default tileâs StaticMesh, that means pawns always stand on the GridManagerâs height. So I added TileBoundsHalfZ, and use it before AddInstanceâs transform.
Itâs a tiny but also annoying when I update a new version, I have to remember this and do it again
I appologize if I missed sth.
Anyway, tâs a great job saving me months to do the same thing, thanks!
@Skenku: Ok, trying to keep all your modifications in my head to figure out what might have gone wrong is quite tricky, but Iâll try. I donât see any reason why your top code should allow for displaying all tiles in range instead of just pawns that can be targeted. In the base toolkit, the Find Tiles In Range function for the player is set up so that âfind only pawnsâ is set to false if current move is 0. Have you modified that stuff in the Activate Unit part of ATBTT_PlayerController?
I canât see a reason why Recieve Damage should not be called from the screenshots youâve posted. I guess the attacker might be attacking an array index that does not hold a pawn? You could try to print the index of the tile the attacker is attacking and the index of the tile the target is standing on and see if they always match up. I usually fill my blueprint graphs with Print Strings when I run into these sorts of problems.
@xiuxiu: Thanks, glad you like it I assume youâre using your own custom static meshes for tiles? The easiest way to fix your problem is to make sure the pivot point of your static mesh (set up in whatever modeling sotware you are using) is at the top and center of your mesh. I did this with my own meshes as I thought it made sense that the âfloorâ of the grid was at the same Z location as the Z location of the grid, and so I would not have to correct for the height of the meshes in blueprint. I assume the pivot points of your meshes are in the center of your tiles, since you have to add half their tile bounds.
Errors/warnings reported while playing in editor
Dear ,
First of all I HAVE to say that I think you have been working on an amazing and awesome Toolkit!!! Itâs really a privilege, in the first place to be able to buy it, and secondly to be able to work with it, let me tell you that!!! I canât wait to further develop what all I have in mind, with all your fantastic Blueprint work under the hood of my game project!!!
Today, for the first time, I ran into an issue actually; after playing Map_Height_Example through PIE and closing it, the editor immidiately reported some errors. I found a post, earlier in this thread, which kind of describes simmilar kind of errors, under kind of the same circumstances.
The errors reported at my end:
The earlier post I mentioned:
Your solution to the issue described in that earlier post turned out to be the solution to my issue as well; I assume this fix is not yet implemented in the latest 1.41 Toolkit version? Iâve downloaded 1.41 for Unreal Engine 4.8 last saturday only; in 1.41 the untouched âAdd Viewport Terrain To Arraysâ (still) looks like this:
Hi RAKSHASRAJA. First of all, thanks for the glowing review I hope the toolkit will live up to your expectations.
You are indeed right in that I forgot to correct that error in the latest update, but Iâm sending a new update to Epic this night or tomorrow that will fix this error among other things. The error isnât actually doing any harm, and keeping it in is actually slightly more efficient than correcting for it, but Iâll fix it in any case, lest it confuses even more users.