You submit a zip file containing your
MyBot file and any other files needed to compile and run your
Instead of packaging up your dependencies inside your zip file, you may include a bash file named
install.sh that will be run before your bot is compiled.
It will be run with internet access and write access to only its current directory. It may run for a maximum of 10 minutes and will not be able to make global installation changes (i.e.
apt-get will not work).
The following package managers are already installed on the server and can be used to install dependencies locally:
curl is also available and can be used to download additional runtimes, tools, and environments.
If your library isn't on a package manager that supports local installation and you can’t download it with
curl, you are going to have to compile it on our game servers. Include the source of you library in your bot's zip file and put compilation instructions in the
For convenience's sake, we include
keras (using a
h5py on our game servers. Just import these libraries from your python files like normal!
Bot compilation is done using this autocompile script. Many languages will be properly autodetected and compiled if needed without the need for an
Your main file must be called
MyBot. Your language is recognized using the file extension of your
MyBot file. The appropriate file extensions for each language are:
.rs(for your Rust source)
See the Game Server Reference for details about compiler and runtime versions.
If you are using a language that is generic or that does not have first class support on the server, you can include a file named
LANGUAGE containing the name of the language you are using. This will be used only for display on the rankings and in your profile.
For JVM languages, you can submit a jar file inside of your zip file instead of source files. The jar will be executed
java -jar MyBot.jar so you need to define a Main-Class header in the manifest.
You may supply a
run.sh script to control how your bot is run. Many languages will be properly autodetected and run without the need for an
install.sh script. You should only include a custom
run.sh script if you have a real need for one.
You could use a
run.sh file to use a custom runtime such as PyPy instead of the default Python 3.
When your bot times out or errors on our game servers, we save and display a log file with debugging information including the time your bot took each turn, its output each turn, and its final output from stdout and stderr.
To find these log files, visit your homepage. Just click the download log button to grab your error log for a game.