MIT's longest-running programming competition
What languages are supported?
Battlecode 2020 will support Java.
What is the game like?
The game is a turn-based strategy game where robots need to demonstrate a mastery of both resource management (macro) and combat tactics (micro). This year's game involves surviving rising water levels in an increasingly polluted world. Find out more by registering!
Wait, AI as in machine learning?
No, the AI we are talking about has more or less nothing to do with machine learning and neural nets. Rather, Battlecode is about pathfinding, resource management, communication and combat tactics, both on a local scale (e.g., choosing to attack the enemy robot with the least health first) and on a global scale (which units to send where and when).
Machine learning has not historically been used, since computing power is limited and the game is a highly complex environment. However, we'd be thrilled and excited to see a successful implementation of machine learning in Battlecode!
Do I need to be at MIT to participate?
No- in fact, you do not even need to be an MIT undergraduate! High schoolers and graduate students are welcome.
Do I have to be good at programming?
Actually, Battlecode makes a great first dive into programming! We'll be holding daily lectures throughout January to cover the basic skills needed to play the game. The lectures will be streamed and uploaded on Twitch, and we'll also have a Discord server to provide support, so fear not if you are participating remotely! We also run a separate Beginners' Tournament (with its own prize pool!) for first-time MIT competitors.
How do I get MIT course credit for Battlecode?
In addition to registering here once IAP starts, you must also pre-register for 6.147 through MIT's system. In order to get credit, you must create a player that is able to defeat a dev-created reference player (we promise not to make it too hard to beat).
How do I register for Battlecode?
What is the tournament format?
We will be holding several tournaments throughout the month of January. The penultimate tournament will determine the finalists, who will compete at MIT in the Final Tournament.
What are scrimmages?
A scrimmage is a friendly game between two teams, which you can watch and analyze afterwards. This allows teams to test their strategies against real adversaries. Scrimmaging will be available as soon as Battlecode begins in January 2020.
Help! I have more questions.
Feel free to email us at firstname.lastname@example.org!
Battlecode 2019 had a Sci-Fi theme in which players fought to destroy each other in a great galactic Crusade. The map landscape was scattered impassable terrain, meaning
units had to find their way around. However, all maps were symmetric for fairness.
Players won if they destroyed the opponents' Castles. In the case where both surived longer than a thousand rounds, the winner was decided by whoever had the most Castles, most unit value, or a random number generator (in order of precedence).
Available units included castles, chruches, pilgrims, prophets, and preachers, each of which had a difference purpose. Creating different units and taking different actions consumed one or both of the two resources available on each map: Karbonite and Fuel.
To see the competition site check out Battlecode 2019 (you will need to create a dummy account and form a team to try it out). An explanation of the game specifications can be found here. Our Github repository is open source and you can find it here. Here is an example bot. Many contestants found using this viewer to be helpful.
Below are a couple of post-portems providing a competitors' view of the game:
2019 Postmortem by "NP-cgw" (Finalist), including a good intro to the game
2019 Postmortem by "smite" (1st)
2019 Postmortem by "Big Red Battlecode" (Finalist)
2019 Postmortem by "Oak's Last Disciple"
2019 Postmortem by "Double J" (17th-32nd)
2019 Postmortem by "CitricSky" (3rd)
Battlecode 2018 had a Sci-Fi theme in which players controlled different factions of Earth-inhabiting robots in a fight for supremacy as they colonized Mars to escape a dying Earth.
Players had to wage war in battlefields both on Mars and Earth.
Similarly to many RTS games, players could mine a resource called Karbonite, with which they could build their army.
An army could consist of workers, knights, rangers, healers, and mages, each which had different specialties.
The game specifications can be found here, with language-specific documentation in Python, Java and C. Check out the 2018 Github and scaffold. You may find Max Mann's videos useful as well, particularly his lecture series on how to code a bot for Battlecode 2018 in Python. He provides an installation guide for Battlecode 2018 here. You will also find some tutorials in the Battlecode Youtube channel.
2017 Final Tournament
The object of the game was to either donate to the reforestation fund or destroy the enemy.
2016 Final Tournament
The object of the game was destroy the enemy archons while surviving attacks from zombies.
2015 Final Tournament
The object of the game was destroy the enemy headquarters. Each team has up to six towers on the map, and destroying these towers weakens the enemy.
2014 Final Tournament
The object of the game was to gain milk either by herding cows into pastures or by destroying opponent pastures.
2013 Final Tournament
Compared to previous games, this year's game featured more of an emphasis on economy and macro strategy. The goal was to destroy the other team.
2012 Final Tournament
The object of the game was to build a chain of power nodes from your base to the enemy's base.
2011 Final Tournament
The 2011 game featured robots with modular components. The goal of the game was to destroy the other team. Unfortunately, we don't have a video of the 2011 final tournament.
2010 Final Tournament
The object of the game was to gather points by constructing contiguous blocks of buildings. The area contained within the convex hull formed by the buildings generated points each round. Of course, the other way of winning was to wipe out the other team.
2009 Final Tournament
The object of the game was to gather points by mining resource deposits or wipe out the other team.
2008 Final Tournament
The object of the game was to gain territory by capturing towers.
2007 Final Tournament
The object of the game was to destroy the enemy archons or have the most production at the end of the game.
2006 Final Tournament
Unfortunately, we don't have a video of the 2006 RoboCraft Final Tournament. The 2006 game was a "King of the Hill" game in which the object of the game was to spend more time than your opponents on the hill squares.
2005 Final Tournament
The object of the game was to capture the enemy flag or survive when the walls came pushing in as the game ended. Battlecode was still under the name "RoboCraft".
2003 Final Tournament
The object of the game was to destroy the enemy queen or have a closer unit to your enemy's queen.