About this project

Shatterfish is an open-source project designed to extend Shattered Pixel Dungeon (SPD) with advanced automation and analysis capabilities, modeled after the chess engine Stockfish. It operates as a downstream fork of SPD, maintaining compatibility while adding four core components: a headless game harness for fast, reproducible runs; a symbolic AI 'brain' that plays using only observable game state; a statistical testing rig for evaluating changes via SPRT comparisons; and an in-game overlay that lets users watch, pause, or take over the bot during real gameplay. The project strictly enforces 'information parity' — the bot can only use what a human player could see on screen, such as rendered visuals, logs, and journal entries. It cannot access hidden game state like RNG seeds or unidentified item identities. This fairness constraint is enforced through a single Observer interface, with leak tests accompanying every change. Built with JDK 21, it does not require Android SDK or Xcode. The codebase is organized under shatterfish/ modules (api, harness, codex, brain, rig, overlay), with detailed documentation including upstream pinning (v3.3.8), build instructions, and development methodology (BMAD Method). All contributions are licensed under GPL-3.0-or-later, matching SPD’s license. The project explicitly disclaims affiliation with SPD’s original authors.