Our third project in 15-493 (Computer Game Programming) was to develop the AI for tanks in a tank sim game. They could do basic actions like move, turn, aim the turret, and fire, and our job was to make them smart.
We held a class tournament at the end in which we all played our AI's against each other. My program came out first in the tournament. =)
Notable technical features of my AI:
- A* pathfinding with waypoint navigation
- Good targeting system - uses lead targeting (ie, extrapolation of enemy positions), and also attempts to always "be prepared" by being targeted on the enemy before it comes within range.
- Missile Avoidance planning system: considers multiple plans (ie, different turn angles) for avoiding missile fire. Most of the time, a plan with no turns is best, but sometimes it could be necessary to turn first to avoid a missile. (ie, when obstacles constrain your forward or backward movement)
- Uses an influence map for determining a strategic defensive position based on wall locations and enemy locations.