Skip to content
Rubens de Oliveira Moraes Filho edited this page Sep 14, 2017 · 11 revisions

SCV Bot

SCV is a RTS playing bot written in Java for MicroRTS. It has developed to MicroRTS AI Competition 2017 what will happen in the CIG 2017.

SCV is a portfolio-based approach inspired by Potfolio Greedy Search, developed by Dave Churchill, that differ in the compositions of portfolio, using complete strategies instead of scripts. The strategies that make up the bot are:

  • ai.abstraction.POWorkerRush
  • ai.abstraction.PORangedRush
  • ai.abstraction.POLightRush
  • ai.abstraction.POHeavyRush
  • ai.abstraction.RandomBiasedAI
  • ai.pvai.EconomyRush
  • ai.pvai.WorkerRushPlusPlus
  • ai.pvai.LightDefense
  • ai.pvai.RangedDefense
  • ai.pvai.WorkerDefense
  • ai.pvai.EconomyMilitaryRush

The first five strategies exists in MicroRTS and was developed by Santiago Ontañón. The others were built to provide many different behaviours didn't present in other strategies. All these strategies can play a game in mode standalone but their deterministic behaviour is a limited factor, they have hard-coded approaches and this don’t produce good results. For fix this problem, the SCV uses a voting schema able to combine each one behaviour in a powerful strategy. This idea was based by Leandro Soriano Marcolino's when they show that Diverse randomized agents vote to win where show the power of votes between different agents.
The size of our portfolio is very large, causing problems, given that each one strategy need a slice of time for return your answer and this answer will go to a voting process and create the final actions for the player. Empiric tests have shown that the portfolio size should be limited in four. Hence, was necessary a way to discovery how much and what strategies combination to use.
Each strategy and combination between strategies can created a new behaviour and this behaviour can be better if confronting a particular AI.
To define what strategy or combination will use, we seek to define how our enemy behaves. Based in a particular definition of the enemy the SCV will use a specific combination of strategies. For create the model we used the weka 3.8.1 and the features selected and collected for each 100 cycles for classify the enemy are:
Informations about enemy units

  • Number of bases
  • Number of barracks
  • Number of workers
  • Number of light
  • Number of ranged
  • Number of heavy
  • Time
  • Height of map
  • Width of map
  • LTD3 (based in SimpleSqrtEvaluationFunction3)
  • Distance between our base and the enemy more closest

These information was used for training a model capable of classifying our enemy and this information was used to define the best strategy combination to use. So many classifiers are tested as, RandomForest, NaiveBayes and others. However, the best strategy combination for confront the opponent are founded in IBk classifier.

During the battle, every 100 cycles, the SCV uses the model to try classifier our opponent and based in the answer choose the best strategy for win the battle.

*Dependencies for Installation
*Instructions for Use

Clone this wiki locally