What is Battlecode?
Battlecode is a real-time strategy game in which you will write code for an autonomous player. Your player will need to strategically manage a 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 communications to make your player as competitive as possible. However, you only have limited computation allocated per turn, so you must strategize, optimize, and compromise accordingly!
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 and streamed to the internet, with the top teams receiving cash prizes. The total prize pool is over $15,000 and all Final Tournament attendees receive t-shirts and other swag.
MIT Class Credit
If you are a MIT student, we offer an IAP class where you can get credit for Battlecode! Our official MIT course number is 6.9610. Register for the class by IAP to receive 6 units of credit for participating in Battlecode!
Eligibility
*Anyone* can write a bot, create a team, and participate in scrimmage matches/rankings. The Sprint Tournaments are open to everyone, but the other tournaments have stricter eligibility rules.
Your team must meet all three conditions by a tournament’s submission deadline to be eligible for it:
- Have uploaded a bot
- Have correctly indicated your eligibility on your Team Profile page
- Have all members upload a resume, at your personal profile page. (This condition does not apply to the Sprint Tournaments).
Tournament specific eligibility is listed below:
- Sprint Tournaments: All teams are eligible.
- US Qualifier: Teams must consist entirely of US college students studying full-time, or in a transition phase.
- International Qualifier: Teams must consist entirely of college students studying full-time, or in a transition phase, where at least one team member is not a US student.
- MIT Newbie Tournament: Teams must consist entirely of MIT students who have never competed in Battlecode before.
- High School Tournament: Teams must consist entirely of high school students.
- Final Tournament: Teams must have qualified via the US or International Qualifier. The final match of the Newbie and High School tournaments will also be played at the final tournament.
Contact us on Discord or at battlecode@mit.edu if you are unsure of your eligibility.
FAQ
What languages are supported?
Battlecode 2025 will be built for Java. We use Java because it is fairly ubiquitous, and it enables our engine to accurately track how much computation a competitor is using during their turn rather than relying on other metrics such as time to enforce limits. Anyone is allowed to write and submit bots in Java.
For Battlecode 2025 specifically, our team has developed an experimental Python version of the game which will be available to MIT competitors only, at least for this year. Unfortunately, Java and Python competitors will not be able to cross-play against each other. More details coming soon.
Wait, AI as in machine learning?
Machine learning has not historically been used in Battlecode, since computation is limited and the game is a highly complex environment. Rather, Battlecode is about more traditional AI involving 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). However, we’d be thrilled and excited to see a successful implementation of machine learning in Battlecode!
Do I have to be good at programming?
Actually, Battlecode makes a great first dive into programming! We’ll be holding daily lectures for the first two weeks of January to cover the basic skills needed to play the game. The lectures will be streamed and uploaded on YouTube, 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.
What is the tournament format?
We hold several tournaments throughout the month of January. The penultimate qualifier tournaments will determine the finalists, who will compete at MIT in the Final Tournament. The sprint tournaments are typically single-elimination style, while the qualifier and final tournaments are typically double-elimination. Your seed in the tournament brackets are determined by your scrimmage rating.
What is considered a ‘transition phase’?
We consider a ‘transition phase’ to be a period of time where your college enrollment is just beginning, ending, or recently on hold. This usually means right before your first semester of college, after your last semester, or during the start/end of a recent gap. Typically, we require proof of recent enrollment for the qualifier tournaments. Please reach out to us if you are concerned about your eligibility.