quest'n'click 4.5.0 · r1

Construite pour quest'n'click 4.5.0, révision r1. Si elle est publiée, et laquelle est la courante, est dit par publication.json.

Mini-jeux intégrés

English · Type : référence · Public : auteur · Contexte : dépôt du moteur, projet créé · Statut : prête · S'applique depuis : 4.2.5

Le moteur fournit huit mini-jeux. Un jeu en lance un avec la commande minigame ; quand il se termine, les commandes de then s’exécutent. Cette page liste chacun, son geste et ses paramètres, tels que le code de la 4.4.0 les lit (src/engine/minigames/). Pour écrire le vôtre, voir Un mini-jeu sur mesure.

Le contrat, et la liste

Chaque mini-jeu déclare son contrat : les params required, textParams (les chaînes visibles par le joueur, extraites pour la traduction) et bindings (les params qui nomment une image ou un son : validate vérifie qu’ils existent, par exemple sfx de stroke, sfx.ring / sfx.stamp de cables, ticket et sfx de scratch). Leurs métadonnées sont dans src/engine/minigames/meta.ts.

Où lancer les commandes : cette page les écrit pour le dépôt du moteur (npm run validate, npm run solve, précédées de GAME=<id> pour un autre jeu que celui par défaut). Dans un projet créé, les mêmes outils sont npx quest-n-click validate, npx quest-n-click solve (--prove, --chapters), npx quest-n-click lint, npx quest-n-click i18n status et npx quest-n-click voices, et les sources sont dans game/ au lieu de games/<id>/.

Tous les mini-jeux sauf pick et code-wheel acceptent intro (une consigne de la voix des indices au début) ; pick affiche à la place le prompt de chaque manche, code-wheel sa question. Tous sauf scratch acceptent win (la phrase de fin). Le moteur ne nomme aucune image : chaque mini-jeu reçoit les siennes par params. Les paramètres en gras sont obligatoires ; npm run validate signale ceux qui manquent (minigame "pipes": missing required param "tank"), et un id inconnu (unknown minigame: "…" (known: …)).

IdGesteParamètres
pipesToucher un tuyau pour le faire tourner d’un quart de tourtiles { ground, straight: [sec, mouillé], elbow: [sec, mouillé], tee: [sec, mouillé] } (images de base : droit gauche-droite, coude gauche-bas, té gauche-droite-bas), source, nozzle [sec, qui arrose], tank, mushrooms [assoiffé, content], cols (4), rows (3), helpAfter (15 taps avant que le bon tuyau scintille), background
strokeCaresser lentement : une jauge montetarget (image de l’animal), hand (image de la main fantôme), goal (100), sfx (bruit de la réussite), tooFast (phrase si trop vite)
pickToucher la bonne imagerounds [{ prompt, options: [image…], answer }], decoy (image piège), decoyLine, wrongLine, background
hideTrouver la bonne cachettespots [{ img, x, y, h, reply, found }], bg (image de fond), answer (index de la bonne ; par défaut la dernière)
runnerHaut de l’écran : sauter, bas : se baisserhero { run: [images], jump, slide, stumble, h, slideH }, buddy (même forme, second coureur derrière), chaser { frames: [images], fps, x, speed, h }, obstacles { jump, duck } (à sauter au sol, à éviter en se baissant), bg (décor qui défile), seconds (20), stumble (phrase quand on trébuche)
cablesTirer une fiche : son câble gigote dans le nœud ; la glisser sur la bonne priseboard (panneau de 4 prises), knot, plugs { couleur: image } (ids de couleur libres, 4 au plus), sockets (ordre des couleurs sur le panneau, de haut en bas), tints { couleur: css }, gags (lamp, phone, toaster, windows ; un gag sans ses images ou son texte est retiré), lampOn, lampOff, phone, toaster, windowsText, sfx: { ring, stamp }, helpAfter (4), background
scratchGratter un ticketticket (image), text, color, sfx (bruit pendant qu’on gratte), threshold (0,55 de la surface), cover (texte imprimé sur la couche argentée), hold (3200 ms d’affichage une fois révélé), background, skippable ; utilisé par la fin scellée via ending.scratch
code-wheelTourner deux disques, lire la fenêtre, donner la réponseactors [{ id, label, img? }] (de 3 à 11, en nombre impair), symbols (autant), answers (autant, toutes différentes), mode (parody), tries (3), seed, et les textes question, wrong, pass, win, fail, list, turnLeft, turnRight

Un jeu peut ajouter ses propres mini-jeux : export const minigames = { monjeu: { required: ['…'], run(ctx) { … } } } dans index.ts (Un mini-jeu sur mesure).

Exemple :

{ music: { push: 'minigame' } },
{ minigame: 'pipes', params: {
  tiles: { ground: 'pipes/r3c1', straight: ['pipes/r3c2', 'pipes/r3c5'], elbow: ['pipes/r3c3', 'pipes/r3c6'], tee: ['pipes/r3c4', 'pipes/r4c1'] },
  source: 'pipes/r4c2', nozzle: ['pipes/r4c3', 'pipes/r4c4'], tank: 'maison/r3c6', mushrooms: ['maison/r4c5', 'maison/r4c6'],
  intro: 'Khhh… tourne les tuyaux… jusqu’aux plantes.', win: 'Khhh… elles ont bu.',
}, then: [
  { music: { pop: true } },
  { say: ['grandpere', 'Merci. Maintenant, je me souviens : j’ai laissé ta clé au marché.'] },
  { unlock: 'marche' },
] },

{ music: { push: 'minigame' } } et { music: { pop: true } } autour passent à la musique du mini-jeu et en reviennent (Musique en stems).

Limite · minigame-solver-counts-won Le solveur ne joue pas un mini-jeu : il le compte gagné et exécute then. Une énigme que seul le résultat d’un mini-jeu décide n’est pas prouvée par npm run solve.

Passer, échouer, et le résultat

En choisir un pour l’histoire

Utilisez-en un comme une porte que le joueur comprend : la fiction dit pourquoi on y joue. La cuve a besoin d’une autre sortie, alors on pose des tuyaux. Le vendeur veut des fleurs, alors on les cueille. Restez court : 30 secondes, pas 3 minutes (trois manches de pick, une grille 4 × 3 de pipes), avec helpAfter pour que le bon tuyau brille quand le joueur est perdu, et des répliques intro et win dans la voix d’aide. Le raisonnement est dans Concevoir des énigmes.

Mini-jeuVa avec une fiction sur
pipesl’eau, la plomberie, l’arrosage, tout ce qui coule
cablesl’électricité, un standard, le nœud derrière la télé
pickles courses, choisir le bon, une recette, une confrontation
hidecache-cache, trouver quelqu’un ou quelque chose dans une scène
runnerune poursuite, une fuite, une course pour attraper un bus
strokecalmer un animal, endormir un bébé
scratchla fin scellée seulement (La fin scellée)
code-wheelune roue anti-copie des années 1990, pour rire, dessinée avec vos propres personnages (Remix)

pipes

Une grille de tuyaux (cols × rows, 4 × 3 par défaut, au moins 2 × 1) à tourner jusqu’à ce que l’eau aille de source à la buse (nozzle), qui arrose les champignons (mushrooms). Obligatoires : tiles, source, nozzle, tank. Textes : intro, win. helpAfter (15) est le nombre de taps avant que le bon tuyau scintille.

stroke

Caresser lentement la cible (target) du doigt ; la main fantôme (hand) montre le geste ; une jauge monte jusqu’à goal (100). Obligatoires : target, hand. Textes : intro, win, tooFast. Liaison : sfx doit être un son de audio.sfx.

pick

Des manches d’images ; toucher la bonne (answer) à chacune. Obligatoire : rounds. Textes : le prompt de chaque manche, decoyLine, wrongLine, win ; pas d’intro (le prompt de la première manche l’ouvre). Une image piège (decoy) dit decoyLine quand on la touche.

hide

Des cachettes dessinées sur bg ; chacune répond par sa reply, la bonne (answer, par défaut la dernière) termine. Obligatoire : spots. Textes : intro, win, la reply de chaque cachette.

runner

Une poursuite qui défile pendant seconds (20) : toucher le haut de l’écran pour sauter, le bas pour se baisser. Obligatoires : hero, chaser, obstacles, bg. Textes : intro, win, stumble. Les libellés « sauter » et « se baisser » sont des textes d’interface du jeu.

cables

Jusqu’à quatre fiches, chacune emmêlée dans le nœud (knot), à glisser sur la bonne prise du panneau (board). Obligatoires : board, knot, plugs. Textes : intro, win, windowsText. Liaisons : sfx.ring et sfx.stamp doivent être des sons de audio.sfx. Un gag (lamp, phone, toaster, windows) sans ses images ou son texte est retiré.

scratch

Une couche argentée qui part sous le doigt ; il se termine quand threshold (0,55) de la surface est gratté et que le text est resté affiché hold ms (3200). Obligatoire : ticket. Texte : intro (le text est la fin scellée déchiffrée, donnée à l’exécution, jamais un contenu à traduire). Liaisons : ticket (une image) et sfx. Utilisé par la fin scellée via ending.scratch.

code-wheel

fonction apparue en 4.1.15

« The Extremely Legitimate Pirate Check » : deux disques dessinés avec les personnages et les symboles du jeu, jamais un DRM (la réponse est dans la page, et la roue le dit). Obligatoires : actors, symbols, answers : un nombre impair d’acteurs de 3 à 11, autant de symboles et autant de réponses, toutes différentes. mode : parody (par défaut : après tries mauvaises réponses, 3 par défaut, le joueur passe, passed), story (se termine failed après ses essais), strict (pas de bouton Passer, ne laisse jamais passer), cosmetic (toute réponse gagne), disabled, daily. La graine (seed) est remplie par Remix à partir de celle du monde. Elle se tourne aux boutons, aux flèches du clavier ou à la manette, s’annonce au lecteur d’écran et se lit comme une simple liste. npm run code-wheel l’imprime. Tout le reste, sa preuve et les règles de speedrun : Remix.


Modifier la source de cette page · Signaler une erreur