Pages

Showing posts with label Artificial Intelligence. Show all posts
Showing posts with label Artificial Intelligence. Show all posts

Sunday, December 14, 2014

Starcraft: Broodwar Terran AI Bot


Project Overview:

My team and I sought to create a Starcraft Brood War bot capable fo competing agaisnt human opponents and be entered in international Brood War Ai competition. Implementing artificial intelligence in an RTS games like Starcraft is particularly challenging due to lack of perfect information. Fortunately, we were able to work with BWAPI, an API developed to assist individual in developing their own AI bots for Starcraft Brood War.

We focused primarily on natural agent based learning model with the following features:


  • Low-level individual swarm like intelligence
  • Mid-level squad leaders that would be assigned smaller objectives
  • Base commander in charge of building units, researching tech, determining where to place buildings, and expansions
  • A higher state based commander giving orders to the squad leaders and base commander

Implementation:
We used potential fields to determine unit movement. Potential fields are a mapping that allows our units to exhibit natural and intelligent movement. The fields were set up in with diminishing radii around other units. The strength of said field was determined by the relative strength and weakness of those units. As potential fields alone may cause a unit to end up in local maxima, pheromone trails are used to deter units from following paths they have already explored by creating a local potential field in terrain they recently visited.


Pheromone Trails

Best target targeting with attack cool downs
Potential fields with targeting


For our macro strategy, a base commander determined the proper expansion, tech, and unit creationg. A priority queue for building units/buildings and researching new tech/abilities, was constructed that could adjust based on the state of the match.