Home Teaching Research Publications Code


Open Source Code

I currently maintain several Open Source software projects on GitHub which you can view below. I am always open to contributions and regularly accept pull requests.

To see all my projects, visit my GitHub Profile

If you are interested in other programming resources, check here: MUN Programming Competition Resources

UAlbertaBot

GitHub Link: https://github.com/davechurchill/ualbertabot/wiki

UAlbertaBot is a StarCraft:BroodWar playing bot written in C++ with BWAPI: The BroodWar API. It has competed in most major StarCraft AI Competitions since 2010 and won the 2013 AIIDE StarCraft AI Competition.

UAlbertaBot also contains the Build-Order Search System (BOSS) and SparCraft projects.

Command Center

GitHub Link: https://github.com/davechurchill/commandcenter

CommandCenter is written in C++ using BWAPI and Blizzard's StarCraft II AI API. It provides many wrapper functions around both APIs that allow it to perform the same functionality in both games via the same source code. CommandCenter is based on the architecture of UAlbertaBot, and is intended to be an easy to use architecture for you to quickly modify, play with, and build your own bot. The bot itself does not contain much in the way of hard-coded strategy or tactics, however it provides a good starting point for you to implement your own strategies for any race.

StarCraft AI Tournament Manager

GitHub Link: https://github.com/davechurchill/StarcraftAITournamentManager

This software is a tool for running Starcraft AI bot tournaments using BWAPI. It uses a server-client architecture with one machine acting as a server and any number of other machines acting as clients. The tournament manager is written entirely in Java, and can be run on Windows 7 or higher, either on a physical machine or a virtual machine. All data sent and received is compressed and passed through Java sockets, so no special network configuration is required to run the software.

StarDraft

GitHub Link: https://github.com/davechurchill/stardraft

StarDraft is tool for visualizing Starcraft maps, which facilitates the development of map analysis algorithms.

CWaggle

GitHub Link: https://github.com/davechurchill/cwaggle

CWaggle is an open-source robotics / physics simulator written with an ECS framework. It has been used for publications in robotics / reinforcement learning.

Tekken 7 Leaderboard Scraper

GitHub Link: https://github.com/davechurchill/tekken7leaderboard

I was sick of having to manually scroll through the Tekken 7 leaderboards, so I wrote a program to parse them visually with OpenCV. It is not currently being maintained.