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 - [x] Live mapping to keep track of where you are - [x] Undo / Redo support - [x] Narration / Dictation using the web speech APIs - [x] Object tree inspector

Install

Terminal version:

sh 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):

```sh

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

License

MIT