Starcraft 2 Bot written in Python using the python-sc2 libary
Branch: master
Clone or download
Latest commit 48f58c1 Feb 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
sc2 Add files via upload Feb 12, 2019
LICENSE Add files via upload Feb 12, 2019
MadAI_09_02_2019 Add files via upload Feb 12, 2019
MadBot.py Add files via upload Feb 12, 2019
README.md Update README.md Feb 12, 2019
__init__.py Add files via upload Feb 12, 2019
ladderbots.json Add files via upload Feb 12, 2019
run.py Add files via upload Feb 12, 2019
train_AI.py Add files via upload Feb 12, 2019

README.md

MadBot

Starcraft 2 Bot written in Python using the python-sc2 libary In order to run the Bot you will also need tensorflow and keras. Alternatively, you can run a specific build of the Bot by commenting out the neural network parts and comment in the static decision lines.

I started this project to learn both python and machine learning (ML) at the same time. This means that not only my code might be messy or sub-optimal, but also my ML techniques might be pretty basic. Yet, I tried to create a bot, that mostly relies on hard-coded build order, which are good in particular situations or against certain races. This version was meant to randomly choose a build order and gather scouting data at approximately 2 minutes elapsed game time, which is stored together with the result of the game. This training data will be used to train a neural network to choose the optimal build order based on the scouting information of the game instead of randomly choosing it right at the start. Hopefully, this will increase win rates a lot (it certainly did against the build in computer opponent, but thats a different story). The next step would be to identify more milestones within a typical game in which major choices had to be made and let a different network make these choices. Possible candidates might be: Attack now or keep defending/expanding, alter unit composition (e.g. Colossi instead of Immortals), Commit to a attack or retreat, etc. Thanks to sentdex, CreepyBot, Cannon-Lover and TapiocaBot for some inspiration