-
Notifications
You must be signed in to change notification settings - Fork 0
Home
CasiaBot is a StarCraft: BroodWar playing bot written by Institute of Automation (Chinese Academy of Sciences) in C++ with BWAPI: The BroodWar APIs, and it is improved from UAlbertaBot which is written by David Churchill.
Compared with UAlbertaBot, Casia removed the modules of Terran and Protoss race and the module of BOSS.
For our developing time is limited (less than two weeks), Casia now uses Zerg only, and its strategies are based on priori knowledge.
Casia can choose different strategies according to different situations 4A5F . The strategies Casia uses is written by manual work, which are mainly about the use of zerglings, lurkers and mutalisks, and some reactions responding to certain circumstances or scouting results. For different kinds of troops (troops that are consisted of different Zerg species), Casia can command them by using "micro-manager" which focus on every individual.
Because priori knowledge can not be really reliable, so in next version, Casia will use neural network to help choose the best strategy according to certain circumstance.
Below is an overview of some main features of Casia.
Change strategy according to the current situation
The declaration of relevant functions are defined in ActionZergBase.h
, flag canDeployAction
is used to determine whether a certain strategy will be used. Tick
indicates the end of the strategy which is being used. For every strategy, we defined some conditions, if they are satisfied, the flag canDeployAction
would be enabled, then the corresponding strategy will be run.
Casia vs Protoss
We focus on early stage, continue morphing larva into zerglings, then let them rush into Protoss' base.
Casia vs Zerg
We focus on later stage, build sunken colony to prevent opponent's rushing, at the same time, build two or more sub bases to accumulate minerals and gas, then morph enough mutalisks to attack opponent.
Casia vs Terran
Our strategy is lurker rush: hatch lurkers as soon as possible, meanwhile, use zerglings and sunken colony to protect base.
Casia MetaType
Now MetaType can have condition as second parameter in constructor, condition is a string, we have following conditions:
- <num>G means we can't create unit until we have <num> Gas
- <num>M means we can't create unit until we have <num> Mineral. e.g. *(Hatchery, "300M") means after we have 300 minerals we can build a hatchery
- Main means we should build this in main base, usually used for hatchery
- Cancel means we should cancel this unit, usually used for gas trick
- <num>%<unit> means we can't create until the <unit> has been completed by <num>%. e.g. (Hydralisk_Den, "50%Lair")
- <num><unit> means we can't create until we have <num> <unit>s. e.g. (Zergling, "3Larva")