What is BattleCode?

The 6.370 BattleCode programming competition is a unique challenge that combines battle strategy, software engineering and artificial intelligence. In short, the objective is to write the best player program for the computer game BattleCode.

The BattleCode game in action.

BattleCode, developed for 6.370, is a real-time strategy game. Two teams of robots roam the screen managing resources and attacking each other with different kinds of weapons. However, in BattleCode each robot functions autonomously; under the hood it runs a Java virtual machine loaded up with its team's player program. Robots in the game communicate by radio and must work together to accomplish their goals.

Teams of one to four students enter 6.370 and are given the BattleCode software and a specification of the game rules in early January. Each team develops a player program, which will be run by each of their robots during BattleCode matches. Contestants must master artificial intelligence, pathfinding, distributed algorithms, and network communications to write their player. At the final tournament, the autonomous players are pitted against each other in a dramatic head-to-head tournament. The final rounds of the tournament are played out in front of a live audience, with the top teams receiving cash prizes.

This year we are holding two tournaments. One for MIT students only, during January, and one for anyone who wishes to participate, from early January to late March. For more details on the two tournaments, see our tournaments page.

6.370 is a great opportunity to learn to program or hone your skills further. We provide lectures on relevant topics to the BattleCode competition. While we do not provide extensive resources on basic programming skills, we may be able to point you in the right direction as you supplement your learning with hands on experience in the competition.

Throughout both tournaments, any team can challenge another team to a scrimmage. A scrimmage is a friendly game between two teams. This allows a team to test their strategies against other teams. Teams may also scrimmage "officially" to improve their BattleCode scrimmage ranking (an unofficial rating of who has the strongest players).