# Robot Crossing — game design

Design draft · 8 September 2026 · A first playable core has subsequently been implemented; [appinfo.md](appinfo.md) records its actual scope and remaining work.

**Build a welcoming island village where repairing a robot changes both a friendship and the world.** Explore short, interesting paths, recover missing components through approachable puzzles, bring expressive robots back to their favourite activities, and turn the rewards into a home worth inviting friends to visit.

Read alongside [the implementation plan](BUILD_PLAN.md), which specifies rendering, networking, persistence, asset production, performance budgets, milestones, and acceptance tests.

## 1. The intended experience

Working tagline, also present in the supplied concept art: **Small parts. Big friendships.**

The player is a newly arrived robot in a coastal settlement provisionally called **Brightharbour**. A storm disrupted the village's delivery network and scattered replacement parts across its gardens, woods, shore, and old machinery. The residents are resourceful, funny, and already helping one another. The player's arrival gives their repairs a little momentum.

The emotional payoff is concrete: Bloop can water his flowers again; Luma can play the tune she has been humming; a previously quiet café becomes a gathering place. A repaired robot remains a character with interests and relationships. It does not become an exhausted quest dispenser or repeatedly lose the same limb.

The design takes its broad life-simulation inspiration from Animal Crossing: approachable exploration, characterful neighbours, collecting, earning, furnishing, and social visits. Nintendo's own overview presents gathering materials, meeting residents, and decorating a home and island as connected activities. Robot Crossing's distinguishing activity is hands-on repair, expressed through its own robot cast, world, dialogue, interface, and music. [Nintendo overview](https://www.nintendo.com/us/store/products/animal-crossing-new-horizons-switch/)

### Design pillars

| Pillar | What the player experiences | Design rule |
| --- | --- | --- |
| Kindness has a visible result | A repair restores an activity, friendship, or village feature | Each story repair has a before/after animation and world consequence |
| Curiosity is rewarded | A side path reveals a component, clue, joke, or decorative find | Put something meaningful roughly every 10–20 seconds along a new route |
| Small actions feel good | Picking up a cog and fitting a hand are satisfying | Strong animation, clear feedback, gentle audio, generous interaction targeting |
| Home expresses identity | Two players' houses look and feel different | Affordable early decorations, useful placement controls, distinct furniture sets |
| Friends share the village | Players see the same repairs and visit persistent homes | Shared world progress; separately owned money, possessions, and houses |
| A phone is a first-class device | The world is readable and easy to control in either orientation | Fixed camera, one movement pad, one main action, measured device budgets |

### Proposed scope assumptions

These are recommended planning defaults, not claims that the user specified these numbers.

- One authored village per RCWeb room; solo play through eight simultaneous players.
- Up to sixteen resident profiles and house plots per village, allowing residents to visit at different times. An eight-player concurrency limit is separate from plot ownership.
- A 128 × 128 metre island footprint with eight compact, connected districts. Distant scenery can suggest a larger archipelago.
- Twelve named NPCs, twelve main repairs, twelve authored follow-up jobs, four reusable puzzle families, and forty furniture designs for the first complete release.
- Sessions of 10–30 minutes; first repair within about five minutes; first purchased home within 20–30 minutes; approximately 4–6 hours of authored discovery and progression, subject to playtesting.
- No combat, survival meters, tool breakage, mandatory real-world waiting, paid currency, or requirement for another player to finish a puzzle.
- ES6 and modern browser standards are allowed for this app. Three.js is explicitly requested. All runtime assets are hosted locally with RCWeb.

## 2. Reference art and visual direction

All thirteen files in [inspiration](inspiration/) were inspected. They are eight environment illustrations and five robot portraits. They provide strong exterior and character references; this folder does not currently contain a dedicated interior cutaway example.

| Local reference filename ending | Subject | What to carry into the game |
| --- | --- | --- |
| `11_52_43 AM (1).png.jpg` | Village plaza | Circular focal point, colourful roofs, gardens, streams, welcoming paths |
| `11_52_45 AM (2).png.jpg` | Forest grove | Layered woodland, music nook, mushrooms, small ruins, inviting detours |
| `11_52_45 AM (3).png.jpg` | Puzzle ruins | Chunky stone, readable mechanical symbols, gear bridges, waterfalls |
| `11_52_45 AM (4).png.jpg` | Lighthouse cliffs | Strong landmark, stepped routes, picnic terrace, tide pools |
| `11_52_45 AM (5).png.jpg` | Parts yard | Colourful organised salvage, crane landmark, component categories |
| `11_52_45 AM (6).png.jpg` | Repair shop | Open workshop frontage, blue roofs, workbenches, communal seating |
| `11_52_45 AM (7).png.jpg` | Farm patch | Orchard, windmill, greenhouse, waterwheel, cheerful garden geometry |
| `11_52_45 AM (8).png.jpg` | Sunny beach | Curved shore, turquoise shallows, boardwalks, parasols, small boats |
| `11_56_17 AM (1).png.jpg` | Bloop | Sprout antenna, green apron, round shell, shy warmth |
| `11_56_18 AM (2).png.jpg` | Nix | Mint shell, tool belt, concentrated expression, repair identity |
| `11_56_18 AM (3).png.jpg` | Pebble | Straw hat, satchel, compass, adventurous personality |
| `11_56_18 AM (4).png.jpg` | Luma | Pink ear panels, flower antenna, instrument, musical expression |
| `11_56_20 AM (5).png.jpg` | Older orange robot | Mechanical moustache, cap, waistcoat, reassuring village elder |

The screenshots' appeal comes from composition and readable colour groups. The game should preserve those qualities at a much lower detail density: broad foliage masses, rounded silhouettes, generous paths, cream plaster, honey-coloured timber, coral/blue/mint roofs, bright flowers, and dark face panels with luminous eyes. Micro-scratches, individual leaves, elaborate water reflections, and photographic depth of field are not necessary to achieve the intended result.

Proposed palette: shell cream `#F4E7C8`, sea teal `#45BEC6`, meadow green `#81B65B`, timber `#BB8452`, roof coral `#E87365`, roof blue `#548CC9`, screen charcoal `#24343D`, warm light `#FFD78A`. Use these as starting swatches and judge them in the renderer.

The camera uses a fixed diagonal direction and approximately 35° elevation. It follows the player by translation only. No orbiting, look stick, camera-rotation gesture, or camera cut to a different angle during dialogue. Buildings present their readable façades towards the camera; paths curve around landmarks instead of hiding behind long walls.

For furnishing inspiration, Nintendo's official examples show homes as compositions of furniture, flooring, and wallpaper. Here that becomes a visible dollhouse interior with a fixed view and an accessible front entrance. [Nintendo decorating examples](https://play.nintendo.com/news-tips/tips-tricks/animal-crossing-new-horizons-discover-tips/)

## 3. The play loop

```text
Meet a robot → understand a problem → explore / solve a puzzle
      ↑                                      ↓
New story / village activity ← reward ← fit the missing component
                                    ↓
                           buy and decorate a home
                                    ↓
                             invite nearby friends
```

Every main repair follows six recognisable beats:

1. **Notice.** The robot's missing part or interrupted activity is visible before conversation.
2. **Connect.** A short conversation establishes personality and why the repair matters.
3. **Investigate.** A clear clue points to a district, landmark, or puzzle rather than an exact glowing route through the world.
4. **Recover.** Find the component or solve a short, readable puzzle with an optional hint.
5. **Repair.** Select the matching slot, fit the part, and complete one brief calibration interaction.
6. **Celebrate.** The robot demonstrates its restored activity, thanks the player, and gives the promised reward.

Use two to three actions for fitting and calibration. There is no realistic wiring simulator or manual screw placement. A repair animation may last 2–4 seconds and can be shortened after the first viewing. Money and items appear only once the transaction is accepted by the shared game state.

### The first half hour

| Time target | Experience | What it teaches |
| --- | --- | --- |
| 0–2 minutes | Arrive at the dock; choose name, shell colour, eye shape, and accessory; meet Pebble | Move, approach, interact, recognise your own robot |
| 2–5 minutes | Nix demonstrates a practice chassis; recover a nearby cog and fit it | Missing parts, inventory, one small puzzle, reward feedback |
| 5–10 minutes | Help Bloop recover a sprinkler coupling beside a jammed waterwheel | First meaningful NPC repair, environmental clue, visible garden change |
| 10–18 minutes | Repair Nix's scanner; help Pebble recover a compass lens | Two alternative routes and another puzzle family |
| 18–25 minutes | Buy a cottage plot; see the house appear and walk through its door | Ownership, purchase confirmation, roof cutaway |
| 25–30 minutes | Place a gifted plant and buy a lamp; invite or visit another player | Decorating, room sharing, proximity conversation |

The tutorial is per player. If Bloop and the other early NPCs were repaired before a newcomer arrived, Nix offers equivalent personal service jobs using spare machinery. Newcomers still learn the complete loop and earn their own home without pretending that shared repairs never happened.

## 4. World layout and exploration

Build an authored island rather than a procedural terrain generator. Fixed paths, collision surfaces, puzzle positions, doorways, and sightlines make it possible to tune the camera, mobile performance, and multiplayer interactions together. Seeded variation is restricted to harmless flowers, small decorative clutter, and repeat commission layouts.

```text
                         LIGHTHOUSE CLIFFS
                                 |
        FOREST GROVE —— PUZZLE RUINS
              |                  |
        FARM PATCH —— VILLAGE PLAZA —— PARTS YARD
                             |               |
                        SUNNY BEACH —— REPAIR QUARTER
                             |
                         ARRIVAL DOCK
```

This is a connectivity sketch, not a literal terrain grid. Residential lanes extend around the plaza and farm. The dock belongs to Sunny Beach, keeping the release at eight districts.

| District | Identity and activities | Progression role |
| --- | --- | --- |
| Village Plaza | Robot fountain, café, noticeboard, furniture stall, cottage lanes | Safe central hub; shops and social meetings |
| Repair Quarter | Nix's workshop, practice bench, parts counter | Tutorial, personal commissions, repair journal |
| Sunny Beach | Tide pools, boardwalk, shell-marked trails, washed-up components | Easy early searches and a gentle sequencing puzzle |
| Farm Patch | Bloop's garden, orchard, greenhouse, waterwheel | Sprinkler repair and water-routing puzzle; gardening is scenery/jobs in version 1 |
| Forest Grove | Mushroom paths, music nook, hollow tree, lookout | Luma's repair, listening/visual pattern puzzles, hidden decorations |
| Parts Yard | Salvage shelves, magnet crane, sorting bench | Component matching, crane-route puzzle, larger job rewards |
| Puzzle Ruins | Mechanical gates, stone robots, raised platforms | Combines learned mechanics; restores the village power relay |
| Lighthouse Cliffs | Coastal path, picnic terrace, lighthouse, telescope | Final story repair and village celebration |

Give each district a recognisable skyline object, colour accent, sound bed, and one short loop returning towards the plaza. Main paths should be about 3–4 metres wide, with no compulsory blind traversal behind buildings. Steps and ramps connect shallow height tiers. There is no jumping or swimming in the first release; railings, cliffs, and the water's edge make boundaries clear.

Unlocks follow restoration, not rent payments: early village/farm/beach access; workshop progress opens the parts yard and forest route; restored mechanisms open the ruins; the lighthouse follows the main relay repair. Friends share these openings. A map names landmarks and highlights the selected job's district. It does not require a minimap occupying the play area at all times.

A proposed 40-minute shared daylight cycle gives the village morning, afternoon, and warm evening looks. Gameplay remains possible throughout. The cycle advances while the village is active, pauses when nobody is playing, and does not simulate missed days on return. NPCs always remain reachable for essential jobs; a journal can show their current landmark.

## 5. Robots, personalities, and conversations

The first four names and visual identities below come from the supplied portraits. Other names and stories are proposed additions. The older orange robot is provisionally named Old Cog.

| Robot | Personality and recurring joke | Missing component / story repair | Lasting result and signature gift |
| --- | --- | --- | --- |
| Bloop | Earnest gardener; apologises to weeds | Sprinkler coupling | Waters the plaza beds; sprout planter |
| Nix | Methodical tinkerer; labels everything, including labels | Wrist scanner lens | Parts identification bench; workbench lamp |
| Pebble | Enthusiastic explorer; confidently takes scenic wrong turns | Compass stabiliser | Landmark hints and trails; expedition stool |
| Luma | Gentle musician; describes feelings as chords | Speaker diaphragm | Plays at the forest nook; tiny music box |
| Old Cog | Warm storyteller; embellishes his former repair records | Chest clock gear | Revives the plaza clock; brass mantel clock |
| Pippin | Excitable courier; rehearses dramatic deliveries | Wheel bearing | Delivers repeat service jobs; letter rack |
| Mallow | Hospitable café keeper; experiments with dubious robot drinks | Mixing arm servo | Café reopens; striped café chair |
| Rivet | Proud salvage expert; sentimental about every bolt | Magnet controller | Parts-yard crane works; industrial shelf |
| Tansy | Inventive grower; treats engineering as plant care | Irrigation sensor | Greenhouse display blooms; seed cabinet |
| Wisp | Shy archivist; gives excellent directions in whispers | Memory socket | Ruins records become readable; star chart |
| Clack | Earnest bridge keeper; practises reassuring announcements | Knee actuator | Restores the ruins crossing; gear side table |
| Beacon | Sleepy lighthouse keeper; suddenly poetic about the sea | Beacon focusing lens | Lighthouse finale; miniature lighthouse lamp |

Each has a distinctive idle, walking rhythm, greeting sound, facial expression set, and post-repair activity. Missing pieces should leave a clear, tidy socket or incomplete attachment. A robot's personality and social value are present before repair; the repair restores an activity they want to do.

Approaching within roughly 2.5 metres produces a glance, wave, or short speech bubble with a cooldown. **Interact** opens the conversation. NPCs never repeatedly force a dialogue box open as the player passes. Most lines fit one or two short sentences. Dialogue options are simple: ask about the problem, hear a hint, offer a matching part, chat, or leave.

Example Bloop exchange:

> “The daisies requested a drink. My sprinkler requested a replacement coupling. I am having a very demanding morning.”
>
> “I last saw it by the waterwheel. Something there goes clunk when it should go splish.”
>
> After repair: “Perfect! A sensible amount of splish. Please accept this plant. It has excellent manners.”

Friendship has four lightweight stages: Acquaintance, Helper, Friend, and Neighbour. Story repairs, a distinct follow-up job, and selected conversations advance it. Repeating the same greeting does not grind friendship. New stages unlock dialogue, an emote, a recipe-free decorative gift, or an invitation to sit together.

Dialogue is authored content with deterministic conditions and a small recent-line history. No live language model is needed during play. NPC schedules, rewards, hints, and state transitions are ordinary game code. A first content target is at least 20 short lines per named robot, including blocked, hint, repaired, and follow-up states.

## 6. Components, puzzles, and repair rules

### Parts and inventory

Use recognisable categories: mechanical parts, optical parts, electrical modules, mobility assemblies, and audio components. Items have both a clear silhouette and a label; colour alone never identifies the right part.

The bag separates **Parts**, **Furniture**, and **Keepsakes**. Required quest components occupy a protected pouch with no capacity limit, cannot be sold, and cannot be permanently dropped. Ordinary salvage stacks automatically. Start with 24 general slots and a shared interface for house storage; do not charge players merely to retain a required reward.

A known broken socket shows its required shape, item name, and a short hint. Trying an incorrect component gives a characterful explanation and consumes nothing. On a successful repair, part consumption, quest completion, reward, and restored robot state happen in one accepted transaction.

### Four puzzle families

| Family | Main interaction | Example | Difficulty and help |
| --- | --- | --- | --- |
| Route the flow | Tap tiles to rotate pipes or conductive paths | Restore a waterwheel to release Bloop's coupling | 3 × 3 first, up to 5 × 5 later; show input/output and offer the next correct turn |
| Match the mechanism | Match components by shape, symbol, or a clearly stated rule | Assemble Nix's lens bracket; sort crane controls | Three initial options; no hidden arithmetic or colour-only distinction |
| Echo a pattern | Repeat a short sequence using large symbol buttons | Open Luma's music cache | Start at three steps, cap at six; visual beats accompany every sound |
| Move the machinery | Use Interact on switches; push a crate or guide a crane through fixed stops | Lift a component from the parts yard or open a ruins gate | Short reversible states, obvious goal, reset at any time |

Puzzles last about 30–120 seconds. Most use a 3D machine in the world with a large DOM control panel when precision is required. There are no mandatory reflex timers. Hints become available after 20–30 seconds or an unsuccessful attempt, and a guided completion option remains available without reducing the story reward.

Co-op adds parallel roles, such as one player reading a symbol pedestal while another rotates the tiles. Every puzzle also has a solo solution: clues remain viewable and pressure plates can use a nearby crate. Shared machinery uses a visible short control reservation; other players can watch, read clues, or offer encouragement. Reservations expire on exit, disconnect, or inactivity.

### Shared repair and reward policy

NPC story repairs and world mechanisms complete once per village. Players opt into a job group before completion. A player qualifies for that job's fixed reward by making an accepted contribution: recovering a required component, operating its puzzle, or completing an assigned inspection. Merely standing nearby is insufficient.

Each eligible participant receives the full listed reward once; the prize is not divided between friends. A shared quest component belongs to the job ledger after collection, so its collector leaving cannot strand everyone else. The bag may display it as “Recovered for Bloop.” The repair's unique ID and each player's reward claim are retained in the save.

Players who missed a completed job receive a similarly paced personal service commission with comparable payment and access to its signature furniture. Personal commissions repair spare equipment, not a second copy of a shared NPC. Repeat commissions use fresh job IDs and prevalidated puzzle templates. These rules must be tested before adding a large quest catalogue.

## 7. Economy and progression

Use one spendable currency, **Bolts**. Physical components are not money. Village restoration and friendship unlock content through milestones; they are not additional wallets.

| Source or purchase | Starting balance target |
| --- | ---: |
| Welcome allowance | +50 Bolts |
| Practice chassis tutorial | +40 |
| Bloop / Nix / Pebble early jobs | +70 / +100 / +140 |
| Later main repairs | +120–220 |
| Repeat service commission, roughly 4–6 minutes | +60–100 |
| Small decoration | 20–60 |
| Chair, table, rug, or lamp | 60–140 |
| Signature furniture | 140–260, or earned as a job gift |
| Cottage with plot and starter storage | 300 |
| Larger single-room cottage | 900 |
| Largest single-room cottage | 1,800 |

Worked early example: 50 + 40 + 70 + 100 + 140 = 400 Bolts; buying a 300-Bolt cottage leaves 100 for decoration. Each of those jobs must also have a newcomer commission equivalent. Prices are initial balancing values and should be kept in data.

The housing office displays the remaining amount needed for a cottage. Basic furniture and the ability to earn Bolts are always available. The shop can feature a changing selection for variety, but required parts and housing progression are never withheld by a real-world calendar or a shared stock shortage.

Sell-back, if included, returns 50% of purchase price and never exceeds it. Story gifts can be stored and reacquired through their earned catalogue entry. There are no interest payments, eviction, friendship decay, or punishment for absence.

Restoration milestones reward the room with new planting, working lights, opened paths, and social areas. The lighthouse finale brings the repaired cast together for a short celebration. Continued play consists of finishing friendships, decorating, visiting, discovering hidden keepsakes, and optional service jobs. Farming simulation, fishing, a museum collection, and additional islands are possible later expansions, not prerequisites for version 1.

## 8. Housing and furnishing

Every player may own one cottage on a distinct fixed plot. Plots have equal gameplay value and varied views. Ownership is keyed to a persistent player ID, not a temporary WebSocket client ID or display name. Homes remain visible and visitable while their owner is offline, provided a browser holding the village save is hosting the session.

The purchase flow shows the exact plot, cottage appearance, price, and resulting balance. If two players confirm the same available plot, only one purchase succeeds; the other loses no money and gets a clear message with other available plots. Owned plots are never automatically reclaimed after inactivity. At sixteen resident owners, joining players can explore as guests; more permanent residents need a later neighbourhood expansion or another village.

The starter interior is a 6 × 6 metre room, upgrading to 8 × 8 and then 10 × 10 metres. Keep one floor and one open room for version 1. An exterior style/roof colour can vary without changing the interior's usable floor area. Door thresholds transition into a separately rendered interior zone while keeping the camera's direction and perceived character scale.

Furniture mode is available only to the owner in version 1. The player selects an owned item, sees a placement preview, moves it on a half-metre grid, rotates it in 90° steps, and presses Place. Touch arrows offer precise nudges without requiring accurate dragging. Invalid placement shows a reason: doorway blocked, overlaps another item, outside the room, or wrong surface. Wallpaper and flooring are whole-room selections.

Move and store operations preserve ownership. Store never destroys an item. Keep a clear path from the entrance; a simple navigation check rejects layouts that trap players. Decorations attach to explicit floor, wall, or tabletop slots. Tabletop accessories move with their supporting table. A provisional room limit is forty placed items, counted including small accessories.

Four ten-item sets give the initial forty furniture designs:

| Set | Examples |
| --- | --- |
| Meadow Cottage | Wooden bed, leaf rug, plant stand, gingham chair, seed cabinet |
| Tinker's Workshop | Tool bench, gear table, lamp, parts drawers, pegboard |
| Seaside Retreat | Shell chair, driftwood table, lighthouse lamp, woven rug, surf picture |
| Starlight Nook | Music box, moon cushion, star chart, curved bookshelf, night lantern |

Visitors may walk, sit, inspect decorations, and chat. They cannot spend the owner's money or move furnishings. Default visit access is open to room players; an owner can close their door to new visitors. Closing access does not trap existing visitors. The owner need not stay online for the house to retain its design.

### Seeing inside and around objects

When the local player walks behind a tree, tall prop, or building, the obstructing visual group fades enough to keep the robot readable. Several simultaneous blockers must all be handled. Fade state is local to each camera; another player's view is unaffected.

On entering a building, its roof disappears and camera-facing upper walls cut away. The floor, rear walls, furniture, door, and occupants remain. Simply hiding the roof would leave front walls covering the player, so the wall treatment is part of the feature. Returning outside restores the exterior smoothly. Tall interior furniture participates in the same visibility system. The implementation plan specifies triggers, hysteresis, material handling, and mobile fallback.

## 9. Multiplayer and social play

Each browser displays the same village and controls its own robot. Shell colours, face styles, accessories, nameplates, and a subtle ring distinguish players. Cosmetic variation never changes movement speed or earning potential. New players appear at the dock; returning players load a validated safe position or the entrance of their home.

Invite opens a room link and QR code using RCWeb's existing facilities. The interface shows a compact player count, connection status, and save status through plain language. A joining player sees the current repaired NPCs, purchased houses, furnished rooms, open routes, and other occupants.

Nearby player chat uses a short composer reached through Interact or a speech icon. Range is provisionally four metres, within the same indoor/outdoor zone and without an intervening solid wall. Messages appear as speech bubbles and in a small recent conversation panel. Walking away closes the local conversation naturally. Typing stops movement and never activates keyboard shortcuts.

Keep messages to 160 characters and a maximum of one send per second. Provide local mute and optional quick phrases/emotes: Hello, Follow me, Need a hand?, Thank you, Nice house, wave, cheer, and heart. Message text uses DOM text nodes. Chat is transient and omitted from village saves. Proximity limits delivery/display in the game; this is not a promise of secure private messaging on RCWeb's peer-executed transport.

World changes are ordered by a browser acting as the room coordinator. Shared purchases and repair rewards must not use free-form merging of money or inventory. Normal play pauses such actions during resynchronisation. The exact recovery policy and unavoidable limits of browser-only persistence are part of [the implementation plan](BUILD_PLAN.md#5-multiplayer-and-persistence).

## 10. Controls, layout, and accessibility

| Input | Behaviour |
| --- | --- |
| Left thumb pad | Move in screen-relative directions; diagonal speed normalised |
| Main Interact button | Talk, collect, operate, enter, or sit according to the focused target |
| Target label | Names the action and object before it is activated |
| Bag / journal / map / options | Secondary controls; no permanent action toolbar |
| WASD or arrow keys | Desktop movement in the same screen-relative directions |
| E or Space | Interact; disabled as a shortcut while typing |
| Escape | Close panel or cancel a furniture preview |

Interaction selects a nearby reachable target in front of the player, with a small amount of hysteresis so the target does not flicker between two robots. A tap can select a different visible nearby target. There is no interaction through walls or across height tiers.

Portrait follows astra-craft's useful separation of world above and controls below, with a compact bottom control area of about 120–150 CSS pixels. Landscape gives the world the full viewport and puts the movement pad and action button at the lower corners. Dialogue is a bottom sheet in portrait and a shallow panel across the lower middle in landscape. Furniture selection adapts similarly. Keep the player and active target in the remaining unobscured part of the canvas.

Use safe-area insets, dynamic viewport height, clear focus indicators, scalable text, and at least 48 CSS-pixel main touch targets. Support handedness swapping. Movement must cancel on pointer loss, focus loss, dialogue opening, or app suspension. Resize the existing scene on orientation changes; do not reload the world or reset a puzzle.

Accessibility options include larger text, reduced motion, music/effects/dialogue volume, visible sound cues, non-colour puzzle symbols, guided puzzle completion, and readable control labels. Essential dialogue and menus remain DOM content. Camera shake, flashes, and motion blur are absent. A hidden-player indicator is the fallback if an unusual geometry combination defeats the fade system.

## 11. Music and sound

The soundtrack should feel hand-played and lightly mechanical: a memorable plucked melody, soft mallet notes, warm bass, brushed taps, and occasional robot chirps. Start around 100 BPM with a cheerful major/pentatonic theme. A 32-bar A–A′–B–A arrangement lasts about 77 seconds at 100 BPM and is long enough to avoid a constantly repeating four-bar loop.

Generate original music from deliberately composed note patterns using a small deterministic Web Audio sequencer and custom synthesised pluck, bell, bass, and percussion voices. Variation follows authored arrangement rules rather than random notes. This is an achievable generation route without an external music service. Imagegen generates visual assets; it is not a music generator or a 3D mesh converter. AI audio-service generation can be substituted later if a suitable service is selected.

Release target: village daytime, forest/beach, and cosy interior/evening arrangements sharing a recognisable motif; repair and house-purchase jingles; a lighthouse finale arrangement. Crossfade over about 1.5 seconds when changing zones and reduce music during dialogue. Never restart the track on every camera movement or network update.

Candidate online sound libraries were checked at pack level:

| Source | Intended shortlist | Verification status |
| --- | --- | --- |
| [Kenney Interface Sounds](https://kenney.nl/assets/interface-sounds) | Select, cancel, confirm, open bag | Source lists 100 files and CC0 |
| [Kenney Impact Sounds](https://kenney.nl/assets/impact-sounds) | Soft wood/metal contact, part insertion, furniture placement | Source lists 130 files and CC0 |
| [Kenney Digital Audio](https://kenney.nl/assets/digital-audio) | Gentle component/robot chirps, filtered to suit the game | Source lists 60 files and CC0 |

The subsequent core implementation selected three Interface Sounds clips for clicks, pipe turns, and confirmation; its original licence and conversion provenance are in [the asset manifest](assets/README.md). Extended auditioning on phone speakers and the remaining effects are still part of the audio milestone. Harsh laser-like effects are unsuitable even if their licence is convenient. Footsteps need several subdued surface variations; replace prototype sounds that fail the listening test. Water, leaves, and robot syllables can also be generated from filtered noise and short tones.

Audio begins or resumes from an explicit Start/tap gesture, with a visible mute option and graceful handling of browser blocking. Browser autoplay rules apply to Web Audio as well as audio files. [MDN autoplay guide](https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Autoplay)

## 12. What makes the design successful

The first playable is successful when an unfamiliar player can discover and complete a repair on a phone, recognise the robot's restored activity, buy and furnish a cottage, and see a friend's robot enter it. The world should look appealing at normal gameplay scale, and the camera must keep the player readable behind trees and inside the house.

The complete release adds the island's distinct districts and cast only after that small experience works. Its acceptance standard includes smooth sustained phone performance, meaningful puzzle variety, correct shared rewards and ownership, reliable return to the same browser save, honest recovery messages, and a welcoming experience for players arriving after the village story has advanced.

The first implementation milestone is therefore a representative scene and technical proof, followed by a complete small play loop. Producing every character and district before testing those foundations would put the largest amount of work behind the least certain assumptions.
