Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/DeMille/encrusted

A z-machine (interpreter) for text adventure games like Zork
https://github.com/DeMille/encrusted

Last synced: 1 day ago
JSON representation

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

Awesome Lists containing this project

README

        

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 --bin 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