Welcome to Battlecode, MIT's premier programming competition! Battlecode is a unique challenge that combines battle strategy, software engineering and artificial intelligence. Form a team of one to four, then compete for a chance at $50,000 in prizes! Anyone can participate, from beginners to experts, and enrollment at MIT is not necessary.
The 2019 competition Battlecode: Crusade has ended. Thank you to everyone who participated, sponsored, or helped in any way — we all had a lot of fun! Fill out this form to get notified about the next Battlecode competition, held in January 2020.
What is Battlecode?
Battlecode is a real-time strategy game, for which you will write an AI player. In Battlecode, two teams of
virtual robots roam the screen managing resources and executing different offensive strategies against each
other. Your AI player will need to strategically manage your robot army and control how your robots work
together to defeat the enemy team. As a contestant, you will learn to use artificial intelligence,
pathfinding, distributed algorithms, and network communications to make your player as competitive as possible.
Teams are given the Battlecode software and a specification of the game rules in early January. Throughout the month, you will refine your player, and compete in scrimmages and tournaments against other teams. During these tournaments, the autonomous players are pitted against each other in a dramatic head-to-head fashion. At the end of the month, the Final Tournament is played out in front of a live audience at MIT, with the top teams receiving cash prizes. The total prize pool is over $50,000.
Still not convinced? Check out the video below for a quick overview of Battlecode!
Battlecode in the Media
Battlecode is a well-known competition, even outside of MIT. Check out the links below to see some of the discussions that developers, contestants, and sponsors of Battlecode have had online.2019 Postmortem by "NP-cgw" (Finalist)
Reddit AMA, by the Battlecode Dev Team
Blog Post by Cory Li, former Battlecode director and winner
2016 Postmortem by "future perfect" (1st)
This competition is run by a bunch of MIT students. Contact us at email@example.com.
- Team size: 1-4 people.
- Eligibility: Anyone is welcome to participate in Battlecode! However, we can only consider teams of all full-time students to be eligible for the final tournaments. Note that non-MIT students (and high school students) are eligible too. Check out tournaments for more information.
- Schedule: Battlecode 2019 began on Monday, January 7th, and concluded with the Final Tournament on Saturday, February 2nd. Lectures were held throughout the first two weeks at 7pm. We also saved the Twitch livestreams and uploaded them as videos. Check out the schedule for more information!
- Location: For those present at MIT, lectures were held in 32-123 (free food!). Note that these were also streamed on Twitch. The Final Tournament was held in Stata.
- Prizes: $50,000+ in cash.
- What languages are supported?
- So Battlecode is a game AI competition? But what's the game?
We can't tell you yet, and we won't reveal next year's game until Battlecode 2020 kicks off next year. The game changes every year, and part of the fun of Battlecode is in not knowing what you're gonna get :). However, we can tell you that the game tends to be a turn-based strategy game, and robots need to demonstrate a mastery of both broad resource management (macro), and organized, efficient combat tactics (micro).
- Wait, AI as in machine learning and neural nets?
No, the AI we are talking about has more or less nothing to do with machine learning and neural nets. Rather, Battlecode is about coming up with strategies for 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). Note that you are writing code before the actual game is run, which means that what you are doing is equipping your robots with the capability to make these strategic decisions on their own in real-time — hence the term artificial intelligence. While there is nothing stopping you from using machine learning, it will unlikely be a good strategy, since computing power is limited and the game is a highly complex environment.
- Do I have to be good at programming?
Experience definitely helps, but everyone has to start somewhere. A background in algorithms and AI is not necessary. We'll be available throughout January to help you out as needed through our lecture series on Twitch and on the Discord. If you have little or no experience in programming, then we encourage you to consider Battlecode as a fun, engaging project through which you will pick up the skills you need to write programs!
- Is it okay if I have no AI background?
That's completely okay. Many competitors have no AI experience coming in. We will be holding daily lectures through January, which will cover various topics in game AI, such as pathfinding, resource management, and combat tactics (micro). These lectures will be streamed and uploaded online, so fear not if you are participating remotely!
- 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. In parallel to this series of tournaments (the "main" event), we will also be holding a Newbie Tournament open to MIT students who have not previously competed in Battlecode, as well as a High School Tournmanet open to both US and International middle/high school students.
- What are scrimmages?
A scrimmage is a friendly game between two teams, and you can watch and analyze the games afterwards. This allows a team to test their strategies against other teams. Scrimmaging will be available as soon as Battlecode begins.
- Do I need to be physically at MIT to participate?
This is not necessary! In fact, you do not even need to be an MIT student!
- How do I register for Battlecode?
Unlike previous years, registration will not open until January 7th at 7PM EST. At that time, there will be a big shiny button on our homepage to register.
- I'm an MIT student. How do I get course credit for Battlecode?
Battlecode is an official 6-unit MIT course, with the course number 6.147. In addition to registering on this site once IAP starts, you must also register for 6.147 through MIT's system. At that point, in order to get credit, you must create a player that is able to beat a reference player that we will release later in the tournament.
- Help! I have more questions.
Feel free to email us at firstname.lastname@example.org!
Battlecode 2019 commenced on Monday, January 7th, at 7pm ET.
Lectures were held at 7pm in 32-123 for the first two weeks of the competition. Competitors learned about an assortment of topics in game AI. Attendance was not mandatory.
The following tournament schedule pertains to Battlecode 2019, but expect a similar schedule for 2020. The submission deadline for all tournaments, except the Newbie, High School, and Final Tournaments, was at 8pm EST the night before the tournament. Unlike in past years, finalists for these tournaments were able to submit code after the Qualifying Tournament, up until Wednesday, January 31st at 8pm.
- Wednesday, January 16th - Sprint Tournament
- Monday, January 21nd - Seeding Tournament
- Saturday, January 26th - International Qualifying Tournament
- Monday, January 28th - US Qualifying Tournament
- Wednesday, January 30st - Final Tournament submission deadline @ 8pm
- Friday, February 1st - Finalist’s Celebration
- Saturday, February 2nd - Newbie, High School, and Final Tournaments
The Final Tournament occurred on Saturday, February 2nd. Doors open at 6PM in MIT's Stata Center. The competition and stream began at 7PM.
Code of Conduct
Maintaining a safe and inclusive environment for competitors is a top priority for Battlecode. Battlecode strictly follows MIT's Policies on responsible and ethical conduct. If someone makes you or anyone else feel unsafe or unwelcome, please report it to Teh Devs as soon as possible. Harassment and other code of conduct violations reduce the value of the competition for everyone. People like you make our community a better place, and we want you to be happy here.
- Harrassment: Battlecode is dedicated to providing a harassment-free experience for everyone, regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, age, religion, or nationality. We do not tolerate harassment of competitors in any form.
- Bug Exploitation: Battlecode is a rapidly-growing competition with many infrastructural challenges. Let us know as soon as possible upon discovery of a potential security issue. Knowingly exposing vulnerabilities to the public as anything more than a minimal proof of concept is not allowed. Intentionally exploiting bugs that compromise the fairness of scrimmages and tournaments, or the security of the competition, is not tolerated.
- Academic Misconduct: Academic misconduct is conduct by which a person misrepresents their academic accomplishments, or impedes others' opportunities of being judged fairly for their academic work. This includes but is not limited to plagiarism and knowingly allowing another person to represent your work as their own.
If you find that your behavior questionably follows these guidelines, please reconsider your actions. Competitors violating these rules may be banned from current and/or future Battlecode competitions at the discretion of Teh Devs.
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 "Justice of The War" (Finalist)
2019 Postmortem by "smite" (1st)
2019 Postmortem by "Big Red Battlecode" (Finalist)
2019 Postmortem by "Oak's Last Disciple"
2019 Postmortem by "Double J" (Finalist)
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. Earth maps were always symmetric for fairness, but not necessarily Mars, as the red planet hadn't been fully explored yet.
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 winner was whoever was left alive (eliminated the opponent), or in the case of both teams surviving, the victor was chosen by whoever had the highest combined value of all living units, most Karbonite, or a random number generator if necessary, in that order of precedence.
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.
Battlecode 2019 consisted of 6 tournaments: the Sprint Tournament, the Seeding Tournament, the US Qualifying Tournament, the International Qualifying Tournament, the Newbie Tournament, the High School Tournament, and the Final Tournament. We stream and commentate all tournaments online.
- Sprint Tournament: One week after spec release, you're given a chance to win small prizes in this tournament. The goal is to get an idea of the meta-game, and a chance to test your bot prototypes.
- Seeding Tournament: One week after the Sprint Tournament, this tournament determines your positioning in the Qualifying Tournament.
- US and International Qualifying Tournaments: This year, to allow adequate time for international finalists to plan travel to the US for the Final Tournament, there will be separate qualifying tournaments for US and international teams. These tournaments determine the contestants going into the Final Tournament, and showcase the final strategies of all the competitors. The top 12 teams from the US Qualifying Tournament and the top 4 teams from the International Qualifying Tournament will qualify for the Final Tournament.
- Newbie Tournament: As part of the Final Tournament, the top MIT newbie teams compete for a prize.
- High School Tournament: Starting in 2017, the top high school teams also compete for a prize.
- Final Tournament: At the end of IAP, the top teams compete for glory and fame live in MIT's Stata Center.
Teams must consist entirely of active students to be eligible for the Seeding, Qualifying, and Final
Tournaments. An active student is a person who is currently enrolled as a full-time student in an eligible
degree or certificate program. As an exception, we consider those transitioning immediately after high school
and formally committed to such a program to be active students, including those taking gap years or in
compulsory military service.
Active students also include those who are currently in high school (or some equivalent of secondary education or lower). Active MIT students who have never competed in Battlecode before (submitted a bot) are eligible for the Newbie Tournament. U.S. high school students and earlier are eligible for the High School Tournament.
Teams consisting entirely of US students compete in the US Qualifying Tournament. If your team has at least one non-US competitor, your team will compete in the International Qualifying Tournament. A US student is a student who attends a school in the United States.
If your team does not consist of active students, you may still compete in Battlecode for fun! All teams are allowed to scrimmage, and compete in the Sprint Tournament or any other bonus tournaments we may decide to hold. Contact us if you are unsure of your eligibility.
Dates & Deadlines
See the schedule for all the important dates. The submission deadline for all tournaments, except the Newbie,
High School, and Final Tournaments, will be at 8pm EST the night before the tournament. Unlike in past years,
finalists for these tournaments will be able to submit code after the Qualifying Tournament, up until Wednesday,
January 31st at 8pm.
Even if you miss earlier tournaments, you can participate in later tournaments (except the Final Tournament). This includes the Qualifying Tournament - you can participate even if you miss every other tournament.
Scrimmage rankings will be used to determine seeds for the Sprint and Seeding Tournaments. For all other
tournaments, results from the previous tournament will be used to seed teams.
Tournaments will be in a double elimination format, with the exception of the Sprint Tournament, which is single elimination. The Final Tournament will start with a blank slate (any losses from the Qualifying Tournament are reset).
Each match within a tournament will consist of 3 games on 3 different maps, and the team that wins the most games will advance.
Results and Livestreams
Videos of Battlecode Tournaments
2019 MIT Final Tournament
The object of the game was to destroy the Castles of the opposing Martian group.
2018 MIT Final Tournament
The object of the game was to escape to Mars before the Great Flood on Earth.
2017 MIT Final Tournament
The object of the game was to either donate to the reforestation fund or destroy the enemy.
2016 MIT Final Tournament
The object of the game was destroy the enemy archons while surviving attacks from zombies.
2015 MIT 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 MIT Final Tournament
The object of the game was to gain milk either by herding cows into pastures or by destroying opponent pastures.
2013 MIT 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 MIT Final Tournament
The object of the game was to build a chain of power nodes from your base to the enemy's base.
2011 MIT 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 MIT 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 MIT Final Tournament
The object of the game was to gather points by mining resource deposits or wipe out the other team.
2008 MIT Final Tournament
The object of the game was to gain territory by capturing towers.
2007 MIT 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 MIT 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 MIT 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 MIT Final Tournament
The object of the game was to destroy the enemy queen or have a closer unit to your enemy's queen.
Battlecode Hall of Fame
|2019||smite||Vivek Myers, Nikhil Sardana, Mihir Patel, Vinjai Vale|
|2018||Orbitary Graph||Aron Granberg, Simon Lindholm, Mårten Wiman|
|2017||Arbitrary Graph Restoration Fund||Aron Granberg, Simon Lindholm, Johan Sannemo, Mårten Wiman|
|2016||future perfect||Luchang Jin, Greg McGlynn|
|2015||the other team||Greg McGlynn|
|2014||that one team||Greg McGlynn|
|2013||Teh Nubs||Tommy Liu, Xinran Liu, Albert Wu|
|2012||fun gamers||Yanping Chen, Cory Li, Haitao Mao, Justin Venezuela|
|2011||Gunface||Steven Arcangeli, Adrian Mullings, Benjamin Peters, Jelle van den Hooff|
|2010||My Archon Died BellmanFording the Stream||Steven Bartel, David Chen, Curtis Liu, Spenser Skates|
|2009||gtg ice skating lessons||Steven Bartel, Randall Shults, Spenser Skates, Karen Sun|
|2008||In Memory of James Albrecht||Dan Gulotta, Hyun Soo Kim, Albert Ni, Yufei Zhao|
|2007||My Other Programming Language is Scheme||Dany Qumsiyeh, Mark Tobenkin|
|2006||Mortar Kombat||Jasper Lin|
|2005||CDG||Clifford Frey, James Roewe|
|2004||java_lang_String||Joshua Marron, Dmitriy Rogozhnikov|
|2003||Hyperbola||David Greenspan, Aaron Iba|
|2002||Sons of Scion||Ilya Baran, Edward Kogan, Dmitriy Rogozhnikov|
The Newbie division is for MIT students who are participating in Battlecode for the first time.
|2018||StarMarket is Moving to Mars||Yong Hui Lim, Yogeshwar Velingker, Christopher Xu, Calvin Yost-Wolff n|
|2015||Team2||Julian Contreras, Alex Markovits, Andrew Mikofalvy|
|2014||1260/3||Matthew Chang, Xinyu Liang, Lawrence Wu, Leon Zhou|
|2013||Teh Nubs||Tommy Liu, Xinran Liu, Albert Wu|
|2012||lowercase letters||Tim Kaler|
High School Tournament
New in 2017, the High School division is for high school students.
|2019||Knights of Cowmelot||Lawrence Chen, Walden Yan, Benjamin Qi, Chris Pan|
|2018||howrusogood??||Lawrence Chen, Benjamin Qi, Richard Qi, Franklyn Wang|
Battlecode held an open tournament in the spring from 2008-2011. From 2012-2017, non-MIT teams were allowed to compete in the main tournament in the winter. In 2008 only, the top 16 teams from the MIT tourmanent were not eligible for the open tournament. In 2018, the Open Tournament was run after the IAP tournament and included any team with a submission.
|2018||Orbitary Graph||Aron Granberg, Simon Lindholm, Mårten Wiman|
|2011||Team 8||Tom Morgan|
|2010||My Archon Died BellmanFording the Stream||Steven Bartel, David Chen, Curtis Liu, Spenser Skates|
|2009||I for one welcome our new team 207 overlords||Dan Gulotta, Yufei Zhao|
|2008||Donner Party of 5||Asilata Bapat, Anand Deopurkar, Eric Liu, Vinayak Ranade|
Battlehack is an Battlecode hackathon, where contestants have only 24 hours to complete their bots. First ran in November 2017, Battlehacks feature their own games with experimental rulesets.
|2019 MIT||Water Buffalo||Alexander Katz|
|2018 West||Ivanteam||Ivan Belonogov|
|2017 MIT||Not a Hivemind||Skye Thompson, Cel Skeggs, Joseph Jerkins, Alexander Lam|
The D.E. Shaw Group
Headquartered in New York City, the D. E. Shaw group is a global investment and technology development firm, founded in 1988, with offices around the world. While we’re known as a pioneer in quantitative investing, we also have considerable expertise in areas that involve fundamental analysis or portfolio manager discretion. Our firm has earned an international reputation for successful investing based on innovation, careful risk management, and the quality and depth of our research and staff. With a culture that combines some of the best aspects of academia, finance, and technology, we pride ourselves on a work environment that promotes collaboration, integrity, and a precise approach to solving problems.
Our staff includes world-class mathematicians, physicists, computer scientists, analysts, business-builders, and system architects relying on specialized trading, operational, and compliance expertise developed over 30 years. Our teams work in close collaboration—not in competitive silos—to share trade ideas, manage risks, streamline processes, and explore new opportunities.
Outside of the office, we have wide-ranging personal interests that we pursue as entrepreneurs, patent holders, competitive sailors, marathoners, professional opera singers, board members of nonprofit organizations, and champion bridge players, to name a few. The firm is committed to the well-being and happiness of our employees and recognizes that different people thrive in different types of environments: Some are most productive working in t-shirts or listening to music, while others need time away from the office to recharge after a challenging project. We also have pantries stocked with snacks and games, an on-site gym, guest speakers from a range of disciplines, volunteer and public service opportunities, museum memberships, and social events.
Hudson River Trading
Hudson River Trading brings a scientific approach to trading financial products. We have built one of the world's most sophisticated computing environments for research and development. Our researchers are at the forefront of innovation in the world of algorithmic trading.
At Oracle, we’ve revolutionized the tech industry by doing things no other company has done before. With hundreds of thousands of customers around the globe, our solutions are being used by businesses ranging from startups to the Fortune 100, from grade schools to graduate schools, and from counties to countries.
There is no other company like IBM and there is no business professional like the IBMer. We are experts in nearly every technical scientific and business field. We are citizens of, and apply our expertise in, more than 170 countries. Yet we are united by a single purpose: to be essential. We do that by creating the most advanced technology to change how our clients work and run their businesses.
And through them, IBMers change how the world works. The world is at a major turning point: technology is enabling entirely new forms of business operations, business models, industries and outcomes. We have exponentially more power to reach the full potential of our life’s work than any humans before us.
Explore the different entry-level, intern, co-op and graduate career paths available to you at IBM and apply today.
At DRW, we identify and capture trading and investment opportunities globally. What sets us apart is our diversified approach—trading across many asset classes and instruments, in markets around the world. We succeed by leveraging technology, research and risk management.
We offer the best of both worlds: the opportunity and spirit of a startup and the benefits and stability of an established, experienced firm. It’s a place of high expectations, deep curiosity, with some of the smartest, most passionate people you’ll meet. We’re always looking for tenacious problem solvers to join our team as software engineers, traders, researchers and more.
The Walt Disney Company
The mission of The Walt Disney Company is to be one of the world’s leading producers and providers of entertainment and information. Using our portfolio of brands to differentiate our content, services and consumer products, we seek to develop the most creative, innovative and profitable entertainment experiences and related products in the world.
Dollar Shave Club
The word vatic means “to describe or predict” what will happen in the future, and that’s exactly what we do. Vatic Labs is a global liquidity provider, where traders, AI researchers, and technologists collaborate to develop autonomous trading agents and cutting edge technology. We build systems that boost market efficiency and transparency.
Vatic Labs is always looking for incredible talent. We seek smart, passionate, and driven people, who have demonstrated a commitment to achieving exceptional results.
We encourage our team to collaborate with their colleagues to stretch themselves to achieve more. While working at Vatic Labs, you will learn from researchers and engineers who have earned doctorates from leading universities and have made significant contributions to their field of study. Come join our team!
Why Sponsor Battlecode?
Ever wanted a way to filter through job applicants, and find only the best recruits? The Battlecode competition is just that. Because it attracts the "best of the best," Battlecode provides targeted results in three key areas:
- Recruiting: Sponsoring Battlecode is more than just having your name on a banner - Battlecode gives select companies unprecedented access to meet and recruit the cream of the crop of MIT programmers, both graduate and undergraduate. Representatives from sponsor companies will be invited to the Finalists' Celebration, a networking event where they will get to meet the top contestants personally. In addition, a book of the contestants' resumes will be collected and made available to sponsors.
- Exposure: Battlecode is a prestigious competition that is well-known throughout the entire MIT community. Sponsors will have their logos displayed on our high-traffic web site and wherever Battlecode is advertised. Sponsors will also help award prizes and address the crowd at the final tournament.
- Involvement: Sponsors will get to help make Battlecode a fun and rewarding experience. They will have access to the source code of all entries and be involved in the judging and awarding of academic prizes.
For more information about the sponsorship experience, including pricing, email us at email@example.com.