Do you know about SSCAIT?
When someone mentions StarCraft, its almost granted that 90% of the people hearing imagines a korean guy that has played for 47 hours nonstop, no sleep, no food, and most likely no bathroom. I will not deny that koreans are the epitome of StarCraft players, but ever since 2011, there are other contenders to pick the top seat at StarCraft competitive play.
Student StarCraft AI Tournament is a yearly event that allows artificial intelligence savvies to show of their skills. In this competition, each participant can upload an AI capable of playing StarCraft autonomously. Note that the participants must be students. For 6 years, AI have brutally slaughtered each other, seeking for the title of ultimate champion.
There is little information about the first tournament back in 2011. All we know is that Roman Danielis, from the Comenius University, Bratislava, took the scepter for one long year. However, the success of the event allowed a second edition in 2012. In that year, Matej Istenik, University of Zilina, Slovakia ruled them all.
https://www.youtube.com/watch?v=kO58GYIwX9M
2012 was also the first year where non-students were allowed to participante, where Wang Zhe et al. from Japan, won. From there, one edition has been celebrated annually, with winners from east Europe and Asia dominating.
Now, you may be wondering, how this guys do it? The answer is quite simple (or not). The official portal of the SSCAIT has complete documentation on how to use the necessary APIs and libraries to program your own StarCraft Bot. Technically speaking, bots are programmed using BWMirror.
BWMirror API is a Java wrapper for C++ BWAPI. It wraps all the classes, constants and enums inside Java objects, while providing the exact same interface as the original C++ BWAPI. This is achieved by heavily utilizing JNI.
One of the winners of the 2014 edition, Martin Rooijackers, has shared with the world via Rock, Paper, Shotgun how his bot, LetaBot, works. Detailing the entire functionality of LetaBot would be insane; the important thing is that this bots use most of the machine learning and AI techniques as a whole to cover up different problems. Robot vision is used to process the known map information, behavior trees are used to generate a hierarchy of decision making, and machine learning can be used to fine-tune the behaviors.
Its remarkably what this students can do. Videogames are complex, stochastic, continuous AI problems that require every single piece of knowledge to work. Would you prove yourself participating?