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.

Mettre à jour

English · Type : procédure · Public : auteur · Contexte : projet créé · Statut : prête · S'applique depuis : 4.3.0

Passer un jeu à un moteur plus récent tient en trois commandes : installer le nouveau moteur, migrate, verify. Cette page les donne avec les vérifications autour, d'abord pour un projet créé, puis pour un jeu à l'intérieur du dépôt du moteur et pour un jeu sur un Studio hébergé.

En bref

# dans le projet créé
npm install https://github.com/wanoo/quest-n-click/releases/download/v<version>/quest-n-click-<version>.tgz
npx quest-n-click migrate
npm run verify

Une fois le moteur sur npm, la première ligne devient npm install quest-n-click@<version>. Lisez d'abord les notes de mise à jour de chaque version franchie ; le reste de cette page est la même procédure avec ses vérifications.

Ce que vous obtenez

Votre jeu sur la nouvelle version du moteur : ses sources au format d'écriture de ce moteur, vérifiées par verify, et les sauvegardes de ses joueurs qui se chargent toujours.

Contexte et versions

Prérequis

Où lancer les commandes

Dans le dossier du projet créé, sur votre machine.

Étapes

  1. Commitez le projet tel qu'il est, pour que la mise à jour soit un seul changement relisible :

    # dans le projet créé
    git add -A && git commit -m "Before the engine upgrade"
    
  1. Installez le nouveau moteur. Aujourd'hui, depuis l'archive de la release (le moteur n'est pas sur npm : Installer depuis npm, une fois publié) :

    # dans le projet créé
    npm install https://github.com/wanoo/quest-n-click/releases/download/v4.4.0/quest-n-click-4.4.0.tgz
    

    Une fois le moteur sur npm, cette étape devient npm install quest-n-click@<version>.

  1. Amenez les sources au format du moteur installé. --check dit d'abord ce qui est dû et n'écrit rien :

    # dans le projet créé
    npx quest-n-click migrate --check
    npx quest-n-click migrate
    

    migrate fait, dans l'ordre : rend tsconfig.json acceptable pour TypeScript 7 (retire baseUrl, rend les chemins relatifs, 4.1.8) ; renomme ce qui dit encore web-scumm (imports, tsconfig.json, commandes de package.json, 4.3.0) ; puis, pour un jeu encore au schéma d'écriture 2, écrit ses ids stables (ids --write --map) et affiche ce qui reste à faire à la main. Un jeu déjà au schéma 3 obtient ✔ [<id>] authoring schema 3: up to date with this engine.

  1. Si migrate a renommé package.json, réinstallez : npm install.
  1. Vérifiez le jeu, puis refaites ses assets si les notes le demandent :

    # dans le projet créé
    npm run verify
    npm run assets
    
  1. Chargez une sauvegarde faite avant la mise à jour. Dans npm run dev, reprenez une sauvegarde automatique ou un emplacement, ou importez une sauvegarde exportée depuis le menu de pause, et continuez à jouer.
  1. Construisez : npm run build, puis commitez la mise à jour.

Garantie · migrate-check-says-due · référencée · exécutée sur aff6caab7514 · portée vérifiée par son auteur (IA), pas relue migrate --check sur un jeu encore au schéma d'écriture 2 sort avec le code 1 et dit authoring schema 2: a migration to 3 is due.

Le test le lance sur un jeu de test au schéma 2. Que rien ne soit écrit se lit dans le code (--check sort avant l'écriture des ids) ; le test ne l'affirme pas.

Les sauvegardes des joueurs

Résultat attendu, et comment le vérifier

npx quest-n-click help affiche la nouvelle version sur sa première ligne. npx quest-n-click migrate --check sort avec 0. npm run verify passe. Une ancienne sauvegarde se charge et se joue.

Erreurs fréquentes

SymptômeCauseCorrection
npm error 404 Not Found - GET https://registry.npmjs.org/quest-n-clicknpm install quest-n-click@<version> : pas sur npmInstallez l'URL de l'archive (étape 2)
✖ tsconfig.json has baseUrl, which TypeScript 7 refuses: a migration is dueUn projet fait avant la 4.1.8npx quest-n-click migrate
✖ still under the former name web-scumm: …Un projet fait avant la 4.2.5npx quest-n-click migrate, puis npm install (Venir de web-scumm)
✖ [<id>] authoring schema <n> is newer than this engine's (3): install a newer quest-n-clickLe jeu a été écrit pour un moteur plus récentInstallez ce moteur-là, pas un plus ancien
Un import de web-scumm/content (ou d'un autre web-scumm/…) ne se résout plusDes imports sous l'ancien nom, retiré en 4.3.0npx quest-n-click migrate

Fichiers ou données modifiés

package.json et package-lock.json (la version du moteur) ; ce que réécrit migrate : tsconfig.json, les scripts de package.json, les sources du jeu (les imports, et les ids stables pour un jeu au schéma 2, avec ids.migration.json et ids.paths.json) ; public/assets/ après assets. Les sauvegardes des joueurs restent dans leurs navigateurs : rien de votre côté ne les réécrit ; le nouveau moteur les lit.

Reprise ou retour arrière

Avant la sortie de la release : git reset --hard au commit de l'étape 1, puis npm install pour remettre l'ancien moteur. Une fois que des joueurs ont joué sur la nouvelle version, revenir en arrière n'est pas pris en charge : leurs sauvegardes peuvent déjà être dans un format que l'ancien moteur ne lit pas.

Un jeu à l'intérieur du dépôt du moteur

Dans le dépôt du moteur, le moteur est le checkout lui-même : passez-le à la nouvelle version (git pull, ou git checkout v<version>), puis :

# à la racine du dépôt du moteur
npm ci
GAME=<id> npm run migrate -- --check
GAME=<id> npm run migrate
npm run verify:game

Un jeu sur un Studio hébergé

Le propriétaire met à jour le moteur d'un jeu hébergé depuis le Studio (POST /api/engine/migrate) : la migration tourne sur l'application de traitement, est jugée comme une révision, et s'écrit en une seule opération annulable, ou est refusée (422) sans rien écrire : Mettre à jour le moteur d'un jeu hébergé. La mise à jour du serveur lui-même est décrite dans Mettre à jour le serveur.

Références


Modifier la source de cette page · Signaler une erreur