Halite is an artificial intelligence programming challenge. Players control a bot using the programming language of their choice. Bots fight for control of a 2D grid and the bot with the most territory at the end wins.
The company behind Halite is Two Sigma, a New York City-based hedge fund that uses a variety of technological methods, including artificial intelligence, machine learning, and distributed computing, for its trading strategies. According to the company’s website:
“Each year we like to challenge ourselves with a hard, but fun, engineering problem. It always involves programming artificial intelligence systems to battle in a head-to-head competition. In previous years we’ve built AIs to play computer games, card games, and shuffleboard against our employees and each other. 2016’s epic battle saw humans and AIs squaring off across an air hockey table.”
Isn’t that cool? Check out the video below for a recap of the “Human vs Machine” event from last year.
Anyway, back to Halite. The game was originally conceived and developed by Benjamin Spector and Michael Truell, during a summmer internship at Two Sigma in 2016. They then assisted with further development of the game leading up to the companies annual programming competition. After a very successful 3-week tournament in August, comprising about thirty-five players, the company decided to launch the competition publically for a limited time.
The public version of the competition was launched in November 2016, and is being run with the help of Cornell Tech. It was initially scheduled to finish today (2nd February), but has been extended to the 12th February. There are currently just over 1500 players on the leaderboard, with plenty of competition for the top few spots and new versions of these bots being submitted on a daily basis.
I stumbled across the competition sometime in mid-December, and was immediately hooked after looking into it and submitting my first bot. The friends and colleagues I have shared it with seem to have had the same experience, so kudos to the team at Two Sigma/Cornell Tech for making it so easy to get up and running.
Halite is suitable for a wide range of programming enthusiasts, regardless of background or level of experience. The simplest Halite bot requires just 10 lines of code, but obviously you can expect your bot to evolve into something much more complex as you iterate on your ideas.
If you think you might be interested, simply head over to the Getting Started page and follow the instructions. The basics of the game are very simple to grasp, but as they say, the devil is in the details, and there is surprising scope for depth of strategy and innovation due to the mechanics involved in expansion and combat.
For this reason, after you have worked your way through the rest of the “Basics” section on the website (Introducing Halite and Improving the Random Bot), I’d strongly advise you to read through the Game Rules page very carefully and make sure you understand what’s communicated on it. From there, the best way to fast-track your learnings and start getting competitive on the leaderboard is to read through Nick Malaguti’s excellent forum post - So you’ve Improved the Random Bot. Now what?
Getting through all of that should give you a good idea of most of the important things to consider. From there it’s up to you - iterate from that point and/or experiment with different ideas from scratch. Browse the forums and you’ll find some great discussions and further ideas to explore. As you begin to do this, you’ll want to compare the strategies you come up with by testing different versions of your bots against each other locally. To do this, I’d recommend using this Halite Match Manager.
Good luck! May the best bot win!