Bugs vs Bots: An Adversarial Exploration of Machine Learning Applications in Starcraft II (CMU)
Machine learning, a subset of artificial intelligence, is a rapidly expanding field of study in computer science. With applications ranging from medicine to education, the potential of this field is nearly unlimited. The purpose of the Starcraft II Artificial Intelligence team project was to gain an understanding of this domain through the implementation of AI techniques in an imperfect information environment. Starcraft II is a military science fiction real-time strategy video game created in 2010 as the sequel to the original Starcraft, released in 1998. Starcraft II is an imperfect information game, meaning that players are not able to see the entire gameplay at one moment. The project aimed to create a sufficiently effective agent which applied machine learning techniques that could play Starcraft II and win against both other AI and human players.
To accomplish this, we experimented with creating an agent for the Zerg and Protoss species. By hard-coding our Zerg agent, we used it as a baseline for which to measure the success of our machine learning algorithms. We successfully applied Q-Learning to our Protoss agent, greatly improving our performance against Starcraft II’s Artificial Intelligence opponents. We chose DeepMind’s PySC2 as our Starcraft II learning environment, which was a collaboration between DeepMind and Blizzard Entertainment to create a machine learning API as a Python Reinforcement Learning Environment. Using machine learning techniques such as linear regression, neural networks and reinforcement learning, each having their own benefits in creating an AI agent, a script could be developed which sought to find the highest winning percentage decision amongst the vast array of possible strategies. Ultimately, our machine learning Protoss agent was able to defeat opponents at a level to similar that of