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.

Tester sur un téléphone en réseau local

English · Type : procédure · Public : auteur · Contexte : dépôt du moteur, projet créé · Statut : prête · S'applique depuis : 4.1.2

Un jeu se joue sur un téléphone tenu en paysage. Cette page lance le serveur de développement pour qu'un téléphone branché sur le même Wi-Fi ouvre le jeu en cours d'écriture, rechargé à chaque modification, et dit ce qui reste protégé pendant ce temps.

Ce que vous obtenez

Le jeu que vous modifiez, ouvert sur votre téléphone à http://<adresse de votre machine>:5173/, rechargé chaque fois que vous enregistrez un fichier. Le Studio et l'éditeur de placement restent accessibles depuis le téléphone, mais seulement avec un jeton valable pour la session, que la commande affiche.

Contexte et versions

Prérequis

Où lancer les commandes

Sur votre machine, dans un terminal ouvert dans le dépôt du moteur (ou dans le projet créé, pour sa propre commande). Rien ne tourne sur le téléphone : il ouvre seulement une URL.

Étapes

  1. Lancez le serveur de développement sur le réseau.

    # dans le dépôt du moteur, sur votre machine
    npm run dev:lan
    
    # dans un projet créé, sur votre machine
    npm run dev -- --host
    

    dev:lan fait d'abord pointer @game sur le jeu courant (GAME=<id>, sinon le dernier jeu sélectionné, sinon package.json → config.game), puis lance Vite à l'écoute de toutes les interfaces (--host 0.0.0.0). Avant les lignes de Vite, il affiche un bandeau :

    LAN write access is protected by this one-session token:
      <token>
    Studio: http://192.168.1.20:5173/__studio/?token=<token>
    Layout editor: http://192.168.1.20:5173/?edit=<room>&token=<token>
    

    L'adresse est la première adresse IPv4 de votre machine sur le réseau. Vite liste ensuite ses propres URL Network:.

  1. Sur le téléphone, ouvrez http://<cette adresse>:5173/ et passez en paysage.
  1. Jouez ce que vous venez d'écrire. Avec la lampe de Votre premier jeu, touchez la lampe avec Utiliser : la ligne s'affiche, l'accessoire change, et la sauvegarde s'en souvient au rechargement. C'est la boucle : écrire une règle, la placer, vérifier, jouer.
  1. Facultatif : pour modifier depuis un autre appareil, ouvrez l'URL Studio ou Layout editor du bandeau, avec son ?token=. La première requête avec le jeton pose un cookie HttpOnly, SameSite=Strict : les pages suivantes n'ont plus besoin du jeton dans l'URL. Pour lancer le Studio lui-même sur le réseau, utilisez npm run studio:lan à la place de l'étape 1 (dépôt du moteur) : il ouvre l'URL du Studio avec le jeton.

Limite · dev-server-no-offline Le serveur de développement n'est pas le jeu construit : le téléphone teste les règles, le placement, le texte et le toucher, pas l'installation comme application, le hors-ligne ni le cache. Testez-les sur un build servi en HTTPS (Construire et publier un jeu, Sous-chemin, cache et service worker).

Ce qui reste protégé

Garantie · lan-writes-need-token · référencée · exécutée sur aff6caab7514 · portée vérifiée par son auteur (IA), pas relue En mode réseau local, le Studio répond 401 à une requête sans le jeton, et 403 à une écriture dont l'Origin est un autre site même avec le jeton. Le test fait tourner la garde sur un serveur HTTP local ; il ne lance pas Vite.

Limite · lan-trusted-network Le jeton protège les écritures, pas la lecture : n'importe qui sur le même réseau peut ouvrir le jeu et y jouer tant que le serveur tourne. Utilisez-le sur un réseau de confiance, et arrêtez le serveur (Ctrl+C) une fois fini.

Résultat attendu, et comment le vérifier

Le téléphone affiche l'écran titre, puis le jeu en paysage. Enregistrez un fichier de lieu sur la machine : le téléphone se recharge avec la modification. Dans le Studio ouvert par l'URL du bandeau, un enregistrement passe (pas de 401).

Erreurs fréquentes

SymptômeCauseCorrection
Le navigateur du téléphone attend, puis dit que le site est inaccessibleLe téléphone est sur un autre réseau, le Wi-Fi isole ses clients, ou le pare-feu bloque le port 5173Mettez les deux sur le même Wi-Fi, autorisez Node dans le pare-feu (macOS le demande au premier lancement), ou essayez un autre réseau
Ça marche sur la machine (localhost) mais pas sur le téléphoneC'est npm run dev qui tourne, pas npm run dev:lan : Vite n'écoute que sur 127.0.0.1Arrêtez-le et lancez npm run dev:lan (projet créé : npm run dev -- --host)
401 Studio token required en enregistrant depuis le téléphoneLa page du Studio ou de l'éditeur a été ouverte sans le ?token= du bandeauOuvrez l'URL du bandeau ; le jeton change à chaque démarrage du serveur
403 the Studio answers its own names only …La page a été ouverte sous un nom qui n'est ni celui de la machine ni l'adresse affichée (un nom .local, l'adresse d'une autre interface), ou dans un projet créé lancé avec --hostOuvrez l'adresse exacte du bandeau ; dans un projet créé, modifiez sur la machine
✖ games/<id>/index.ts not found (GAME=<id>)GAME nomme un jeu qui n'existe pasVérifiez ls games, ou retirez GAME
Port 5173 occupé, Vite en prend un autreUn autre serveur de dev tourneArrêtez-le, ou ouvrez le port qu'affiche Vite ; les URL du bandeau disent 5173 quel que soit le choix de Vite

Fichiers ou données modifiés

dev:lan n'écrit rien d'autre que le lien .cache/game vers le jeu courant. Ce que le téléphone sauvegarde (la progression) reste dans le stockage de son navigateur. Une écriture faite via le Studio ou l'éditeur modifie les fichiers du jeu sur la machine, comme sur localhost.

Retour arrière

Arrêtez le serveur avec Ctrl+C : le jeton disparaît avec lui, et npm run dev se remet à n'écouter que sur 127.0.0.1.

Références


Modifier la source de cette page · Signaler une erreur