Typed bindings to the Screeps in-game API for WASM Rust AIs.
Also the homepage for tools relating to writing Screeps AIs in Rust.
screeps-game-api
is a Rust binding to the JavaScript APIs for programs compiled to WASM using
wasm-pack
.
Also in this organization is cargo screeps
, a binary program which wraps
wasm-pack
and lets one directly upload Rust WASM code to Screeps servers.
These two tools go together well, but do not depend on eachother. cargo-screeps
can compile and
upload any screeps WASM project buildable with wasm-bindgen
's wasm-pack
, and screeps-game-api
is
usable in any project built with wasm-pack
.
Writing Screeps code in Rust can be nice, but it can also be annoying. If you have tips, tricks, or other things you'd like to share, make an issue! We need to write more documentation, and if we have enough ideas, we can start an mdbook for this repository.
If you need help or want to share feedback, feel free to open an
issue
or come say "Hi!" on the official Screeps Discord in the #rust
channel!
Here's a quickstart for what you need to get going. More documentation will be made in the future.
# Install CLI dependency:
cargo install cargo-screeps
# Clone the starter
git clone https://github.com/rustyscreeps/screeps-starter-rust.git
cd screeps-starter-rust
# Copy the example config, and set up at least one deployment mode
cp example-screeps.toml screeps.toml
nano screeps.toml
# configure credentials (API key) if you'd like to upload directly,
# or a directory to copy to if you'd prefer to use the game client to deploy
# build tool:
cargo screeps --help
# compile the module without deploying anywhere
cargo screeps build
# compile plus deploy to the configured 'upload' mode; any section name you
# set up in your screeps.toml for different environments and servers can be used
cargo screeps deploy -m upload
# or if you've set a default mode in your configuration, simply use:
cargo screeps deploy