Skip to content
This repository has been archived by the owner on Nov 15, 2020. It is now read-only.
/ MOZAIC Public archive

MOZAIC is the Massive Online Zeus Artificial Intelligence Competition platform

License

Notifications You must be signed in to change notification settings

ZeusWPI/MOZAIC

Repository files navigation

MOZAIC

MOZAIC

AppVeyor Travis (.org) chat mattermost

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

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.

Concept & Game

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.

Client & Downloads

MOZAIC

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:

Setup

Dependencies

Before continuing, make sure you have the following applications installed:

  1. 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
  2. Install Node v8 and Yarn.

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

Using Make

  1. If this is not your first install, run make clean.
  2. Run make
  3. Go to the planetwars/client directory and run yarn install followed by yarn run dev.
  4. An electron client should be at your disposal!

Manual Setup

Gameserver

  1. Try to run the botrunner with cargo run in the gameserver directory. It should compile, but fail to play a match.
  2. Run the botrunner again (still in the gameserver directory) with: cargo run stub_config.json
  3. It should have generated a log-file log.json.
  4. If it did, great, it works! Now run cargo build --release.
  5. Check setup below for the client.

Client

Note: Do the setup for the gameserver first

  1. Go to the client directory.
  2. Build the client with yarn build
  3. Go the ../planetwars/client directory
  4. Install dependencies with yarn install.
  5. 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
  6. Run yarn run dev
  7. An electron client should be at your disposal!

Publishing and packaging

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.

Contact

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.