Q: What is the overall strategy/strategies of your bot? Why did you choose them? Iron's units all share one simple aim: go to the main enemy base and destroy it. Iron often seems like a harasser bot, which is due to its units having mainly individual behavior. Q: Do you incorporate learning of any form in your bot? If so, how was it accomplished? No. 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) Iron is mainly a Multi-Agent system. - Each controlled unit is an Agent. - Robustness of the overall behavior is the main goal (avoid blocking situations, indecision, predictability). - To get this robustness, each Agent is made highly autonomous (at anytime, Agents can switch between 25 behaviors). Economy: - For each type of unit to train, each type of building to bluid, and each tech to research, there is a specialized Agent called Expert. - Experts tell how urgent it is to spend ressources for their task. - Experts are autonomous, which is good for robustness. - Evaluations rely on collected information and (very) rough heuristics. Strategies: - respond to the need of global algorithms. - About 25 "strategies" implemented - Has a time scope, a concret goal, and takes control over several Agents. Q: How did you become interested in Starcraft AI? I've always been fond of RTS games (the first one I played was Dune 2). By the time I studied AI at university, I liked to program a lot of games during my spare time. Unfortunately, STR AI competitions didn't exist yet! Many years later, I heard of several Starcraft AI competions and I decided to have a look at them... Q: How long have you been working on your bot? I began Iron developpement by 2016. Q: About how many lines of code is your bot? 20000 Q: Why did you choose the race of your bot? As a newbie to StarCraft, I chose the Terrans because the other races confused me too much. Q: Did you use any existing code as the basis for your bot? If so, why, and what did you change? Iron is based on a previous bot : Stone. By the way, I have recently recoded Stone using Iron's new code, so one can easily switch between them. Q: What do you feel are the strongest and weakest parts of your bot's overall performance? Iron's units have individual behavior most of the time. This makes Iron's overall behavior robust. Iron's economy is quite robust too with good infrastructure, but the decision system uses hard-coded weight based rules, which is hard to maintain in the long run. Q: If you competed in previous tournaments, what did you change for this year's entry? Although it runs the same build each time, Iron can now react to many builds. It can use more strategies too. Q: Have you tested your bot against humans? If so, how did it go? Iron, like other top BW bots, can beat average human players. That's about it. 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? The other developers (especially the new ones) may find useful the BWEM Library (http://bwem.sourceforge.net). 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? I believe StarCraft bots are still at a state where they benefit more from simple algorithms and good mechanics, rather than AI techniques. This is due to the complexity of the game. If your bot neglects some part of the rules (and there are lots of them), it will be easily defeated by humans and by bots still under development. Q: What do you feel is the biggest hurdle (technological or otherwise) in improving your bot's AI? Time Q: Which bots are the most interesting to you and why? Krasi0 has very good mechanics in the macro part, with good robustness. Some of its strategies and its behaviors seem increadibly human.