The battlecode programming competition

Bachelor's degree

In Maynard (USA)

Price on request

Description

  • Type

    Bachelor's degree

  • Location

    Maynard (USA)

  • Start date

    Different dates available

This course is conducted as an artificial intelligence programming contest in Java. Students work in teams to program virtual robots to play Battlecode, a real-time strategy game. Optional lectures are provided on topics and programming practices relevant to the game, and students learn and improve their programming skills experientially. The competition culminates in a live Battlecode tournament.

Facilities

Location

Start date

Maynard (USA)
See map
02139

Start date

Different dates availableEnrolment now open

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Play
  • Programming
  • Team Training
  • Java
  • Artificial Intelligence

Course programme

Optional Lectures: 1 session / day, 1 hour / session for the first half of IAP


Optional Lab Hours: 1 session / day, 1 hour / session for the first half of IAP


The 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.


Battlecode, developed for this course, 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 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 often use artificial intelligence, pathfinding, distributed algorithms, and/or network communications to write their player. At the final tournament that takes place at the end of January, the autonomous players are pitted against each other in a dramatic head-to-head tournament in front of a live audience.


This course is a great opportunity to learn to program or hone your skills further. We provide lectures on relevant topics to the Battlecode competition. The optional lecture series is intended for beginners and mid-level competitors to learn how to get started writing a bot and to learn about some techniques employed by more advanced players. 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.


To compete, individuals must sign up through the Battlecode website, be on a team (even if it consists of only one person), and upload his/her resume. Non-MIT students are welcome to participate, but you must be a current MIT student to be eligible for prizes and competing in the final tournament.


Teams must have one to four people, but can be a mix of MIT and non-MIT students.


Experience in programming definitely helps in the competition, but everyone has to start somewhere. The supported programming languages are Java and Scala.


MIT students are able to receive six units of credit for this course if the following requirements are met:


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 those of other teams. Teams may also challenge each other to ranked matches to improve their Battlecode scrimmage ranking.


During the actual competition, top teams from the newbie tournament and final tournament are awarded cash prizes. Smaller prizes are also awarded to top teams in other tournaments. There are five tournaments: the sprint, seeding, qualifying, final, and newbie tournaments.


The sprint tournament is a single-elimination tournament. One week after spec release, teams are 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 bot prototypes. Contestants are seeded based on scrimmage ranking, and play continues until there is only one undefeated team.


The seeding tournament is a double-elimination tournament that takes place one week after the sprint tournament. Contestants are seeded based on scrimmage ranking, and play continues until there is only one undefeated team. The results of this tournament are used to determine seeds for the qualifying and newbie tournaments. Teams are ranked by the following criteria, in order:


The qualifying tournament is a double-elimination tournament that takes place one week after the seeding tournament. This tournament determines the teams going into the final tournament, and showcases the final strategies of all the competitors. Final submissions must be in by this tournament. Play continues until there are eight teams remaining. These teams move on to the final tournament. Teams are seeded for the final tournament as follows:


The final tournament is another double-elimination tournament. The final tournament starts with a blank slate (i.e., any losses in the qualifying tournament are erased). The top teams compete for glory and fame!


The newbie tournament will run concurrently with the qualifying tournament. All teams consisting entirely of MIT students who have not participated in Battlecode before will automatically be entered into the newbie tournament in addition to the other tournaments.


Don't show me this again


This is one of over 2,200 courses on OCW. Find materials for this course in the pages linked along the left.


MIT OpenCourseWare is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.


No enrollment or registration. Freely browse and use OCW materials at your own pace. There's no signup, and no start or end dates.


Knowledge is your reward. Use OCW to guide your own life-long learning, or to teach others. We don't offer credit or certification for using OCW.


Made for sharing. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)


Learn more at Get Started with MIT OpenCourseWare


The battlecode programming competition

Price on request