Everything you need to run Battlecode 2018, aside from thousands of hours of spare time and a reasonable amount of cash.
- 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
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.
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.