No description
Find a file
2021-12-29 22:54:30 +01:00
backend migrate to axum 2021-12-29 16:11:27 +01:00
planetwars-cli implement build command 2021-12-28 19:28:19 +01:00
planetwars-rules add init-project command 2021-12-25 17:48:54 +01:00
web move assets to visualizer package 2021-12-29 22:54:30 +01:00
.gitignore setup basic rocket+diesel app 2021-12-13 15:43:47 +01:00
Cargo.toml Merge branch 'backend-server' 2021-12-29 19:56:31 +01:00
README.md add general README 2021-12-26 22:01:27 +01:00

mozaic4

Because third time's the charm!

pwcli

Note: this project is under active development. All file and configuration formats will take some time to stabilize, so be prepared for breakage when you upgrade to a new version.

Building

The cli comes with a local webserver for visualizing matches. Therefore, you'll have to build the web application first, so that it can be embedded in the binary.

You will need:

  • rust
  • wasm-pack
  • npm

First, build the frontend:

cd web/pw-frontend
npm install
npm run build-wasm
npm run build

Then build the backend:

cd planetwars-cli
cargo build --bin pwcli --release

You can install the binary by running

cargo install --path .

Getting started

First, initialize your workspace:

pwcli init my-planetwars-workspace

This creates all required files and directories for your planetwars workspace:

  • pw_workspace.toml: workspace configuration
  • maps/: for storing maps
  • matches/: match logs will be written here
  • bots/simplebot/ an example bot to get started

All subsequent commands should be run from the root directory of your workspace.

Try playing an example match:

pwcli run-match hex simplebot simplebot

You can now watch a visualization of the match in the web interface:

pwcli serve

You can now try writing your own bot by copying the simplebot example. Don't forget to add it in your workspace configuration!