AnyBot is a one-size-fits-all AI for StarCraft II: Legacy of the Void. The purpose is to create a single opponent that is both challenging and fun for any level of player. To do this, AnyBot analyzes its opponent for two primary reasons: to determine and react to its strategy/build path, and to estimate and scale to its skill level. In addition, the AnyBot project is also available as a starter kit for future StarCraft II AI development. As a part of the project, we have built a library to encapsulate the game world in memory and allow blackboard-style decision making entirely through GalaxyScript.
AnyBot tracks the structures that its opponent constructs in order to predict what the unit composition of the enemy's army will be. Based on these predictions, AnyBot increases the weights for Terran units that counter the enemy Zerg units. Then, it uses these weights in a weighted randomization function to alter its own army composition in response to the enemy's observed behavior.
AnyBot uses the management of one’s economy as a central point in determining the relative skill of its opponent. From this determination, AnyBot then uses a table-top style dice roll skill check to intentionally make misplays and bring itself closer to its opponent’s skill level.
The last piece of AnyBot is potentially the most powerful yet. In building the previous points as well as the macro and micro behaviors that make it work, AnyBot has come to include a comprehensive library to capture almost the entirety of the game state in local memory. All aspects of both AnyBot and its enemy are available via the global variables in the Blackboard, and all are consistently updated throughout the simulation. This is intended to provide a platform for further development of StarCraft II custom AIs in GalaxyScript via the Blackboard decision making methodology or other decision making methodologies.