Gizmo-Bot for Student StarCraft AI Tournament (SSCAIT)


is descended from the open-source C++ bot UAlbertaBot by Dave Churchill. Gizmo retains UAlbertaBot’s MIT open source license. And commandCenter is derived from another open-source bot called SteamHammer. I have developed and implemented my own build and macro strategy into the bot  using C++

What is SSCAIT?

Student StarCraft AI Tournament is an educational event, first held in 2011. It serves as a challenging competitive environment mainly for students (submissions by non-students are allowed too) of Artificial Intelligence and Computer Science. They are submitting the bots programmed in C++ or Java using BWAPI to play 1v1 StarCraft matches.


SteamHammer: Steamhammer is an adequate starter bot, with more features and more specific Starcraft skills than its parent UAlbertaBot or other versatile starting points like OpprimoBot. The primary alternative to Steamhammer as a starter bot is Locutus, which is itself a Steamhammer fork, and concentrates on protoss skills. Another possible starting point is Iron, which has great terran skills but is complex; authors starting with Iron have struggled to make early progress.

Referencing SSCAIT

To reference SSCAIT in your publications, please cite:

  • - Michal Čertický, David Churchill, Kyung-Joong Kim, Martin Čertický, Richard Kelly. StarCraft AI Competitions, Bots and Tournament Manager Software. IEEE Transactions on Games (ToG): 1-13. DOI: 10.1109/TG.2018.2883499. Print ISSN: 2475-1502. Online ISSN: 2475-1510. 2018.

  • - M. Čertický, D. Churchill. The Current State of StarCraft AI Competitions and Bots. In Proceedings of the AIIDE 2017 Workshop on Artificial Intelligence for Strategy Games. 2017.

  • - D. Churchill, M. Preuss, F. Richoux, G. Synnaeve, A. Uriarte, S. Ontanón, M. Čertický. StarCraft Bots and Competitions. Chapter in Encyclopedia of Computer Graphics and Games (ECGG). Springer International Publishing. ISBN: 978-3-319-08234-9. 2016.

Files That I have implemented:

  • Common.cpp / common.h - Return a UCB1 upper bound value, for an unspecified action. The algorithm is based on the principle of optimism in the face of uncertainty, which is to choose your actions as if the environment (in this case bandit) is as nice as is plausibly possible

  • MacroCommand.h - Declare Macro commands and states

  • OpponentPlan.cpp / OpponentPlan.h - Attempt to recognize what the opponent is doing, so we can cope with it.

  • StrategyZergBoss.cpp

  • Amongst other source code edits, and modules.

Language: C++
Purpose: Side Project/Personal interest
BOT Play1