Starcraft: Brood War AI

In 2018 I joined a community called SSCAIT, wherein a group of like-minded people agree that watching their StarCraft bot fight other bots in a winner-takes-all tournament is the definition of a good time. My bot, Frogfish, has yet to fight in a tournament, because his brain is still in the oven. But, it’s a big, honking brain, and the body is just waiting to be told what to do.

Frogfish relies on Brood War API - a wonderful piece of software that digs its hooks into the game at runtime and returns oodles of data. Thanks BWAPI! Frogfish can build (and knowing where to build as Zerg requires some effort), scout, follow build orders, project economic state, move units in groups, tech up, and so on.

The brain portion is my attempt at carbon-copying AlphaStar, DeepMind’s brilliant Starcraft 2 bot that rivals the best players in the world. I poured over their paper, their implementation details and their psuedocode. Even with all of these resources, it takes some understanding of deep-learning to fill in the gaps. I think my level of understanding is just outside of what is needed, but I am working on it. So far, this part of the project has been a fascinating learning exercise.

While Frogfish has little to show except code, it is the biggest and most ambitious thing in my portfolio. And, any project that takes this long to make will have cruft, but I think I demonstrate the ability to maintain consistency and readability in a program over 10k lines, in a project spanning many years.

Skills used: C++, python, Software Engineering, Creating Debug Tools, Math, Deep Learning

Time taken: many hours over four years.

Previous
Previous

Starflight: A Star Wars Fan Game (Team)