Technical Details
Browser compatibility
The engine targets modern browsers:
- Chrome
- Firefox
- Safari
- Edge
It uses:
- ES6+ JavaScript
- CSS Grid and Flexbox
- HTML5 Audio API
localStoragefetch()
Dependencies
- DOMPurify — bundled locally at
js/purify.min.js. It sanitizes all HTML rendered throughinnerHTML, including story content, credits, colored text, and dice results. - No build tools — no compilation, bundling, or package installation is required for the engine.
- No backend — the game is entirely static.
Local server requirement
The engine loads story.json with fetch(). Browsers block that request when the page is opened with file://, so use a local HTTP server:
python -m http.server
Then open http://localhost:8000.
Content Security Policy
index.html includes a Content Security Policy meta tag that restricts scripts, styles, images, connections, fonts, objects, frames, and forms. If you add external resources, update the policy accordingly.
File size
- The engine itself is lightweight.
- Story data grows with your content.
- Images and audio are optional and usually dominate the total size.
Release package
The engine release archive contains only:
index.html
js/
styles.css
story.json
LICENSE
The documentation site and the Markdown converter are not part of the engine release.