
Turn Based Grid Movement Multiplayer Tactics
A Tactics game where Positioning and quiting together with you unit composition will allow you to overcome your opponent!.
The idea behind thig project is to create a scalable tactics game using grid movement with a BFS algorythm and A* together, first design idea is a basic rock paper scissors using 3 differen units who would be able to evolve into a more complex iteration of this;
My job in this project was directly get the grid board generation and the movement implementation on it, I previously did something very similar in C# so I have implemented both the generation and the full BFS movement algorythm in a 100% C# project (inside Unity but runs from a fully empty scene);
https://drive.google.com/file/d/1BVteKB4wuhjcBWsH3e6S-Kx47txk4Pmr/view?usp=sharing
With this said, implementing it in blueprints and for multiplayer with replication was extremely different and came with several challenges I had to overcome.
The board generation was fairly simple, yet it came with many lessons about replication and server load objects, after a few iterations and changes to order of execution and some delays, and load on client/server, it works very well now, Tiles are randomly generated and get diferent Movement costs/blocks;
For the movement I decided that the most logical approach would be a BFS Algorythm to be able to show the full arrange of reachable Tiles adapting to the diferent type, unit movespeed or blocked Tiles, creating unique patterns depending on which unit is standing where on the Board. a Further A* Implementation would be nice to have in the future for Visual representation of the path and animations;
The attack patterns are several, some designed for units and some for future skills/units, are made based on simple coordinate graphs for simplicity and effectivity evaluating tiles in coordinate directions;
The combination of these systems helped me create a very functional Tactics Battle where positioning, quiting and unit composition is key to defeat the enemy forces;