Snaking 2: Electric Boogaloo
It’s been about 48 hours and we’re still de-hyping from Battlesnake 2015, so there’s a lot to cover here.
First off – I want to take another opportunity to give a huuuuge thanks to all of our sponsors. The Battlesnake game server was powered by Heroku (a platform we use and love in production) along with all of the team clients – more on this a bit later. Dropbox was also hugely important in bringing everything together (especially when we broke their Heroku integration the night before). Food and drinks were made possible by our friends in the Victoria tech community: OneNet Marketing and VIATeC. And of course, the University of Victoria Department of Computer Science.
Wait, What is Battlesnake?
Battlesnake is our annual AI competition held at UVic. It’s a multiplayer version of the classic arcade game “Snake.” Participants create webservers that receive and respond to requests from the game server. The requests contain the current game state: the contents of every tile on the board, the locations of other snakes, the list of food locations, the current turn number, etc. The response contains two strings: the move (‘up’, ‘down’, ‘left’, or ‘right’); and, much more importantly, a taunt. The taunt is optional in the sense that excluding it won’t throw an error but really, what’s the point of a move without a taunt?
So Why Isn’t it a Hackathon?
Well I guess it’s semantics mostly, but most hackathons revolve around throwing together an MVP for something that nobody really wants to use anyways, prizes generally go out for interesting ideas that are minimally successful, and a lot of teams end up with something totally broken. The idea with Battlesnake is that getting up and running should be super easy, and the game is deconstructing the best strategy and translating it into code that doesn’t break too frequently.
To illustrate, here’s an action shot of some participants working on their entry:
Notice that not a single one of them is coding. We saw this all over the place. The heart of Battlesnake is in the strategy. The coding part can be accomplished by a relative novice. We think that this is not only a more fun and inclusive sort of competition, but also more indicative of what skills are actually useful in modern tech.
How’d it go?
It was awesome! We had a great time and a ton of people came up to us afterwards expressing the same sentiment. So from a strictly subjective standpoint, it was a huge success. Hearing a normally subdued engineering lecture hall going nuts over some dopey AIs narrowly avoiding collisions with each other was all the reward I needed. But the goal was also education.
Going into the big day, 74 of the 100 participants said they had never used Heroku. Many of those had never even attempted to deploy a web server. Of the ~32 teams that officially started the day, 30 ended up successfully fielding a snake. This means that they, over the course of 6 hours, learned the Heroku platform and successfully deployed a server that responded to requests. Adding to that the members of our own team who learned the same skills (some even picking up new programming languages) the day was a major win on the education front.
At peak, we hit around 750 RPMs on the game server, which is akin to about 300 people watching live games. Then the gameserver ate itself for want of pizza. As is usually the case, pizza solved everything and people were cranking away for the last hour until the beginning of the tournament (around 6).
The tournament ran in 3 rounds: the first of 6 pools playing best of 3 with the top 2 snakes from each pool advancing to round 2, which was 2 pools of 6 snakes competing in best of 3s for 4 precious spots in the final – a one game free-for-all to determine the winner.
The final ended around 8:00 and we all went out for drinks but, as you can see above, the Battlesnake did not end there. Every game start and end were piped into a slack channel and, when we all got home, there were still people launching games all through the night (and are still playing as I write this).
Watching the tournament play out was an insane amount of fun. We gave away tons of swag, including a Heroku longboard, 5 TB of Dropbox space, and $1000 cash. The winning team was “Snakes On A Plane” a group of CS students from UVic, pictured below.
Again, a huge thanks to everyone that came out and made Battlesnake2015 the success that it was. Now we look ahead to Battlesnake2016! Will it be bombersnake? Snakenoid? TankSnakes? Feel free to hit us with suggestions @send_with_us – We definitely won’t get tired of talking about it for a long while. Remember, Battlesnake is open to anyone, so don’t think you can never make another go at it just because you’re graduating!
We’ll also leave the game server up for a while longer, so if you want to try your hand at making a snake, check out the documentation and face off against our staff snakes… which I’m going to go work on some more.