We love competitions like MIT's _ Battle Code _ and Two Sigma's _ Halite _ as platforms for student-created AI bots to compete. Not only are they incredibly exciting competitions, but they provide endless learning experiences to computer science students and enthusiasts that are extremely difficult to reproduce in a classroom environment. We wanted to see these sorts of competitions to grow in number and popularity, so we created mlarena.

What it does

mlarena is a Platform as a Service that provides prospective AI competition hosts a convenient service for creating and running games at a large scale. All that the host has to do is upload the code (as python files, for instance) that runs their game and provides the game API. After that, other users can upload code for their own bots to play this game. In an automated match-scheduling process, the bots are pitted against each other to play the game. A leaderboard displays most successful bots using an elo rating system. Additionally, the competition host can provide an animation script that animates replays of matches directly in the browser.

How we built it

The website and database were built using bootstrap and django. All matches between bots are run through Google Cloud Functions, allowing for many games with high computational overhead to run at a large scale. Our django app was hosted and deployed via Google App Engine.

Challenges we ran into

One challenge that we ran into dealt with the JavaScript files that competition hosts provided in order to animate replays of matches. It was difficult figuring out how to store these files and load then into the animation page.

Accomplishments that we're proud of

We are proud of how much all of us learned throughout the development of this project from Python Django and Google Cloud Platform.

What we learned

For two of our team members, this was our first experience with Python Django. With all of us working with Python Django for this webite, we have more experience with how it works. We also all gained understanding of working with the Google Cloud Platform.

What's next for mlarena

Protecting against cross side scripting (XSS) attacks, because part of our project relies on a javascript injection to function.

Share this project: