Repository navigation
EN Team Starting As A Dev
Français · Type: tutorial · Audience: author · Context: hosted Studio · Status: ready · Applies from: 4.2.3
The Studio Server (hosted team Studio) · contract: experimental · verified by CI (support matrix of 4.4.0, 2026-10-23): Postgres, S3 and Keycloak in CI; Chromium and Firefox (job studio-hosted); WebKit on macOS, by hand only · automated checks: jobs
studio-hosted,studio-install-smoke; CI planstudioHosted; 3 test files · people's passes:studio-hostednot run (#149),studio-collabnot run (#150),studio-previewnot run (#166),studio-assets-hostednot run (#167),studio-mcp-remotenot run (#196),studio-oidc-genericnot run (#197) · known limits:tutorial-not-covered
You received an invitation link to a team Studio. In about fifteen minutes you will log in, find your way around, make a first change in your name, see it in the game, and know how to stay out of your teammates' way.
Nothing new in the game yet: a first small edit (a note, or a line of text in a room), saved as a revision in your name, seen in the game's preview. At the end the Studio's header shows "revision N" with your change, and your avatar among the people here.
- The invitation link an owner sent you. It works once, within 7 days.
- An account at your team's identity provider (Keycloak, GitLab or another) whose email is verified and is the one the invitation names.
- A recent desktop browser: Chromium, Firefox, or Safari on macOS. The hosted Studio is experimental; Safari is the
studio-hostedhuman pass, not yet made. - Nothing to install on your machine.
-
Open the invitation link. You are sent to the provider's login page. Log in with the invited email. You come back to the Studio. You see the Studio with its tabs: Rooms, Storyboard, Map, Assets, Voices, Music, Check, Play, Language, Remix, Notes.
If you see "Access not granted" instead, the invitation did not match: it expired, was already used, or your verified email differs. Ask the owner for a new one (Invitations).
- Read the header. Left to right: "revision N" (the project's current revision; its dot is green while the live stream is up), the game's health at a revision, one avatar per person here (hover for where they are), and your name with your role ("Léa · dev ▾"). Your name opens a menu: Spans…, Log out (and Members… for an owner). You see your own avatar among the others.
- See who holds what. Click your name, then Spans…. Every room, and every other part of the game (items, cast, rules, story, a language, voices, assets, notes, the map, playtests, signals, the rest), is listed with its holder or "free". You see which rooms your teammates are working in. Close the panel.
- Make a first change. Open the Notes tab and add a note ("Hello, I am on the kitchen today"), or open a free room in Rooms and change a line of text, then save. You see the header move to the next revision. In the Rooms tab, the room's chip now says "held by you": saving took its span for you for two minutes, renewed while your Studio is open.
- See it in the game. The room view shows the game as a preview of one revision. Its label says "preview of revision N", then "revision N+1 building…": the server's worker builds your revision. A few moments later the view loads it by itself. In the Play tab, click Load the latest preview to play it. You see your change.
- Check the game. In Check, run the validator and the solver. You see the results, with the revision they were made at; they are marked stale once someone writes again.
- Say something without writing the game. In Notes, the Comments panel takes a comment on a room, an item, a rule or the game itself, at the current revision. Your teammates see it at once. See Comments.
- Log out from the menu under your name when you are done for the day, or just close the tab: your spans are released two minutes later.
Limit ·
tutorial-not-coveredThis tutorial leaves out what a dev does not do on day one: the Assets tab (uploads and cutting), Prepare, publishing builds, Git and the engine's upgrade. A hosted Studio has no captures, no Assistant yet, and the state inspector, the rule explainer and the replays beside the Play tab need the local Studio (see Known limits).
- Every save is one revision in your name (Concepts).
- Saving a file holds its span for you, and someone else's span refuses your save (Concepts, 423).
- The game you see is the preview of one revision (Concepts).
- Your role decides what you may do (Roles and actions).
- Working together day to day: the routine, undo, conflicts.
- Recovering after a lost lease, a disconnection or a stale preview.
- Remote MCP: an AI agent working in your name.
Generated publication · publication générée — current documentation · documentation courante: quest'n'click 4.4.0 r1, documentation revision · révision de la documentation 8dc717c69acb62c4742b69c54a7e7dfb620f75d8.
Earlier versions and permalinks · versions précédentes et liens permanents: https://wanoo.github.io/quest-n-click/docs/
An edit made in this wiki is overwritten at the next publication · une modification faite dans ce wiki est écrasée à la publication suivante.
Edit the source · Modifier la source · Report an error · Signaler une erreur
Index (6)
Start (6)
Play (9)
Install (17)
- Requirements
- Install from the release archive
- Install from npm, once published
- Install from the repository to work on the engine
- doctor: checking your machine
- Image toolchain
- Audio toolchain: ffmpeg, fluidsynth, Furnace, uv
- Upgrade
- Upgrade notes: 4.4
- Upgrade notes: 4.3
- Upgrade notes: 4.2
- Upgrade notes: 4.1
- Upgrade notes: v3
- Upgrade notes: v2 to v3
- Coming from web-scumm
- Package reference
- Install troubleshooting
Create a game (55)
- Your first game
- Layout of a created project and of the engine repository
- The working loop
- Content principles and the identity contract
- Rooms
- Geometry: placement, walk zones, masks, layers, camera
- Something is visible but unreachable
- Reactions
- Game commands
- Conditions
- Flags, variables and events: which to use
- Custom code
- Characters
- Items and inventory
- World map
- Dialogues
- Scripts and events
- Moving characters: patrols and walks
- Exits
- Chapters and objectives
- State and saves: persistent or temporary, renaming an id, migrations
- Staging: wide rooms and animations
- The stage: lights, particles, floors
- Skin and fonts
- Title and credits
- Heroes: several characters and hero choice
- Built-in minigames
- A custom minigame
- Translations
- Music in stems
- Sound effects
- Voices: per language and per hero
- Images: prompts, cutting sheets, transparency, scale
- Asset provenance
- The storyboard, source of truth
- Puzzle design
- Classic mechanics
- Review pages
- DSL reference
- Checking your game
- What the solver proves
- Solver options
- Playtests
- Remix
- Speedrun for authors
- The sealed ending
- Production template
- Example games
- Working with an AI
- Build and release a game
- Publish on GitHub Pages
- The static game on Clever Cloud
- Other static hosts
- Sub-path, cache and service worker, incomplete deploys, going back
- Testing on a phone over the LAN
Local Studio (24)
- The local Studio: overview and launch
- Edit a room
- Placement and stage
- Preview, apply, undo
- Storyboard
- Assets and cutting
- Check: validator, solver, critical path, heat, health, coverage
- Before and after captures
- Semantic diff
- Play and replay a session
- Rule explainer
- Language and objectives
- Voices and the heroes × languages matrix
- Map
- Notes
- Remix in the Studio
- Music
- The Assistant: bring your own key
- Demo mode and studio-apply
- Local and LAN security
- Studio API
- Local MCP: setting up each client
- MCP tools
- Studio troubleshooting
Team Studio (21)
- What runs where
- Concepts: revision, transaction, span, lease, preview, build
- Starting as an invited dev
- Working together day to day
- Roles and actions: the full matrix
- Invitations
- Managing members
- Write refused on the hosted Studio: stale base revision (409)
- Write refused on the hosted Studio: span locked (423)
- Recovering after a lost lease, a disconnection or a stale preview
- Comments
- Map and semantic diff
- Publishing builds
- Remote MCP
- The game in Git
- Upgrading the engine of a hosted game
- Hosted assets
- The server's command line
- Health and metrics routes
- Trying it locally with compose.yml
- Known limits
Clever Cloud (23)
- Clever Cloud: overview, cost and prerequisites
- Apps and add-ons
- Domains and TLS
- Keycloak
- Generic OIDC and GitLab
- Configuration
- First deployment
- Backups
- RPO and RTO
- Restore the Studio on a fresh installation
- Redeploys
- Upgrading the server and checking state after a migration
- Limits of going back
- Monitoring
- Security
- Rotating keys
- Recovering admin access
- Changing domain or OIDC provider
- Worker, PostgreSQL or Cellar down
- Exporting the game and leaving the installation
- Retention
- Clever Cloud troubleshooting
- Costs and teardown
Reality Bridge and connectors (16)
- The Reality Bridge: what it is
- Quick start
- Guarantees
- Install and run the Bridge
- Backup and restore
- Several tenants
- Signals and the manifest
- The Bridge's command line
- Connectors overview
- Email connector
- Telnet connector
- SSH connector
- Open Badges connector
- The connector SDK
- Security: Biscuit and signatures
- Bridge and connector troubleshooting
Contribute (25)
- Welcome
- Developer setup
- The dev loop
- Before a pull request
- Conventions
- Writing documentation
- Architecture
- Code tour
- Import boundaries
- Which tests run when
- Mutation testing
- The coverage ratchet
- The quality baseline
- CI explained
- Field passes
- Benchmarks
- Releasing
- npm packages
- Decisions and ADRs
- Governance
- Bot pull requests
- Contributing with AI agents
- Security policy
- Code of conduct
- Licences and credits