Last year, following the BattleSnake event, I (Scott) wrote a blog post that went into the technical design and strategy of our Bounty Snake, the Redbrick Robosnake. The post was well-received, and a few people asked me this year if there would be another one for our 2018 Bounty Snake, Son of Robosnake. Well, the wait is over, and the answer is yes!
This blog will follow the same format as last year’s post (we’ll use the same headings), but with a focus on specifically what has changed since last year. In other words, I’m not going to explain Minimax again, or talk about any part of the code that wasn’t changed, so go read last year’s post if you haven’t already! I’ll wait. ?
Once again, we would need two things to get started: a game server to run some practice matches on, and some enemy snakes to practice against. And while there were plenty of tough enemy snakes from last year, open-sourced on GitHub that we could (in theory) practice against – the snake API changed for 2018, so the official game server would not support them. What to do?
I ended up dusting off Mojave, the quick-and-dirty Battlesnake game server I wrote last year, modified it to speak the 2018 API, and added support for specifying the API version on a per-snake basis. So using Mojave, we could have 2018 snakes playing against 2017 and even 2016 snakes in the same game. I also prettied it up with better graphics and a better soundtrack.
“I ended up dusting off Mojave, the quick-and-dirty Battlesnake game server I wrote last year, modified it to speak the 2018 API, and added support for specifying the API version on a per-snake basis. ”
A couple of the snakes that we used to test Robo this year included:
- Your New Dad – https://github.com/andreirtaylor/yournewdad – this was one of the three snakes that beat Robo last year.
- Better Than Aleksiy’s Snake – https://github.com/rdbrck/battlesnake-2017-btas – last year’s winner of the Expert division (and also a Redbrick snake).
If you want to try out Mojave it can be downloaded here: https://github.com/smallsco/mojave – it’s a desktop application that runs on Windows, Mac OS, and Linux – note that this is not a Redbrick product, just a Scott project, and no support is offered for it. Also, if you do use it, please test your snakes under the official game server as well, as there may be subtle differences in how things are handled internally!
Oh, by the way – Mojave has both the original Robosnake, and Son of Robosnake built into its code, so you can play them without having to set up your own server.