May the best bot win –
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
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
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!