Repository navigation
FR Installer Paquet
English · Référence · Publiée, relue en partie par une personne · S'applique depuis : 4.3.0
Ce que contiennent les paquets npm du moteur, les commandes que le paquet @quest-n-click/engine donne à un projet de jeu, et
comment chaque release les vérifie. scripts/pack.mjs les fabrique depuis les fichiers que git suit ; leur
installation est décrite dans Installer depuis l'archive de la release.
Public, contexte, et statuts de ce sur quoi repose la page
Public : auteur, contributeur · Contexte : dépôt du moteur, projet créé
Depuis la 3.9, un jeu n'a plus à vivre dans le dépôt du moteur. Le moteur est empaqueté en @quest-n-click/engine
(le moteur, ses pages, ses outils et la commande quest-n-click, le modèle de jeu), @quest-n-click/create
(npm init @quest-n-click) et, depuis la 4.1.1, @quest-n-click/bridge (le Reality Bridge de référence). Depuis la
4.1.9, les connecteurs forment un quatrième paquet, @quest-n-click/connectors, et depuis la 4.2.1 le Studio hébergé
un cinquième, @quest-n-click/studio-server.
À partir de la 4.5.2, les paquets sont nommés sous le scope de l'organisation npm, @quest-n-click/…, pour que
l'organisation les possède (D53). De la 4.2.5 à la 4.5.1, ils s'appelaient quest-n-click, create-quest-n-click,
quest-n-click-bridge, quest-n-click-connectors et quest-n-click-studio-server. Les commandes gardent ces noms
(quest-n-click dev, npx quest-n-click-bridge serve), et les archives jointes à une release aussi
(quest-n-click-<version>.tgz, create-quest-n-click-<version>.tgz, …). npx quest-n-click migrate déplace les
imports d'un jeu (quest-n-click/content devient @quest-n-click/engine/content), son tsconfig.json et ses
dépendances (Notes de mise à jour : 4.5).
Jusqu'à la 4.2.4, ils s'appelaient web-scumm, create-web-scumm, web-scumm-bridge, web-scumm-connectors et
web-scumm-studio-server (le projet s'appelait web-scumm, D47). Pendant toute la 4.2.x, chaque release les livrait
aussi sous leurs anciens noms, et les anciennes commandes et les anciens imports (web-scumm dev,
web-scumm/content) marchaient encore, après une ligne d'avertissement. La 4.3.0 les retire :
npx quest-n-click migrate renomme ce qu'un jeu dit encore (Venir de web-scumm).
Les cinq sont sur npm depuis la 4.5.2, et chaque release les joint aussi sous forme d'archives (Installer depuis npm).
L'archive quest-n-click-<version>.tgz.
Les fichiers suivis sous src/, tools/, studio-server/, cli/, games/_template/, public/icons/,
public/fonts/, public/og.png, les fichiers de stockage et de migrations que le journal du Studio partage avec le
Bridge (bridge/src/store*.ts, migrations.ts, allowlist.ts), index.html, studio.html, vite.config.ts,
tsconfig.json, requirements.txt et LICENSE. Jamais un jeu du dépôt, un
test, une page de documentation source ni un build. Laissés aussi hors de tools/ : l'audit des assets, la
vérification croisée et les jeux de données du Bridge, le harnais de fuzz des connecteurs.
La commande quest-n-click (cli/quest-n-click.mjs), et cinq entrées publiques : @quest-n-click/engine/content, /player,
/minigames, /testing, /reality (API publique), plus @quest-n-click/engine/cli/*. Tout le reste est
interne.
Les dépendances d'exécution du moteur (earcut, howler, navmesh, zod) et ce dont les outils ont besoin dans un
projet de jeu : Vite et vite-plugin-pwa, tsx, @typescript/typescript6 (l'API du compilateur qu'utilisent les
outils), @types/node, @types/howler, Tweakpane, le SDK MCP. Les tests et Playwright restent dehors : c'est pourquoi
quest-n-click doctor demande un contournement dans un projet créé (doctor).
Le paquet ne porte pas de verrou : npm résout ces plages à l'installation.
fonction apparue en 4.5.0
Depuis la 4.5.0, le paquet porte la documentation de sa version, écrite par npm run wiki -- bundle dans le dossier
préparé avant npm pack (jamais commitée) : index.json, md/<lang>/<id>.md, legacy/<NAME>.md, assets/ et
bundle-manifest.json avec le sha256 de chaque fichier. Deux empaquetages d'un même commit donnent les mêmes octets.
Le serveur MCP d'un projet créé la lit (read_doc, search_docs, list_docs).
L'archive create-quest-n-click-<version>.tgz. Un seul fichier, index.mjs, la commande create-quest-n-click, qui
lance quest-n-click create depuis le moteur dont il dépend (@quest-n-click/engine à la même version) :
npm init @quest-n-click my-game "Mon jeu" une fois sur npm (ou npx @quest-n-click/create my-game "Mon jeu").
npx create-quest-n-click my-game marche toujours et lance la même chose : le create-quest-n-click sans scope est un
relais, publié sur le compte d'un mainteneur, dont la commande importe @quest-n-click/create/index.mjs. Ce paquet
garde donc index.mjs à sa racine et aucune carte exports.
L'archive quest-n-click-bridge-<version>.tgz. Le Reality Bridge de référence, seul : bridge/src regroupé par esbuild en un seul module (src/cli.mjs, compilé
depuis la 4.1.2, il tourne donc avec Node seul), ses politiques Datalog et ses migrations SQL, la commande
quest-n-click-bridge (init, serve, grant, rotate, revoke, doctor, compact, migrate, tenant,
backup, restore). Le WebAssembly de Biscuit et zod sont des dépendances ; pg et OpenTelemetry ne sont chargés par
leur nom que s'ils servent. Il porte son npm-shrinkwrap.json (depuis la 4.1.19) : une installation ne résout rien.
La CLI du Bridge.
L'archive quest-n-click-connectors-<version>.tgz. Le SDK des connecteurs, la commande quest-n-click-connector <email|telnet|ssh|open-badge> --config <fichier.json> et
les quatre connecteurs regroupés en un module, avec le worker du lecteur MIME à côté ; ssh2 est une dépendance. Un
paquet d'opérateur, qui tourne à côté d'un Bridge, jamais celui d'un jeu. Installez-le sans code natif :
npm install --omit=optional --ignore-scripts quest-n-click-connectors-<version>.tgz. Il porte son
npm-shrinkwrap.json. Expérimental (4.1.9). Les connecteurs.
L'archive quest-n-click-studio-server-<version>.tgz. Les commandes quest-n-click-studio-server et
quest-n-click-studio-worker, qui font tourner le serveur et l'application de traitement du moteur installé à côté
(@quest-n-click/engine, un pair optionnel : la même version, sinon elles s'arrêtent sur
… runs with @quest-n-click/engine <v>, not <w>), et la page du Studio construite une fois. Ses propres dépendances sont
verrouillées dans son npm-shrinkwrap.json ; installé depuis le fichier d'archive plutôt que depuis le registre, npm
les résout depuis leurs plages (quest-n-click-studio-server deps dit lesquelles).
Installer depuis l'archive de la release.
npx quest-n-click help les liste. Le package.json du projet nomme les habituelles comme scripts npm (dev,
studio, assets, verify, build, release, preview) :
| Commande | Quoi |
|---|---|
quest-n-click dev / studio
|
le jeu, le Studio |
quest-n-click assets |
l'art et l'audio vers public/assets
|
quest-n-click verify |
validation, solveur, traductions, lint, playtests |
quest-n-click doctor |
les prérequis : Node et Chromium requis ; Python, ffmpeg et WebKit optionnels, signalés s'ils manquent (4.1.6) ; demande un contournement dans un projet créé (doctor) |
quest-n-click mcp |
le serveur MCP de ce jeu, sur stdio, pour un assistant (4.1.6) |
quest-n-click build |
assets, verify, le build, chaque fichier de dist/ justifié |
quest-n-click release [--commercial] |
build, puis les portes de release : verrou de provenance, budgets, traductions, voix, playtests stricts, la preuve |
quest-n-click validate, solve, lint, i18n, weight, provenance, playtests, voices, prompts, ids
|
chaque outil, avec ses options |
quest-n-click speedrun verify <run.wsrun> |
un speedrun rejoué contre le jeu : son verdict, son code et sa raison |
quest-n-click bridge, solve-reality
|
un Bridge de référence pour le jeu ; un jeu à reality.signals prouvé fermé |
quest-n-click preview |
sert dist/ en local |
quest-n-click create <dossier> ["Titre"] [--engine=<spec>] |
un nouveau projet de jeu depuis le modèle |
quest-n-click migrate |
amène les sources du jeu au format du moteur installé (Mettre à jour) |
Elles tournent avec le projet comme dossier de travail
(WEB_SCUMM_PROJECT) : le moteur dans
node_modules/@quest-n-click/engine est lu, jamais écrit. Toutes les options sont dans Ligne de commande.
-
npm run fresh-install(un job de CI, quand un paquet, le modèle ou un chemin d'écriture a changé) : empaquette le moteur (npm run pack), crée un jeu depuis le modèle empaqueté dans un dossier vide hors du dépôt, installe l'archive, lanceassets,verifyetbuild, et joue le jeu jusqu'à sa fin dans Chromium. Un fichier du nouveau projet qui nomme le dépôt le fait échouer. -
npm run external-consumer(chaque candidat de release, sous Ubuntu, macOS et Windows) : les archives du candidat lui-même, jamais réempaquetées, installées hors du dépôt : un jeu créé sur une release plus ancienne et passé à elles, une ancienne sauvegarde jouée jusqu'à la fin, le bundle de documentation vérifié contre son manifeste et lu par un vrai client MCP,@quest-n-click/create, le Bridge et les connecteurs depuis leurs archives. -
npm run readme-quickstart: le démarrage rapide du README, lancé comme un lecteur le copie. -
npm run upgrade-check -- --from=<version>: un jeu passé d'une release plus ancienne à celle-ci. -
scripts/studio-install-smoke.mjs: les archives du moteur et du Studio Server installées ensemble, un jeu servi.
Chaque release joint les cinq archives avec leurs SBOM et leurs sommes. Les publier sur npm revient aux mainteneurs
(l'organisation quest-n-click possède les cinq noms à scope ; à partir de la 4.5.2 la CI les met en scène, un
propriétaire approuve avec sa 2FA, et la 4.5.2 a été la première publiée) :
Paquets npm.
-
npm run pack(node scripts/pack.mjs [--out=<dossier>] [--publish-dry-run] [--build-id <id>] [--allow-dirty]), qui écrit par défaut dans.cache/pack -
npm run locks(les verrous du Bridge et des connecteurs,scripts/locks/; un verrou qui ne correspond plus arrêtepack) - Installer depuis l'archive de la release, Ligne de commande, Paquets npm
-
scripts/pack.mjs,scripts/fresh-install.mjs,scripts/external-consumer.mjs
Generated publication · publication générée — current documentation · documentation courante: quest'n'click 4.5.4 r2, documentation revision · révision de la documentation 63112c877c587cc4fad16b25a3400408db2c36bd.
Latest documentation · dernière documentation: https://quest-n-click.cleverapps.io/docs · https://quest-n-click.cleverapps.io/fr/docs; earlier versions · versions précédentes: each release's quest-n-click-docs-<version>.tar.gz · l'archive quest-n-click-docs-<version>.tar.gz de chaque release, https://github.com/Quest-n-Click/quest-n-click/releases
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)
Démarrer (6)
Jouer (9)
Installer (18)
- Prérequis
- Installer depuis l'archive de la release
- Installer depuis npm
- Installer depuis le dépôt pour travailler sur le moteur
- doctor : vérifier sa machine
- Outils pour les images
- Outils audio : ffmpeg, fluidsynth, Furnace, uv
- Mettre à jour
- Notes de mise à jour : 4.5
- Notes de mise à jour : 4.4
- Notes de mise à jour : 4.3
- Notes de mise à jour : 4.2
- Notes de mise à jour : 4.1
- Notes de mise à jour : v3
- Notes de mise à jour : v2 vers v3
- Venir de web-scumm
- Référence du paquet
- Dépannage de l'installation
Créer un jeu (55)
- Votre premier jeu
- Organisation d'un projet créé et du dépôt du moteur
- La boucle de travail
- Principes du contenu et contrat d'identité
- Salles
- Géométrie : placement, zones de marche, masques, calques, caméra
- Un objet est visible mais inaccessible
- Réactions
- Commandes du jeu
- Conditions
- Drapeaux, variables et événements : lequel choisir
- Code sur mesure
- Personnages
- Objets et inventaire
- Carte du monde
- Dialogues
- Scripts et événements
- Faire bouger les personnages : patrouilles et marches
- Sorties
- Chapitres et objectifs
- État et sauvegardes : persistant ou temporaire, renommer un id, migrations
- Mise en scène : salles larges et animations
- La scène : lumières, particules, sols
- Habillage et polices
- Titre et générique
- Héros : plusieurs personnages et choix du héros
- Mini-jeux intégrés
- Un mini-jeu sur mesure
- Traductions
- Musique en stems
- Bruitages
- Voix : par langue et par héros
- Images : prompts, découpe des planches, transparence, échelle
- Provenance des assets
- Le storyboard, source de vérité
- Concevoir des énigmes
- Mécaniques classiques
- Pages de relecture
- Référence du DSL
- Vérifier son jeu
- Ce que prouve le solveur
- Options du solveur
- Playtests
- Remix
- Speedrun pour les auteurs
- La fin scellée
- Modèle de production
- Jeux d'exemple
- Travailler avec une IA
- Construire et publier un jeu
- Publier sur GitHub Pages
- Le jeu statique sur Clever Cloud
- Autres hébergeurs statiques
- Sous-chemin, cache et service worker, déploiement incomplet, retour arrière
- Tester sur un téléphone en réseau local
Studio local (24)
- Le Studio local : présentation et lancement
- Modifier une salle
- Placement et scène
- Aperçu, application, annulation
- Storyboard
- Assets et découpe
- Vérifier : validateur, solveur, chemin critique, chaleur, santé, couverture
- Captures avant et après
- Diff sémantique
- Jouer et rejouer une session
- Explication des règles
- Langue et objectifs
- Voix et matrice héros × langues
- Carte
- Notes
- Remix dans le Studio
- Musique
- L'Assistant : votre propre clé
- Mode démo et studio-apply
- Sécurité en local et en réseau local
- API du Studio
- MCP local : configurer chaque client
- Outils MCP
- Dépannage du Studio
Studio d'équipe (21)
- Ce qui tourne où
- Concepts : révision, transaction, pan, bail, aperçu, build
- Débuter comme dev invité
- Travailler ensemble au quotidien
- Rôles et actions : la matrice complète
- Invitations
- Gérer les membres
- Écriture refusée sur le Studio hébergé : révision de base périmée (409)
- Écriture refusée sur le Studio hébergé : pan verrouillé (423)
- Reprendre après un bail perdu, une déconnexion ou un aperçu périmé
- Commentaires
- Carte et diff sémantique
- Publier des builds
- MCP distant
- Le jeu dans Git
- Mettre à jour le moteur d'un jeu hébergé
- Assets hébergés
- La ligne de commande du serveur
- Routes de santé et de métriques
- L'essayer en local avec compose.yml
- Limites connues
Clever Cloud (23)
- Clever Cloud : vue d'ensemble, coût et prérequis
- Applications et add-ons
- Domaines et TLS
- Keycloak
- OIDC générique et GitLab
- Configuration
- Premier déploiement
- Sauvegardes
- RPO et RTO
- Exercice de restauration sur une installation vierge
- Redéploiements
- Mettre à jour le serveur et vérifier l'état après une migration
- Limites du retour arrière
- Supervision
- Sécurité
- Renouveler les clés
- Récupérer l'accès administrateur
- Changer de domaine ou de fournisseur OIDC
- Worker, PostgreSQL ou Cellar en panne
- Exporter le jeu et quitter l'installation
- Rétention
- Dépannage sur Clever Cloud
- Coûts et démontage
Reality Bridge et connecteurs (16)
- Le Reality Bridge : ce que c'est
- Démarrage rapide
- Garanties
- Installer et lancer le Bridge
- Sauvegarde et restauration
- Plusieurs tenants
- Signaux et manifeste
- La ligne de commande du Bridge
- Vue d'ensemble des connecteurs
- Connecteur email
- Connecteur Telnet
- Connecteur SSH
- Connecteur Open Badges
- Le SDK des connecteurs
- Sécurité : Biscuit et signatures
- Dépannage du Bridge et des connecteurs
Contribuer (25)
- Bienvenue
- Préparer son poste de développement
- La boucle de développement
- Avant une pull request
- Conventions
- Écrire la documentation
- Architecture
- Visite du code
- Frontières d'import
- Quels tests tournent quand
- Tests de mutation
- Le cliquet de couverture
- La référence de qualité
- La CI expliquée
- Passes de terrain
- Mesures de performance
- Publier une release
- Paquets npm
- Décisions et ADR
- Gouvernance
- Pull requests des bots
- Contribuer avec des agents IA
- Politique de sécurité
- Code de conduite
- Licences et crédits