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: Juno
Bot Race: Protoss
Author Name(s): Yuanheng Zhu
Affiliation(s): Chinese Academy of Science
Nationality(s): China
Occupation(s): Assistant Researcher

(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?

A: The strategy of Juno is first building Protoss Cannons in enemy base. After a number cannons are built, transfer to Zealot to battle. 
The reason for this strategy is that there is not much time left when I start this bot in order to participate AIIDE competition. And I am still a newer to starcraft AI. So the only choice left is to use a simple but effective strategy, and Cannon Rush becomes a good choice. 

Q: Do you incorporate learning of any form in your bot? If so, how was it accomplished? 

A: 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)

A: Actually, all the codes of Juno are hard-coded. I used to use a search algorithm to decide the build/produce sequence in the hope to complete the first cannon as fast as possible. Then I test the performance, I find it is not as robust as I expected, so I remove it. 
I also try to use reinforcement learning to control the movement of probes but still doesn't work well. So I give it up. 

Q: How did you become interested in Starcraft AI?

A: I love to play RTS (mainly warcraft III, but it does not have good API), so it is an attracting idea for me to build a computer AI to play the game. 

Q: How long have you been working on your bot?

A: About 2 months. 

Q: About how many lines of code is your bot?

A About 6000 lines. 

Q: Why did you choose the race of your bot?

A: Since I have decided to use Cannon Rush, Protoss is the best race that builds cannon easily. 

Q: Did you use any existing code as the basis for your bot? If so, why, and what did you change?

A: I only use an existing Time.h module for timing function. The left are written by myself. 

Q: What do you feel are the strongest and weakest parts of your bot's overall performance?

A: To be honest, my bot is not a very strong bot. If the oppose can not respond well when I build cannon in front of the base, I may win. 
But if the oppose use zergling rush (faster than my first cannon), Terran Tank (longer in attack range than cannon), or respond quickly when I build in their bases, my bot is easily defeated. 

Q: If you competed in previous tournaments, what did you change for this year's entry?

A: No previous tournaments.

Q: Have you tested your bot against humans? If so, how did it go?

A: No.

Q: Any fun or interesting stories about the development / testing of your bot?

A: The whole process of designing a starcraft bot is a great experience. You have to consider carefully from the start to the end. Which strategy you use, how to perform functionality, how to realize in codes, debugging and testing. 

Q: Any other projects you're working on that you'd like to advertise?

A: Currently 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?

Q: What do you feel is the biggest hurdle (technological or otherwise) in improving your bot's AI?

Q: Which bots are the most interesting to you and why?
