Competitions · Research and innovation · MIT Battlecode
MIT Battlecode.
You do not play. You write the player - an autonomous Java program commanding an army of robots against someone else’s program. One month, every January, ending in front of a live audience at MIT.
Read this first
High-school teams have their own tournament.
The main qualifying routes are closed to school students, and the one that is open is easy to miss.
The qualifiers are university-only
The US Qualifier requires a team made up entirely of full-time American university students. The International Qualifier requires full-time university students with at least one member from outside the United States.
But the High School Tournament is not
A separate tournament for teams made up entirely of high-school students. This is the route for a school team, and its final is held at the main final.
And anyone can compete unranked
Anyone at all can write a bot, form a team and take part in scrimmages and the rankings. The sprint tournaments early in the month are open to every team without restriction.
So a school team gets three things
Open scrimmages all month, both sprint tournaments, and a high-school tournament of its own. That is a full season.
At a glance
What Battlecode is.
Battlecode is a real-time strategy game for which competitors write an autonomous player. Two teams’ virtual robots fight across a map, managing resources and executing strategies against each other. It is run by MIT students every January and is open to everyone in the world.
- Run by
- MIT students, annually
- When
- The whole of January, with the final at the start of February
- Language
- Java. The autonomous player is written in it
- Team size
- One to four
- Who can enter
- Anyone, for scrimmages, rankings and the sprint tournaments. Later tournaments have their own eligibility rules
- What you learn
- Artificial intelligence, pathfinding, distributed algorithms and inter-robot communication
- The final
- In front of a live audience at MIT
- Prizes
- Cash awards for the leading teams, with t-shirts and other prizes for every finalist. The published total is given two different ways, so confirm the current figure
- For MIT students
- It can be taken for course credit
- Also at the final
- A careers fair alongside the tournament
How the month works
Spec in the first week, final in the last.
Battlecode is a sprint rather than a season, and the shape of it is the same every year.
The software and rules arrive in early January
Teams receive the Battlecode software and the game specification at the start of the month. Nothing about the year’s game can be prepared before that.
Sprint tournament one, a week later
Held roughly a week after the spec is released. Small prizes, but the real purpose is learning the game and testing a prototype bot.
Sprint tournament two, a week after that
A second chance to test, win small prizes and change approach based on what the first one showed.
Then qualifiers and the final
The US and international qualifiers determine which university teams reach the final. The newbie and high-school qualifiers run at the end of the month, and their finals take place at the main final.
The tournaments
Five routes, and each has its own rule.
Knowing which tournaments you are eligible for decides how the month is spent.
| Tournament | Who may enter |
|---|---|
| Sprint tournaments | Every team. No restriction |
| US Qualifier | Teams made up entirely of full-time American university students, or students in transition |
| International Qualifier | Teams made up entirely of full-time or transitioning university students, with at least one member who is not a US student |
| MIT Newbie Tournament | Teams made up entirely of MIT students who have never competed in Battlecode before |
| High School Tournament | Teams made up entirely of high-school students |
| The Final | Teams qualifying through the US or international qualifier. The newbie and high-school finals are held at the same event |
Three conditions must be met by the submission deadline to be eligible for any tournament: a bot uploaded, eligibility correctly declared on the team profile, and a résumé uploaded by every member. The résumé requirement does not apply to the sprint tournaments.
What it teaches
Four things, and none of them is a language.
The organisers name what a competitor learns, and the list explains why the competition has the reputation it has in computing.
Artificial intelligence
Your program plays without you. Every decision a robot makes has to be encoded in advance, which is a different discipline from writing a program that answers a question.
Pathfinding
Robots move across a map with obstacles and opponents. Getting them where they need to be, efficiently, is a classic problem with no single right answer.
Distributed algorithms
An army of robots acting independently toward a shared goal. This is the part closest to real distributed systems work.
And communication
How robots tell each other what they know, within the game’s constraints. Teams that solve this well beat teams with better individual robots.
Preparation
How Hanlin prepares a Battlecode team.
The game changes every year, so nothing about the specific challenge can be prepared. Everything else can.
Java, properly, before January
The player must be written in Java and there is no time to learn it during the month. This is the one prerequisite that cannot be met late.
Studying past games
The mechanics change annually but the underlying problems - pathfinding, resource management, coordination - recur. Reading past specifications and past winning approaches is the most useful autumn work.
Treating the sprints as rehearsals
Sprint one exists to learn the game and test a prototype. A team that skips it arrives at the qualifiers having never played competitively.
And dividing a team of four
Pathfinding, combat logic, resource strategy and communication are separable. Four people each owning one, integrating weekly, gets further in a month than four people editing the same file.
Why Hanlin
Preparation for MIT Battlecode at Hanlin is taught by full-time subject tutors, on a course tier chosen by placement paper rather than by year group.
Programme formats
Five ways this is taught.
Group size is the whole difference between these. It decides how much of the tutor's attention a student gets and how far the course can bend to them, so it is worth choosing rather than accepting.
| Format | Group size | What it suits |
|---|---|---|
| One-to-one | One student | Content, pace and emphasis set by what this student actually needs rather than by a syllabus. The only format that can be rebuilt mid-course. |
| Small group | Three to eight | Opens at three. Frequent discussion, and the tutor can slow down or move on according to what the group has absorbed. Most students chasing a higher award are taught in this one. |
| Class | Eight to twelve | Taught by the subject lead or a medal coach. Less back-and-forth, so it suits a student who will say when something is unclear. |
| Large class | Ten to twenty | For students in the middle of the placement range, and a way to try a competition before committing. Students often move to a small group or to one-to-one afterwards. |
| Past-paper class | No cap | Past papers worked through in sequence in the weeks before the sitting. Free to students already enrolled. |
Course length for MIT Battlecode is set after a placement paper. The gap between where a student is and what the paper asks for is what the course has to close, and that gap is not the same for two students in the same year group.
How it runs
Six steps, four people on your side.
The same process for every student, so that nothing depends on one tutor remembering to do it.
Step 1Pre-course assessment
A placement paper before anything is booked, so the course tier is chosen on evidence rather than on a year group.
Step 2Tutor matching
A subject tutor is matched to the result, and their full background is provided before you agree to it.
Step 3Plan and group
A study group opens with four people on one student: the tutor, a planner, a supervisor and an academic manager.
Step 4Scheduled teaching
The teaching office sets the timetable around the competition date and school term, and teaching begins.
Step 5After-class reports
What was covered, and how the student handled it, reported after every lesson.
Step 6Homework follow-up
The teaching assistant and the form teacher both check that homework is done, which is where most preparation quietly fails.
Free resource pack
Season and build pack
The same material our own MIT Battlecode students work from. Scan the code, say what you need, and an advisor sends it.

