A Rust cleanroom implementation of Slay the Spire's gameplay engine
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Katie Kloss f3a3e348e5
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Make most stuff clone/hashable and have Encounters capture their Run
2026-04-13 05:11:34 -04:00
.vscode start actually implementing playing cards 2026-03-30 06:33:41 -04:00
src Make most stuff clone/hashable and have Encounters capture their Run 2026-04-13 05:11:34 -04:00
tests Make most stuff clone/hashable and have Encounters capture their Run 2026-04-13 05:11:34 -04:00
.gitignore cargo init 2026-03-24 08:47:04 -04:00
.woodpecker.yml combine CI steps to avoid downloading nightly twice 2026-04-09 03:58:17 -04:00
Cargo.toml Split out encounter impls and rename the module 2026-04-11 06:03:15 -04:00
LICENSE Initial commit 2026-03-24 08:36:20 -04:00
README.md Update README.md 2026-04-09 02:56:12 -04:00
rust-toolchain.toml check in rust-toolchain.toml 2026-04-10 06:01:59 -04:00

spire-rs

A Rust cleanroom implementation of Slay the Spire's gameplay engine.

Canonical repo URL: https://code.kat5.dev/katie/spire-rs

What

I like Slay the Spire (even though I am bad at it). I frequently think about how hard it would be to develop an AI that can play the game. I decided to finally do it myself and find out, and learn Rust along the way.

Currently, this means a baby game engine which implements the most basic game mechanics, a simple "AI" which can bumble its way through easy encounters, and a simulator that can predict a deck's performance when card rewards are selected.

For way more info than you probably care about, see my dev logs about the project.

Roadmap

  • Silent starting deck
  • Basic and Elite encounters
  • Powers
  • Monte Carlo card reward picker
  • Relics
  • Events
  • Potions
  • Randomized maps
  • Deterministic seeds (maybe)
  • The rest of the owl
  • Neural network gameplay

Generative AI Policy

Every single line of code and text in this project was written by hand. No code produced by generative models is included.