Aller au contenu
quest'n'click

StudioGuidePour auteursS'applique de 4.2.1

Langue et objectifs

This page in EnglishCette page sur le wiki GitHub

L'onglet Language montre le jeu tel que le voient les outils : ses objectifs d'abord, modifiables par des formulaires générés depuis leur schéma, puis son IR, la logique du jeu en données avec le fichier:ligne qui écrit chaque pièce.

Ce que vous obtenez

Un objectif ajouté ou changé dans le fichier du jeu depuis un formulaire, prévisualisé en diff, validé avant d'être écrit ; et l'endroit, dans le code, de chaque lieu, règle, sujet, écouteur et script.

Contexte et versions

Le Studio local, dépôt du moteur ou projet créé. Vrai depuis la 4.2.1 (l'écriture est jugée avant d'être faite). Ce que sont les objectifs et comment un jeu s'en sert : Chapitres et objectifs.

Prérequis

  • Le Studio lancé (présentation).
  • Un fichier de jeu avec defineGame({...}) ; un dossier qui n'en a pas répond no defineGame({...}) in the game folder (404).

Où lancer les commandes

Dans le navigateur, sur l'onglet Language. npm run ir se lance dans le dépôt du moteur.

Étapes

  1. Lisez les objectifs. Chacun avec son id, son titre, sa condition (done), son parent, s'il est facultatif, et le fichier:ligne qui l'écrit.
  1. Edit sur un objectif, ou + objective. Le formulaire est généré depuis le schéma d'un objectif (src/studio/forms-gen.ts) : chaque champ avec sa description, l'id du parent avec les objectifs du jeu en suggestions, la condition avec l'éditeur du DSL. Un problème est nommé par fichier, id et champ avant tout envoi.
  1. Preview the change montre le diff du fichier du jeu. Apply l'écrit : le serveur valide le jeu tel qu'il serait, et refuse l'écriture si elle ajoute une erreur ; un objectif dont le done ne peut jamais tenir est donc refusé. Les erreurs du validateur s'affichent ensuite. Undo dans l'en-tête reprend un changement appliqué (Aperçu, application, annulation).
  1. Lisez l'IR. Sous les objectifs : les lieux, entités, règles, sujets, écouteurs et scripts, chacun avec l'endroit qui l'écrit, et l'IR entière en JSON. Le même JSON s'obtient en ligne de commande :

    # dans le dépôt du moteur
    npm run ir -- --json

Résultat attendu, et comment le vérifier

L'objectif apparaît dans la liste avec son nouveau fichier:ligne ; git diff montre le changement dans le fichier du jeu ; l'onglet Check valide et résout toujours.

Erreurs fréquentes

SymptômeCauseQue faire
Un champ est signalé en rouge avant l'envoiLa vérification du formulaire (fichier, id, champ)Corriger ce champ
refused: the edit adds N validation error(s): … (422)L'objectif casse le jeu (un done qui ne peut jamais tenir, un parent inconnu)Lire les erreurs et changer l'objectif
400 sur un autre chemin que objectivesSeuls les objectifs s'écrivent dans le fichier du jeuModifier les autres champs dans le code

Fichiers ou données modifiés

Le fichier du jeu qui porte defineGame({...}) (games/<id>/game.ts ou là où le jeu le définit).

Revenir en arrière

Undo dans l'en-tête, pendant la session ; sinon git.

Références