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%\BottleBatson Windows$XDG_CONFIG_HOME/BottleBatsor~/.config/BottleBatson Linux~/Library/Application Support/BottleBatson 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/clientdirectory and runyarn installfollowed byyarn run dev. - An electron client should be at your disposal!
- Try to run the botrunner with
cargo runin thegameserverdirectory. It should compile, but fail to play a match. - Run the botrunner again (still in the
gameserverdirectory) 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
clientdirectory. - Build the client with
yarn build - Go the
../planetwars/clientdirectory - Install dependencies with
yarn install. - Go the
.\bindir 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.
