Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.battlecode.cam/llms.txt

Use this file to discover all available pages before exploring further.

Log in

Before submitting, authenticate the CLI with your platform account:
cambc login
This opens a browser window to complete the OAuth flow. Your session persists until it expires or you run cambc logout.

Via CLI

cambc submit ./my_bot/
If you pass a directory, the CLI auto-zips it. You can also submit a zip file directly.

Via the platform

  1. Go to game.battlecode.cam
  2. Navigate to Submissions in the sidebar
  3. Upload your bot zip

Bot requirements

Your submission must contain a main.py file with a Player class. The file can be at the root of the zip or inside a single top-level directory.
ConstraintLimit
Zip size5 MB max
Decompressed size50 MB max
File count500 files max
Native extensionsNot allowed (.so, .pyd, .dylib, .dll)
ImportsMust be top-level (file I/O is blocked during run())
All imports must happen at the top of your file, not inside run(). The sandbox blocks file reads during gameplay for security.

What happens after upload

  1. Your zip is validated (structure, size, no native extensions)
  2. Status is set to ready
  3. Your latest ready submission becomes your active bot on the ladder (you can also manually select which submission is active from the Submissions page)
  4. The scheduler pairs you against other teams every 10 minutes

Ladder

The ladder ranks all teams by Elo rating. Every 10 minutes, the scheduler creates one match per team, pairing you with a nearby-rated opponent using greedy nearest-rating matching with small random jitter. Each match consists of 5 games — the team that wins more games wins the match. Ratings update immediately after each match. See How matches work for details.
Use cambc match test to test your bot with full time limits on the same hardware as the ladder before submitting. Use cambc match unrated to challenge specific teams without affecting your rating.