Logistics

  • Team size: 1-4 people.
  • Eligibility: Anyone can participate. Only teams of all students are eligible for prizes. Read more here.
  • Dates: Check out the calendar for all important dates (tournament dates and submission deadlines).
  • Finding teammates: Sign up on the forum to meet others looking for teammates. You'll also get a chance to meet students during and after class in January.
  • How to get credit: If you are an MIT student, you can sign up for 6.147 in your IAP registration and sign up on this website. To pass the class, you can pick one of two options: write a strategy report or defeat the reference player. More details are here, and the reference player will be released around the 3rd weekend of Battlecode (look out for an email from us).
  • Lectures: For the first two weeks of IAP (Jan 9-20), we'll have optional lectures from 7pm to 8pm in 1-190. Dinner will be served during each lecture. Videos will be posted online as well. Most years we also livestream the lectures.
  • Tournaments: There will be weekly tournaments starting in the second week. To enter, you just have to upload your bot to this website before the submission deadline. Read more about the tournaments here.
  • Prizes: This year we will be giving out $50,000 in prizes. Top teams in both the main tournament and the Newbie Tournament will earn prizes. There will be other opportunities to win prizes as well, even if you are not a finalist in one of the tournaments. You can see 2016's prizes here.
  • Getting started: The details for this year's Battlecode will be revealed during the first lecture. Afterwards, everything you need to get started will be over at the Specs and Software page. We will also be posting lecture videos that guide you through installing the software, how the game works, and how to create a bot from scratch.

FAQ

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 get you up to speed with lectures on what you need to know. All you need to start is some basic programming experience (like 6.01). For those who are new to Battlecode, we have a separate (MIT-only) Newbie Tournament with its own prize pool.

Is it okay if I don't know Java?

Yes, that's fine. We can point you towards resources for learning Java.

Is it okay if I have no AI background?

That's completely okay. Many competitors have no AI experience coming in.

Is it okay if I don't know what a real-time strategy game is?

That's also completely fine. Many competitors have little to no experience with computer games coming in and it's not a disadvantage.

What is the time commitment for Battlecode?

It takes only about an hour to get a working bot running. The amount of time teams spend on Battlecode varies. Some teams only put in a few hours, while other teams will work through all of January to perfect their bots. Becoming a finalist takes a lot of time and strategic thinking, but you can also compete casually and still have fun.

The competition has already started. Is it too late to join?

Nope! As long as there are tournaments left, you can always make a team and join in, even if it's the last week of Battlecode. Even if you miss a tournament, you can still compete in the rest.

Tell me more about lectures.

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. For those who can't attend the lectures, we post instructional videos on this site and sometimes stream lectures live.

The lectures will start with a tutorial on how to get everything set up, including installing the software and getting version control set up. After that we will guide you through writing a basic bot, and gradually add more features and strategy (pathing, combat, etc.).

Despite what the registrar course description says, it's okay if you miss the first class.

What are scrimmages?

Over the course the the month, teams can challenge each other to 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. There are ranked, automated, and unranked scrimmages. Unranked scrimmages don't count for anything. Ranked scrimmages will affect a team's public ranked scrimmage ranking. If you enable automated matchmaking, the server will automatically enter you in scrimmages with teams of similar skill level. Starting in 2017, automated matchmaking scrimmages are used to determine seeding for some tournaments.

What are the tournaments?

January will feature a few practice tournaments leading up to the final one, as well as a Newbie tournament (MIT-only). Go here to learn more.

Do I need to be registered for the class to participate?

No.

Do I need to be physically at MIT to participate?

Nope! Everything can be done online.

What is the Battlecode IRC channel and how do I use it?

The Battlecode IRC channel is an online chatroom where you can talk to other competitors and the devs. If you have a question, this is the fastest way to get a response. During the competition there are usually a bunch of people here discussing Battlecode or just chatting casually, so feel free to join in!

There are a lot of ways to join the IRC channel. The simplest is to go here. You can also try other clients, such as KiwiIRC. Battlecode's IRC channel is #battlecode on the irc.freenode.net server.

I'm having trouble getting Battlecode to work on my computer!

Make sure to read over the installation instructions. If that doesn't answer your question, also check out the troubleshooting and FAQ forum post. If none of these answer your question, please find us on the Battlecode IRC channel (see previous question), make a post on the forum, or send us an email.

Help! I have more questions.

Feel free to email us at battlecode@mit.edu, ask questions on the forum, or find us on the IRC channel #battlecode at irc.freenode.net.