A KiriKiri engine specifically written to power the web version of Fate/Stay Night.
Join our Discord!
PRs welcome!
To get the project running, you will need node installed, then simply:
- Clone the repo.
- Run
npm ci
to install dependencies. - Run
npm start
to start the development server. - Navigate to https://localhost:3000.
Note that:
- Changes to source files will be reloaded automatically.
- Static assets will be loaded on-demand from the live site, so an internet connection is required. (See
"proxy"
in package.json)
Static assets extracted from the original Visual Novel are loaded on demand, these are collected under https://fatestaynight.vnovel.org/static/
├── bgm # top-level music folder
│ ├── classic # original music
│ ├── ps2 # ps2 music
│ └── vita # ps vita music
├── images # top-level images folder
│ ├── eng # modified / translated
│ ├── h # alternate versions
│ └── mature # alternate versions
├── scripts # script files (*.ks) containing game logic
│ ├── eng # translated
│ │ └── h # alternate versions
│ └── jp # original language
│ └── h # alternate versions
├── sound # sound effects
└── voice # voice lines
The exception to this, is a couple indexes which are generated alongside the above assets, but are included directly in this repo.
(See lookup.js and the generated/ folder for more details.)
Tools for extracting & converting assets are in a separate repo, see https://github.com/Kent-H/kirikiri-web-helper.
(Please request access via discord.)
-
Most pages are rendered by the Reader component, which among other things, is responsible for:
- Displaying the current scene's text, handling user input & navigation.
- Detecting the user's progression through the text.
- Displaying the appropriate animation (including music & sounds) for the currently visible text.
-
The above text & animations are extracted from KiriKiri scripts, loaded by a separate, dedicated Script Loader component, which performs a few logical steps:
-
A home page exists to support navigating the full visual novel, and includes:
- A short introduction & site tutorial.
- A graph of every scene, including connectivity between scenes.