# Darkwind · The First Light Darkwind is the reference game built with the [Dusk engine](../../README.md). It is a short cooperative journey. Two travelers wake in the Lantern House, speak with the keeper Elowen, carry the keeper's lantern through the Rain Garden and light the old beacon in the Sanctuary. The current arrival preview adds a dressed house, a planted garden and a shared garden cart. Darkwind owns its world, story, characters, sound, controls and authored arrival. It runs on the same reusable Dusk player, editor and room services as any other game. Nothing in `packages/` imports this directory. ## Run it Use Node 22.23.4 and a WebGPU-capable desktop browser. ```sh npm ci npm run dev:darkwind # same as npm run dev:art ``` Open http://localhost:5187/ in two browser profiles. The command also prints the private Dusk World Atelier link for editing this world. It uses ports 5187/8797 and `.data/arrival-art.10`, separately from other rooms. For the packaged two-player beta build, run `npm run build && npm start` and open http://localhost:8787. Shared progress is saved in `.data/hearth/`. [Playtest guide and recovery](../../docs/BETA_PLAYTEST.md) · [Coolify hosting](../../docs/COOLIFY.md). ## Controls | Action | Keyboard / mouse | Gamepad | | --- | --- | --- | | Walk | W A S D | Left stick | | Look | Mouse, drag or arrow keys | Right stick | | Run | Shift | Left shoulder | | Jump | Space | A / Cross | | Interact, choose a cart seat, leave the cart | E | X / Square | | Drive / reverse, steer (seated in the cart) | W / S, A / D | Left stick | | Journal | J | D-pad up | | Satchel | I | Y / Triangle | | Chat | Enter | — | | Collapse / get up | R | — | | Menu | Esc | Start | | Diagnostics and report export | F2 | — | Audio is opt-in. Settings include resolution quality, field of view, sensitivity and reduced motion. Keys can be rebound in Settings. ## What Darkwind owns | Area | Location | | --- | --- | | World, places and story | `world.ts`, `persistent-world.ts`, `trusted-world.ts` | | Current arrival (house, garden, cart) | `arrival-art.ts`, `arrival-garden.ts`, `arrival-surfaces.ts`, `arrival-vehicle.ts` | | Traveler model, rig and lantern | `traveler.ts`, `lantern.ts`, `assets/` | | Controls and gamepad bindings | `controls.ts`, `gamepad.ts` | | Ambient sound and footsteps | `sound.ts` | | Fixtures (ferry, crossings, recovery) | `garden-ferry.ts`, `crossing-world.ts`, `vehicle-crossing-world.ts`, `recovery-world.ts` | The world ID, release names, entity and interaction IDs and save namespaces keep their existing values. They are game identity. The Dusk rename does not change them. ## Art and credits The approved traveler is a licensed adaptation of pixiv's CC0 Vita (AvatarSample_3), approved on October 27, 2026. Source, digest and terms are in [source attribution](../../tools/art/source/README.md). The art direction, acceptance captures and polish record are in [Traveler art](../../docs/TRAVELER_ART.md). ## Known bounds - The beta is a trusted two-player profile with an eight-player admission cap. The cap is not a measured capacity. - Performance and device qualification remain open. See [release qualification](../../docs/RELEASE_CANDIDATE.md). - Recorded art follow-ups include finger grip, hand and foot IK, and more furniture and landscape assets. See [Traveler art](../../docs/TRAVELER_ART.md).