MOZAIC is the Massive Online Zeus Artificial Intelligence Competition platform. It aims to provide a flexible platform to host your very own AI competition. Just plug your game, and off you go!
Eventually MOZAIC should be very modular, so that you can provide a custom-tailored experience for your competitors, without having to worry about the heavy lifting.
BottleBats 2.018 is the second edition of the Zeus WPI AI competition. The simple concept remains the same, but this time it is build on top of the MOZAIC platform for reliable cross-platform en networked (Soon TM) play.
Write a bot and compete with your friends. Accept game-states trough stdin and write your actions through stdout, everything is handled by us.
See the intro-slides for more info.
We provide easy-to-setup packages clients for all platforms, check out the releases section for downloads.
For Mac we suggest using the .dmg
, for windows the .exe
.
For linux we provide an AppImage, which after downloading, you need to make executable (chmod u+x <file>
).
Note: the AppImage does not need to be installed, and you can simply run the file.
Most of the data will be save to user-data directories which are:
%APPDATA%\BottleBats
on Windows$XDG_CONFIG_HOME/BottleBats
or~/.config/BottleBats
on Linux~/Library/Application Support/BottleBats
on macOS
Try not to mess these up, or things will break.
Important resources:
Before continuing, make sure you have the following applications installed:
-
Install rust and cargo (take look here if you're using an older software repository such as Ubuntu apt).
- Rust >= 1.18.0
- Cargo >= 0.16.0
Note: This project makes use of Yarn workspaces.
e.g. on Fedora:
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install cargo rust nodejs yarn
- If this is not your first install, run
make clean
. - Run
make
- Go to the
planetwars/client
directory and runyarn install
followed byyarn run dev
. - An electron client should be at your disposal!
- Try to run the botrunner with
cargo run
in thegameserver
directory. It should compile, but fail to play a match. - Run the botrunner again (still in the
gameserver
directory) with:cargo run stub_config.json
- It should have generated a log-file
log.json
. - If it did, great, it works! Now run
cargo build --release
. - Check setup below for the client.
Note: Do the setup for the gameserver first
- Go to the
client
directory. - Build the client with
yarn build
- Go the
../planetwars/client
directory - Install dependencies with
yarn install
. - Go the
.\bin
dir and symlink the gameserver with:- Linux -
ln -s ../../../gameserver/target/release/mozaic_bot_driver
- Windows -
mklink bot_driver.exe ..\..\..\gameserver\target\release\mozaic_bot_driver.exe
- Linux -
- Run
yarn run dev
- An electron client should be at your disposal!
You can package easily with the package-<os>
in package.json
. Publishing is done automatically by Travis and AppVeyor on commit. See the electron-builder publish docs for more info about our flow (it's the GitHub one).
Note: when packaging an make sure the mozaic_bot_driver
binary is an actual binary and not a symlink, or things will break.
Have any questions, comments, want to contribute or are even remotely interested in this project, please get in touch! You can reach us by e-mail, Facebook, or any other way you prefer listed here.