I want to implement a demo like creeps laning in Dota 2. So for simplicity, there is Left team and Right team, they are enemies.
- Units from Left team move toward Right base, and units from Right team move toward Left base.
- In their path, if those units encounter unit from enemy team, they will start to fight the enemy unit.
- One unit could attack an enemy unit.
- In their path, those units should avoid ally unit, they should not collide each other.
There are some units blocked by their ally, so when an unit blocking the path disappear, another closest ally unit should move on, or move to attack their nearest enemy unit.
I wonder if A* should be applied for the demo. My demo is more simple than Dota 2, it does not have static obstacles, it just has dynamic obstacles (moving units). My main question is, What strategies/algorithms should I apply to implement my demo?