MCPcopy Index your code
hub / github.com/battlecode/battlecode-2018

github.com/battlecode/battlecode-2018 @1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.2.0 ↗ · + Follow
821 symbols 2,491 edges 57 files 417 documented · 51%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.

Core symbols most depended-on inside this repo

method
called by 168
bindings/frankenswig/enums.py
clone
called by 109
bindings/frankenswig/struct.py
create_unit
called by 77
battlecode-engine/src/world.rs
result
called by 74
bindings/frankenswig/type.py
format
called by 51
bindings/frankenswig/__init__.py
my_unit
called by 50
battlecode-engine/src/world.rs
location
called by 47
battlecode-engine/src/unit.rs
add
called by 37
battlecode-engine/src/location.rs

Shape

Method 571
Function 174
Class 65
Enum 11

Languages

Rust67%
Python31%
Java1%
C1%

Modules by API surface

battlecode-engine/src/world.rs183 symbols
battlecode-engine/src/unit.rs109 symbols
battlecode-engine/src/controller/mod.rs101 symbols
battlecode-engine/src/location.rs39 symbols
bindings/frankenswig/type.py36 symbols
battlecode-manager/server.py29 symbols
battlecode-engine/src/map/mod.rs29 symbols
bindings/frankenswig/struct.py24 symbols
bindings/frankenswig/enums.py24 symbols
battlecode-engine/src/research.rs23 symbols
bindings/frankenswig/__init__.py15 symbols
scripts/tournament_single_elim.py14 symbols

For agents

$ claude mcp add battlecode-2018 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact