Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lizadaly/windrift
A JS framework for writing mutable stories
https://github.com/lizadaly/windrift
hypertext interactive-fiction
Last synced: 3 months ago
JSON representation
A JS framework for writing mutable stories
- Host: GitHub
- URL: https://github.com/lizadaly/windrift
- Owner: lizadaly
- License: mit
- Created: 2016-10-01T00:40:13.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2023-10-25T03:50:32.000Z (over 1 year ago)
- Last Synced: 2024-07-31T03:18:01.027Z (6 months ago)
- Topics: hypertext, interactive-fiction
- Language: TypeScript
- Homepage: https://windrift.app
- Size: 143 MB
- Stars: 228
- Watchers: 10
- Forks: 16
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Windrift
A JavaScript framework for writing mutable narratives
![Integration tests](https://github.com/lizadaly/windrift/actions/workflows/playwright.yml/badge.svg)
Windrift has been used to author interactive hypertext stories including the award-winning [Harmonia](https://lizadaly.com/pages/harmonia/) in 2017, [Stone
Harbor](https://stoneharborgame.com/) in 2016, and [The Ballroom](https://lizadaly.com/projects/the-ballroom/) in 2019, all by Liza Daly. It was
also used by Enrique Henestroza Anguiano to write The
Imposter (2018) and José Carlos Dias to produce the [Portuguese translation of Stone Harbor](https://stoneharborgame.com/pt/) in 2021.## Documentation
The [official manual](https://windrift.app/manual) is continuously published as features are added and is itself a Windrift story. The manual is the best way to quickly get an overview of Windrift. Corrections and requests for coverage are gratefully accepted.
## Example stories
Stories demonstrating use of Windrift 2 from the basic to the advanced are available as part of the [official manual](https://windrift.app/manual) , as well as in the [Windrift Playground](https://playground.windrift.app/). Source code is available for all example stories.
## Quick start
### Dependencies
To ensure you're using a fully-compatible version of Node, use [Node Version Manager](https://github.com/nvm-sh/nvm). Follow its installation process for your platform and then run:
```
nvm install 18
nvm use 18
```Then to install Windrift:
```
npm install
```### To start a new story
```
npm run new
```The story identifier must be a single string, like "west-of-house" or "colossal-cave." See the [manual](https://windrift.app/manual) for details.
### To run the local development environment
```
npm run dev
```Other commands, including deployment options, are described in the Windrift manual.
## About version 2
This is a complete rewrite of Windrift, now based on [NextJS](https://nextjs.org/) and written in [TypeScript](https://www.typescriptlang.org/).
Windrift no longer separates the core library from the web framework, which was previously available as the `windrift-starter` repo. Keeping windrift-starter and windrift core separate made for a confusing installation and update process, and neither was useful without the other.
Windrift 2 unifies them into a single NextJS application, capable of hosting multiple stories. Authors can take advantage of any affordances offered by NextJS, including the free deployment options via [Vercel](https://vercel.com).
Because the core Windrift code is bundled with each story repository, authors can fully modify or alter any fundamental behavior of the library.
The [v1 branch](https://github.com/lizadaly/windrift/tree/v1) is no longer receiving updates.
## Contributor acknowledgment
* 6notes: Playwright test suite conversion