Game Servers

Hardware

All compilation and game execution is done on AWS EC2 m3.medium servers running Ubuntu 16.04. They have the following specs:

  • 3.5 GB of RAM
  • ~10 GB of disk space
  • 1 CPU

Sandbox

During compilation and games, players are run as unprivileged users in a sandbox which limits memory, processing power, execution time, disk space, and internet access. The sandbox is a docker container defined by this Dockerfile, running on top of Docker 1.6.2. If you think that there is an issue with the sandbox, please email us at halite@halite.io.

Compilation

Bot compilation is done using this autocompile script.

To facilitate the installation of custom software, we allow users to include an install script. If a file named install.sh exists in your submission, it is run as a bash script under the root user in a sandbox with internet access and 10 minutes of runtime. Bots may only read and write to their current directory, so all files that you want to be available at runtime must be installed locally. For more on using 3rd party libraries, click here.

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:

  • Java - .java
  • Python - .py
  • C++ - .cpp and .h(pp)
  • C# - .cs
  • Rust - .toml (for your Cargo.toml) and .rs (for your Rust source)
  • Scala - .scala
  • Ruby - .rb
  • Go - .go
  • PHP - .php
  • JavaScript - .js
  • OCaml - .ml
  • Clojure - .clj
  • C - .c

The following compilers are used:

  • Java - javac 1.8.0_111
  • C++ - g++ 4.8
  • C# - mcs 4.6.1.0
  • Rust - rustc 1.10.0
  • Scala - scalac 2.10.4
  • C - gcc 4.8

The following build automators are used:

  • Rust - cargo 0.11.0
  • Clojure - lein 2.7.0

The following versions of each language are supported:

  • Java 8
  • Python 3.4.3
  • C++ 11
  • C# 6.0
  • Rust 1.10
  • Scala 2.10.4
  • Ruby 2.3.1
  • Go 1.6
  • PHP 7.0
  • Node.js (JavaScript) 7.1.0
  • OCaml 4.01.0
  • Clojure 1.8.0

Games

Bots are given 250 MB of RAM and equal amounts of CPU.

Currently, 20x20, 25x25, 30x30, 35x35, 40x40, 45x45, and 50x50 games are run. Games may be 2-6 player.

Games are always run using the most recent environment build.


Terms of Service | Privacy Policy