AIIDE StarCraft AI Competition - Survey Feel free to answer as many questions as you like, but it would be great if everyone answered everything! Please feel free to provide external references/links as necessary Bot Name: CherryPi Bot Race: Zerg Author Name(s): Vegard Mella, Jonas Gehring, Zeming Lin, Vasil Khalidov, Nicolas Usunier, Nantas Nardelli, Shubho Sengupta, Gabriel Synnaeve Affiliation(s): Facebook AI Research Nationality(s): Citizens of the World Occupation(s): All AI tinkerers, some machine learning researchers. (These will be listed on the competition website) Bot URL: https://github.com/TorchCraft/TorchCraft Personal URL: https://github.com/TorchCraft Affiliation URL: https://research.fb.com/category/facebook-ai-research-fair/ 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? Our bot plays aggressively and has various strategies (5 against Zerg, 6 against Protoss, 7 against Terran, in the competition) that balance out pushing and macroing. Q: Do you incorporate learning of any form in your bot? If so, how was it accomplished? We use a slightly modified UCB-1 (bandit) algorithm to choose which strategy to use against which bot. Q: Please describe all AI techniques / algorithms used in your bot. (For example: What parts of your bot are 'hard-coded', which use learning, search, decision trees, state machines, etc) Our bot is modular, it has different modules for parts of strategy, tactics, control, and the different modules communicate through an abstract action space and a blackboard. The control (micro) is overall made of hierarchical state machines, while the economy (macro) is mostly done with search and rules. Q: How did you become interested in Starcraft AI? At Facebook, it started with a small group of us being interested by looking into reinforcement learning for StarCraft micromanagement. From there, it became clear that micromanagement was only the tip of the iceberg even for learning approaches: little strategic reasoning, (almost) fully observable, single objective. We then set out to work on StarCraft full games, but in a modular way, so that we can conduct research on smaller parts of the problem within the framework of full games. That led us to do this bot, that should be a baseline for future learning endeavors. Q: How long have you been working on your bot? Specifically on the bot, we started coding in spring, although we all worked on it mostly over the summer. Q: About how many lines of code is your bot? Recent sloccount of C++ code: 23.9k in src/, 4.5k in test/ Q: Why did you choose the race of your bot? At the end of July, we had to pick a race to do some of the specifics/implementation tuning, we had a 30min discussion and ended up with Zerg. We think there is plenty of room to do a good bot with any race at this point. Q: Did you use any existing code as the basis for your bot? If so, why, and what did you change? Not really, although originally we planned on using BOSS, and the bot has some inspiration from tscmoo and BroodwarBotQ, as we are all human, thus biased. We use BWEM for static terrain analysis. Q: What do you feel are the strongest and weakest parts of your bot's overall performance? Strongest part: enough strategies to cover lots of different opponent's styles. Weakest part: too many strategies that it takes a long time to figure out which one is good in which situation. The bot almost only uses zerglings, hydralisks and mutalisks, thus it is best in the early/mid-game and would likely struggle in very late-game scenarios. Q: If you competed in previous tournaments, what did you change for this year's entry? - Q: Have you tested your bot against humans? If so, how did it go? - Q: Any fun or interesting stories about the development / testing of your bot? - Q: Any other projects you're working on that you'd like to advertise? Feel free to use: - TorchCraft for easily proxying Python, Lua, C++ to StarCraft (that we use in the bot): https://github.com/TorchCraft/TorchCraft - StarData for the biggest (state extracted!) dataset available of human StarCraft: Brood War games (65k), in TorchCraft format: https://github.com/TorchCraft/StarData