Stopping AOE from Hitting friendly Units

we have @Mindme join us about how he got NegativeZero Disruptors to stop hitting his own units.

Key Highlights:

  • Understanding the application of influence maps for strategic AI decision-making.
  • Techniques for minimizing friendly fire in bot interactions.
  • Insights into the evolution of disruptor tactics over various competition seasons.
  • Discussion on balancing attack strategies with defensive maneuvers in bot programming.
  • Other AOE applications of influence maps with values: Mass Recall, Siege Tanks, Corrosive Bile, etc

some more to go with this

At the 2:55 mark, you’ll see the map debugging shows all values except for the zeros.

How It Works:

  • Map Scoring: The disruptor uses a 2D map grid with scores based on unit proximity. Each spot starts at a base value of 0, with positive scores for enemies and negative for friends.
  • Targeting Logic: The bot targets the highest positive value within its range, which decreases as the shot needs to be made, ensuring optimal and safe targeting.
  • Dynamic Adjustments: At 5:11, you’ll notice how the disruptor recalculates the best target area in real-time as battlefield conditions change.

Insights:

When friendlies and enemies are close, their scores blend, making high-threat areas less appealing unless significantly outnumbered by enemies. This ability to adjust scores in real-time is crucial during battles.


Behind the Scenes:

  • Custom Map Handling: I use 22 different strategic maps, including ones for Air DPS and Ground DPS, which help anticipate and react to battlefield conditions.
  • Scoring System Complexity: Decisions are driven by a dynamic scoring system that evaluates factors like enemy proximity, health, and potential threats.

Programming Insights:

  • Building the System: -0 is programmed using Go, and I use Python’s numpy for complex data handling. I manage debugging and updates manually to optimize performance.
  • Practical Application: Understanding and implementing a similar scoring and map system can greatly enhance bot performance, which is something I highly recommend exploring.