2 stable releases

Uses old Rust 2015

1.1.0 Feb 25, 2019
1.0.0 Jun 7, 2018

#287 in Games

MIT license

500KB
6K SLoC

Rust 3K SLoC // 0.1% comments JavaScript 2.5K SLoC // 0.0% comments
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

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

Dependencies

~1.6–3.5MB
~61K SLoC