尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A calm, painterly wander across five floating islands. Walk, skate and glide through a world that is still wet, paint it with your brush, wake what sleeps along the way, and lay the last stroke on the Spire yourself.
There is no combat and nothing to fail. If you fall, the paint carries you back.
A note before you play: this game changes as it goes. It begins gently, but its later parts are frightening, with blood and death, and are not for children.
| Key | What it does |
|---|---|
W A S D | Walk |
| Mouse | Look around (arrow keys also work) |
Shift | Skate |
Space | Jump; press again in the air to jump once more; hold in the air to glide |
Click, or J / F | Swing the brush: it paints the ground and whatever stands nearby |
Q, right-click, or 1–0 | Change paint |
E | Hold to paint a sketched bridge; press to rest at an easel or step through a door |
G | Sketchbook: your paintings and everything you have found |
C | Photo mode |
H | Map |
M | Sound on or off |
P | Cycle the brushwork filter |
Esc | Settings |
The journey is saved in your browser as you play.
The second level: a world still in pencil, where colour does things. It begins at night, and each thing you finish brings the morning closer.
It ends on the Blank Page, where four wells each want one of the four, under the hand that drew it all.
You reach it by stepping into the unfinished canvas in the Spire's atelier, after the ending. To try it straight away, add ?underpainting to the address.
A third level is being built: the gallery where the painting hangs, the day before the doors open. The pictures on its walls are nearly finished. Each has too much of one thing and not enough of another, and here the brush learns to carry: stand by something, press E to lift it, and lay it down in another picture.
The brush holds one thing at a time, and anything laid down can be lifted again. You reach the gallery through a frame that stands on the Blank Page once the Underpainting is finished; after that a frame in the atelier leads straight there. To try it straight away, add ?gallery to the address.
You need Node.js 18 or newer.
npm install
npm run dev
Then open http://localhost:5183.
To make a production build in dist/:
npm run build
Pushing to main builds and publishes the game to GitHub Pages (see .github/workflows/pages.yml).
The game is written in plain JavaScript with three.js and built with Vite. It has no art or sound files:
| File | What is in it |
|---|---|
src/main.js | The game loop, rules, camera, menus, saving and restoring |
src/world.js | Islands, bridges, the Spire, sky, sea, clouds and winds |
src/player.js, src/painter.js | The painter: movement, animation, and the model with its cloth cape |
src/post.js | The painterly post-process |
src/paint.js | Brush strokes on the ground and colour soaked into objects |
src/bloom.js | Flowers, buds and blossom that follow the painter |
src/vista.js | Easels and the pictures painted at them |
src/entities.js | Particles, sparks and companions |
src/sketches.js, src/setpieces.js, src/secrets.js | Sketches, the island set-pieces and the hidden places |
src/interior.js, src/sights.js | Inside the Spire, and the far-off sights |
src/underpainting.js, src/seedbed.js, src/lastpage.js | The second level: running water, growing vines, warm air, and its ending |
src/gallery.js | The third level: the gallery, its pictures, and lifting and carrying |
src/day.js, src/audio.js | Time of day; music and sound |
src/hud.js, src/settings.js, src/save.js | On-screen prompts and map, the settings panel, and storage |
src/util.js | Shared helpers: palettes, noise, stroke geometry |