For our first project we’ll be taking a crack at Battlecode, specifically the 2023 Variation. Battlecode is an annual programming tournament hosted by MIT. Teams program software bots to compete 1-on-1 against other teams. Each year a new game is developed. We’ll be doing our own little tournament locally.

Getting Started

To get going you’ll need to setup a working development environment and a GitHub repository through which your team can collaborate

  1. Development Environment: One of the trickiest parts of doing a BattleCode project can be getting the development environment setup. The code is done in Java and requires the much aged Java 8. Follow along with the getting started instructions on the BattleCode site and have patience with yourself as you get moving. Find your classmates that are running the same OS as you and work through bugs with them. When it comes time to setup your Battlecode repository, you should go ahead and fork the class repo sent via email rather than use the scaffold linked in the getting started guide.
  2. Team Repo: Once everyone on your team has a working development environment, pick one team member’s fork of the class repo to act as the team repo and invite the remaining team members as collaborators with at least Write level access.

At this point everyone on the team should be able to make local copies of the team repo and you’re ready to start developing your bot.

Projecting with Battlecode

The key to your success and continued sanity is to make small, incremental changes. In the context of this game, that means starting with the given example bot and repeating the following process:

  1. Create a new bot that is based on an existing bot but includes some changes or improvements.
  2. Play your new bot against one or more old bots in order to test your design.
  3. Based on your tests, identify a new change or improvement to make. Go back to step 1.

You really cannot think too small with each successive change. Have a vision for how that change will help your team win, but don’t worry if each individual change is just a tiny step towards that goal.

MIT Battlecode 2023 Lecture Videos

At MIT, Battlecode is run as course. It begins with a series of lectures designed for people new to Battlecode but with some prior programming experience. In short, you! The lectures are posted on YouTube. You are encouraged to check them out and at least use them as resource. If you follow all of these lectures, you’ll end up incrementally developing a pretty solid, all around bot. You can also cherry pick parts as desired.

Intro: 2023 Game Overview
Lecture 2: Getting Started
Lecture 3: Intro to Git
Lecture 4: Intro to Bot Making
Lecture 5: Communication and Pathfinding

The code for the player developed in their lectures can also be found in this GitHub repository

Project Deadlines

Below is the calendar for daily goals and activities as well as important due dates. Checkpoint requirements can be found after the calendar.

Date   Goal or Task
1/19   Form teams. Setup communications plan. Setup team repo.
Explore game rules. Look at Code. Set Goals for Checkpoint 1