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][web]
**Features** - [x] Live mapping to keep track of where you are - [x] Undo / Redo support - [x] Narration / Dictation using the [web speech APIs][APIs] - [x] Object tree inspector [web]: https://sterlingdemille.com/encrusted [APIs]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API ### Install Terminal version: ```sh cargo install encrusted ``` Run a file with `encrusted `. 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](https://inform-fiction.org/zmachine/standards/z1point1/appc.html) & [praxix](https://inform-fiction.org/zmachine/standards/z1point1/appc.html)) through [regtest](https://eblong.com/zarf/plotex/regtest.html): ``` npm run test ``` ### Notes - Currently only supports v3 zcode files - Saves games in the Quetzal format ### License MIT