I have just released my first version of an AI to play the classic 1998 Starcraft: Broodwar. My goal with this project is to combine economic fundamentals and behavioral tendencies with existing machine learning techniques to create a versatile and lifelike opponent.
This is a very active area of research, indeed, a publication was made on this topic yesterday. Further literature is available in the collections listed here, here, and here. Major competitors in this field include Facebook, dozens of PhD projects from major universities, as well as some of the best private sector programmers and developers from around the world. I am currently competing in the largest tournament of AI bots, SSCAIT, where you can see my bot play live 24/7 for your viewing pleasure and academic interest.
My AI was also selected for review in the weekly report, and this review gives an excellent demonstration of its macro-economic leanings. In this match, it makes aggressive and early investment into its long-term workforce, and has makes minimal investment in the short-run returns of combat units. The effect is an an overwhelming crush of units in the mid-to-late game.
In this next match, I play a similar macro style, but aggressively manage complex cloaking and air attacks at the same time.
Regardless, this AI learns from every game, and every opponent is different, so each match is a unique experience. Expect lots more fun game play from it soon!
Features of the AI:
- Uses macroeconomic modeling to evaluate the state of its own internal economy. Maximizes its total output.
- Learns over time to tune its economy to match each opponent. For this, I use a genetic algorithm with a long memory and a low mutation rate to slowly move in the right direction as the bot plays dozens and dozens of games.
- Uses no preexisting map libraries or open source bots, written entirely from scratch in C++.
- High performance even in full combat situations with many units on both sides. Few lag-outs or crashes (indeed, all on record are my fault for accidentally uploading the bot’s memory files incorrectly).
You can see my bot’s page directly on SSCAIT here.
Other assorted press of my bot are below:
Update, my bot competed under the name “CUNYbot” at CIG. It’s performance was as well as trained, and finished just under UAB. Overall, I’m very happy with its performance and looking forward to edging it forward next year.
https://cilab.sejong.ac.kr/sc_competition2018/results/html/index.html