Skip to content

battlecode/battlecode-2018

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Battlecode 2018 Build StatusCoverage

Everything you need to run Battlecode 2018, aside from thousands of hours of spare time and a reasonable amount of cash.

Layout

  • battlecode-engine: The core engine component.
  • battlecode-manager: What runs matches, either as a CLI or in the cloud
  • bindings: An elegant monstrosity, more details in /bindings/README.md
  • battlecode-sandbox: The environment in which player code is executed.
  • battlecode-maps: Map files for battlecode 2018
  • examplefuncsplayer-*: examplefuncsplayers.
  • examplefuncsplayer-*-old: examplefuncsplayers from initial release; kept around so we can monitor backwards compatibility.
  • all the junk in this folder: it's necessary, I promise

Building

You'll need:

  • Rust and cargo 1.22.0
  • Java 8
  • SWIG 3.0
  • docker
  • python 3
    • cffi
    • eel
    • tqdm
    • werkzeug
    • ujson
    • psutil
    • docker
    • boto3
  • gcc

To build the engine and bindings, run make. (You should also run make clean as a first step if you get strange errors.) You can then run ./start_nodocker.sh (or battlecode.sh) to run without docker. You can also use make release to build in release mode (slower build, faster execution).

On windows, use build.bat, build-release.bat, and start_nodocker.bat / battlecode.bat. You'll need the same dependencies, but Visual Studio CE 2017 instead of gcc.

Releasing

Clone the bc18-scaffold repo into this repo. On windows, run build-release.bat, copy-artifacts.bat, then cd into bc18-scaffold, create a new branch with the name of the release, commit the new binaries (lol) and push it. On mac os x, edit make-release.sh with the name of the release, run ./make-release.sh, and follow the instructions.