On Choosing Docker

How I decided to containerize the StarCraft II Learning Environment

Elaine Yeung
2 min readNov 9, 2017

This is the first of several tutorial blog posts accompanying my end of term project completed for Holberton School.

On August 16, 2017, Blizzard and Deep Mind collaboratively published a white paper entitled “StarCraft II: A New Challenge for Reinforcement Learning.” The paper introduced the StarCraft II Learning Environment (SC2LE) to the research community and outlined frameworks and resources designed assist in the exploration of deep reinforcement learning algorithms and architectures.

Getting the development environment up and running took about two days of deciphering error messages and sifting through issue requests on GitHub. For many people, however, experiencing difficulty in setting up the SC2 learning environment may cause them simply give up in frustration. My initial project pitch to my school at the beginning of October was to improve documentation of SC2LE by publishing a comprehensive tutorial and video walkthrough.

My project pitch before I decided to go down the path of containerization

Shortly after project pitch day, I was invited to attend the StarCraft II AI Workshop hosted by Blizzard and Deep Mind. At the same time, I ran into a roadblock with my ability to process replay files since my locally installed version of StarCraft II did not match the version number of the replay files. Since I had no way to tell when the data structure holding the ID of the game version would be updated, I decided to try using the headless Linux version that Blizzard provided. Given the dependencies needed to implement SC2LE and the fact that we had a Linux version provided, I jumped on the opportunity to build a Docker container whenever Jacob Repp mentioned it in our workshop chat.

Wait. Hold up. Containers? Docker? What is this sorcery you speak of?

In case you’re not familiar with containers, then let me direct you toward this fantastic series of blog posts by Jessie Frazelle:

Now that we have established a basic knowledge of containers and set the context of my project, continue reading to learn how to set up your very own StarCraft II Learning Environment development container.

--

--