Tell an advisor which competition and year group, and the material comes back the same day. Free, and you do not have to enrol in anything. If we do not already hold what you need, we will go and find it.
- PDFPast season materials and game manuals
- PDFThe judging rubric, broken down by what earns each point
- DOCXBuild log and documentation checklist
- PDFEntry checklist and the dates for the current cycle
Teaching team
Who would teach it.
Three of the twenty-two tutors on the published Hanlin roster - the ones whose subject this is.

Dr An
Mathematics at Illinois Urbana-Champaign with highest honours and the Elizabeth R. Bennett scholarship, then a PhD in mathematics at Johns Hopkins on full funding with the Owen fellowship and the Joel Dean award for excellent teaching. Years of US university teaching, translating high-level mathematics into language students can use.

Yu
Master's in bioinformatics and computational biology from UT Dallas and a nutritional sciences degree from Wisconsin-Madison. Second author on an SCI-indexed paper from the Tanumihardjo vitamin-A laboratory, and formerly at ABS Global.

Tan
Master's in data science from the University of Sydney after a statistics degree at Simon Fraser University, graduating in the top 5% with repeated chancellor's honours; A-Levels at a Cambridge international school, and formerly a data analyst at Tencent. An AMC-accredited coach, a College Board-accredited AP teacher, and holder of a Math League excellent-teacher award.
Where it is taught
Hanlin learning centres.
Teaching runs from Hanlin's own centres in Shanghai, Shenzhen, Chengdu and Hangzhou, and online for students elsewhere.







Talk to an advisor
Everything Hanlin does for MIT Battlecode, in one conversation.
Entry, planning, coaching and the past papers. An advisor will tell you which of these a student actually needs, including when the answer is none of them.
Competition entry and planning
Which competitions suit this student, in what order, and by when - then we handle the registration, including the ones that can only be entered through a school or a centre.
Competition coaching
Taught by full-time subject tutors, on a course tier chosen by placement paper rather than by year group.
International curriculum tutoring
IB, AP, A-Level, IGCSE and the US high school curriculum, taught alongside school and timed around the exam calendar.
Competition past papers, free
A large library of past papers, mark schemes and syllabus breakdowns across every competition on this site. No charge and no enrolment.
Scan to add an advisor

Say which competition or course you are asking about. Replies in Chinese or English.
Or call +86 21 6352 6630FAQ
Battlecode, briefly answered.
What students and families ask before entering.
Can a high-school student compete?
Yes. There is a dedicated High School Tournament for teams made up entirely of high-school students, and its final is held at the main final. Any team can also take part in scrimmages, the rankings and both sprint tournaments.
Can a high-school team enter the main qualifiers?
No. The US Qualifier requires full-time American university students and the International Qualifier requires full-time university students with at least one non-US member.
What language do I write in?
Java. The autonomous player is written in Java.
How big is a team?
One to four people.
When does it run?
Through January. The software and game specification are released at the start of the month, two sprint tournaments follow in the following weeks, the qualifiers run at the end of the month, and the final takes place at MIT in front of a live audience.
What do I need to do to be eligible for a tournament?
By the submission deadline: upload a bot, declare your eligibility correctly on your team profile page, and have every member upload a résumé to their profile. The résumé requirement does not apply to sprint tournaments.
What is Battlecode actually like?
A real-time strategy game in which you write the player rather than playing. Your program commands an army of robots that move, fight, manage resources and communicate, against another team’s program.
What will I learn?
Artificial intelligence, pathfinding, distributed algorithms and communication - the four things the organisers name.
What are the prizes?
Cash awards for the leading teams, plus t-shirts and other prizes for every finalist. The published prize pool is stated two different ways, so confirm the current figure with the organisers.
Can I prepare in advance?
Not for the specific game - the specification is only released in January. What can be prepared is Java, and familiarity with past years’ problems, which recur even as the mechanics change.
Related
Other computing competitions.
What students enter alongside Battlecode.
Battlecode enquiries
One month, one language, and a tournament of your own.
The university qualifiers are closed to school students, but the High School Tournament is not - and the sprints are open to everyone. Tell us what the students program in and an advisor will map the autumn Java work and the January month.