MIT's longest-running programming competition
Thanks to everyone who participated in Battlecode 2020.
We look forward to seeing you again in 2021!
What languages are supported?
Battlecode 2020 was built for Java. The plans for 2021 are yet to be announced.
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). The 2020 game involved surviving rising water levels in an increasingly polluted world, while Battlecode 2019 centered around a religiously motivated war. The game is different every year, and is released every year in the beginning of January!
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 on our competition website once IAP (January) 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?
Register at 2021.battlecode.org once January 2021 rolls around. In the meantime, join our mailing list for updates!
What is the tournament format?
We hold 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!
Watch the 2020 Final Tournament!
As we all know, the world is changing. Water levels are rising, pollution is becoming a global problem, and we are rapidly depleting our most valuable natural resource: soup. Game of the 2020 is as much about surviving the changing climate as defeating the enemy team.
Battlecode 2020 is played by controlling robots on a rectangular grid called the map. Two teams of robots, red and blue, roam the map. Every round, each robot will get to take one turn, in spawn order. More on what they can do with that turn later.
Below are a couple of post-portems providing a competitors' view of the game:
2020 Postmortem by "Java Best Waifu" (1st)
2020 Postmortem by "The High Ground" (4th)
2020 Postmortem by "Bowl of Chowder" (5th-6th)
2020 Postmortem by "confused" (HS 2nd)
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.
You can find the source code for Battlecode 2019 on GitHub.
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)
2018 Battlecode: Escape to Mars
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.
Our wonderful sponsors help make Battlecode happen every year!
To find out more about sponsoring Battlecode to recruit from dozens of MIT's brightest coders, email us at email@example.com.