AIIDE StarCraft AI Competition - Survey Feel free to answer as many questions as you like, but it would be great if everyone answered everything! Many people are interested in learning as much as possible about the bots that competed! Please feel free to provide external references/links as necessary Bot Name: BananaBrain Bot Race: Protoss Author Name(s): Johan de Jong Affiliation(s): Independent Nationality(s): Dutch Occupation(s): Software Engineer (These will be listed on the competition website) Bot URL: Personal URL: Affiliation URL: Questions about your bot (please answer as many as you can, especially Q 1-3) Q: What is the overall strategy/strategies of your bot? Why did you choose them? BananaBrain includes a variety of strategies, ranging from aggressive to defensive or greedy. I chose to do this in order to have a higher chance of having a strategy that is capable of beating a particular opponent. Q: Did you incorporate any of the following AI techniques in your bot? If you did, please be as specific as possible a) Search-Based AI (Path-Finding, A*, MiniMax, MCTS, etc) My bot uses the theta* algorithm to find a safe path back to the base when retreating. It also uses a combination of A* path finding and potential fields for positioning units during combat. b) Offline Machine Learning (Supervised or Unsupervised, but not RL) c) Offline Reinforcement Learning d) Online Learning of any kind (Including competition file IO for strategy selection) It uses the UCB-1 algorithm to pick a strategy at the start of the game, making use of the results of games played earlier versus a particular opponent. e) Influence Maps f) Custom Map Analysis BWEM is used for map analysis. g) Hard-coded or rule-based strategy / tactics Many hard-coded rules exist, for example for choosing the unit composition and countering opponent strategies. h) Analysis of bots from previous competitions / hard-coded specific bot counter strategies i) Any techniques not mentioned here Q: How did you become interested in Starcraft AI? I found Jay Scott's Starcraft AI blog (http://satirist.org/ai/starcraft/blog/) and after reading the articles there, I wanted to make my own Starcraft AI. Q: How long have you been working on your bot? For 2 years. Q: About how many lines of code is your bot? About 17k (excluding BWEM) Q: Why did you choose the race of your bot? I have been playing Starcraft for a long time, and Protoss always was my favorite race. Also, when I started development, Protoss was the least represented under the top bots (this is no longer the case). Q: Did you use any existing code as the basis for your bot? If so, why, and what did you change? Except for BWEM, it was written from scratch. Q: What do you feel are the strongest and weakest parts of your bot's overall performance? The strongest part is the macro and the variety of strategies. Weakest are that the bot can only send the whole army to attack or defend at one location; attacking at one location and defending somewhere else is currently not possible. Q: If you competed in previous tournaments, what did you change for this year's entry? This is the first time I participate. Q: Have you tested your bot against humans? If so, how did it go? Yes, usually the bot can take some games of a human opponent but soon the human player will discover a weakness and can then exploit them time and time again. Q: Any fun or interesting stories about the development / testing of your bot? No story comes to mind at this moment. Q: Any other projects you're working on that you'd like to advertise? No Optional Opinion Questions: Q: What is your opinion on the current state of StarCraft AI? How long do you think before computers can beat humans in a best-of-7 match? Looking at the progress of AlphaStar, I would expect this in a few years. Q: What do you feel is the biggest hurdle (technological or otherwise) in improving your bot's AI? One hurdle is the fact that (regression) testing takes a lot of time, since testing a new feature usually requires simulating a lot of games. Also, there does is no easy way (as far as I know) to get the game in a particular state which would be useful if you want to test the reaction of the bot to something that only happens rarely. Third, developing this bot is something I do in my spare time and there never seems to be enough spare time. Q: Which bots are the most interesting to you and why? Locutus, PurpleWave and McRave. They play the same race and are the strongest opponents at this moment.