Skip to content

DeMille/encrusted

Repository files navigation

encrusted

Crates.io
Built Status



A z-machine (interpreter) for Infocom-era text adventure games like Zork

Runs in a web interface or directly in a terminal. Built with Rust and WebAssembly (wasm32-unknown-unknown).

🎮  Launch the web player


Features

  • Live mapping to keep track of where you are
  • Undo / Redo support
  • Narration / Dictation using the web speech APIs
  • Object tree inspector

Install

Terminal version:

cargo install encrusted --bin encrusted

Run a file with encrusted <FILE>. Use $undo and $redo to step through your move history. Use save and restore to save your progress.

Build

WebAssembly/React web version (requires node & rust nightly):

# If you haven't added nightly or the wasm32 target:
rustup toolchain install nightly
rustup target add wasm32-unknown-unknown --toolchain nightly

# Runs webpack dev server on port 8000
npm run dev

# Build .wasm module with rust nightly, debug mode
npm run build:debug

# Or build all in release mode & bundle JS into the ./build directory
npm run release

Tests

Run z-machine tests (czech & praxix) through regtest:

npm run test

Notes

  • Currently only supports v3 zcode files
  • Saves games in the Quetzal format

License

MIT