Create · The fast lane
A working game in minutes
Skip the blank page. The engine ships a default style — a rigged hero, a palette, juice and synth audio, all code — so your agent starts assembling, not sourcing.
Scaffold
One command creates a solver-ready project with the engine wired in.
npm create hayao@latestPaste the prompt
Hand the prompt below to your coding agent. It reads the conventions and builds with the stock parts.
Play & prove
npm run dev to play it; npm run verify to machine-prove every level is winnable.
npm run verifyHand it to your agent
Paste this into Claude Code, Cursor, or any coding agent — it does the rest.
Set up the Hayao game engine and build me a 2D platformer in the default (Regalia) style.
1. Scaffold a project:
npm create hayao@latest my-game && cd my-game && npm install
2. Read AGENTS.md and docs/CONVENTIONS.md for the invariants.
3. Build a small platformer from the batteries in the box:
- stepPlatformer + DEFAULT_PLATFORMER for movement
(coyote time, jump buffering, wall-jump — already tuned)
- DuotoneHero + REGALIA_SCHEMES for the character
(a rigged hero with authored idle/run/jump/fall/wallSlide/death/spawn clips)
- Particles, Shaker and FloatingText for feel; the audio bus for synth SFX
4. Keep the rules pure and prove every level winnable: npm run verify
5. Run it: npm run dev
First ask me for a theme — scheme gold, meadow, dusk, rose or bark — then start.Using Claude Code?
Install the Hayao plugin
The workflow above, packaged and enforced: authoring skills, commands like /hayao:new-game and /hayao:inspect-api, and a determinism gate — a hook that runs the proof harness and blocks the agent from finishing until it passes. Verification stops being a habit and becomes a wall.
/plugin marketplace add hellojanpacan/hayao-js /plugin install hayao@hayao
What's in the box
Everything here is code your agent can read and rewrite
This grid isn't illustrations — it's the engine running on this page. The hero is the shipped rig playing its authored clips; the sounds come off the real synth bus.
A rigged hero
Seven authored clips on a loop — idle, run, jump, fall, wall-slide, death, spawn. Pick a scheme; the rig recolours.
The juice kit
click the crate — burst, shake, popup, thud
Particle presets, trauma-based camera shake, floating text, squash — the recipes your agent wires to game events.
Synth audio
audio.blip() · rendered live, deterministic to render offline
No samples to source — every sound is parameters through the mixer, with separate music and SFX buses.
The Regalia palette
Five duotone schemes derived from one contrast-checked colour system. These swatches are read from the shipped constants.
A tuned platformer controller
Coyote time, jump buffering, dash, wall-jump, moving platforms — pure, deterministic, pre-tuned. These are the shipped defaults.
Proof tooling
npm run verifyA solver proves levels winnable; replay hashes prove refactors safe. The same checks your agent runs before showing you anything.
A default, not a wall
Outgrow the style whenever you like
Regalia gets you moving; it doesn't lock you in. Swap the scheme, redraw the hero, replace any asset — it's all code in your project.
Or start from scratch