I am making a multiplayer tactics (maybe sports?) game! It will be a 2 or 4 player game where you program units that only you own/control and then the (GAS) abilities will be executed when the "Turn Phase" you have set for them comes around. For now I just have a big soccer ball for them to interact with, but I am not tied to any game type right now. Once I have basic combat implemented, I'm going to play around with different game types.
This video is to highlight the updates I've implemented over the past week.
The abilities and the logic related to them exist on the individual units, and only on the server version of the game, so I needed to come up with a robust communication system between my player - which handles selecting the unit, sending ability related events to the selected unit, handling mouse information, and showing the ability preview - and the unit - which holds the abilities and their individual attributes that will be used in the abilities, like movement range and strength.
Now all of my unit abilities will have a parent class that allows them to listen for updates from the character - related to ability activation, confirm, cancel - and from the turn system - related to when they should activate their abilities. And the unit is sending events back to the player when an ability is confirmed, to store the preview information to display on screen, and when an ability is not able to be activated.
I am still pretty new to Unreal's GAS and how to best share data between different entities without tightly coupling them, especially when its multiplayer and the same data is not equally available everywhere. It was a lot of banging my head against the wall until I finally got something that worked. But I have learned a lot over the last week and am excited to get the scoring mechanisms implemented and have it actually be a game with a goal (or two)!