[Vorple 3] Les sauvegardes

Salut à tous,

Un aspect de Vorple m’interpelle : la manière dont il gère les sauvegardes.

Avec l’interpréteur web classique d’Inform, les fichiers de sauvegardes semblent être enregistrés dans le dossier du jeu. Du coup, selon les droits d’accès des serveurs, cette fonctionnalité peut ne pas être opérationnelle.
C’est ce qui s’est passé là où j’ai hébergé La Tour d’Orastre. Il semblait possible de sauvegarder, mais en réalité le fichier n’était pas vraiment créé et, au moment de charger, un bug se manifestait.

Lorsqu’on sauvegarde avec l’interpréteur Vorple, il demande un nom, tout comme il en demande un lors du chargement. Après vérification du dossier du jeu, je n’ai trouvé aucun fichier de sauvegarde.
Savez-vous où ils se trouvent ?
Pensez-vous que ce mode de sauvegarde puisse fonctionner sur n’importe quel serveur ? Cette question a une importance particulière puisque cet interpréteur ne fonctionne qu’en ligne.
Existe-t-il un moyen de modifier la manière dont la sauvegarde se passe, par exemple en imitant un interpréteur style Lectrote qui demande où enregistrer le fichier de sauvegarde ?

Non, avec Quixe, les sauvegardes ne sont pas enregistrées sur le serveur, mais quelque part sur ton ordinateur, dans les fichiers temporaires de ton navigateur. Du coup, Quixe peut toujours effectuer les sauvegardes, quels que soient les paramètres du serveur. En revanche, il se peut que le navigateur efface régulièrement les sauvegardes, par exemple en navigation privée.

Pour ce qui est de Vorple, je n’ai pas réussi à faire fonctionner les sauvegardes, alors je ne sais pas si elles fonctionnent. J’ai déjà signalé le problème. Mais ce sera pareil, ça ne dépendra vraisemblablement pas du serveur.

Lectrote est Quixe empaqueté dans une application, et il se trouve que l’on peut faire pareil avec un jeu Vorple, pour que ce soit une application autonome et pas une page web. L’auteur de Vorple avait parlé d’en faire un tutoriel un jour, alors il faut attendre un peu. Il se peut que je me penche sur la question moi-même, mais pas tout de suite.

Ok. En tout cas, ce mode de sauvegarde n’est pas franchement viable.

J’ai bien fait de pauser cette question avant de m’embarquer dans une conversion de projet.

En l’état, la Tour d’Orastre propose des parties trop longues pour que l’absence de sauvegarde puisse être ignorée.
Du coup, sois je m’oriente vers un nouveau jeu, proposant des parties très courtes, soit je recode la sauvegarde.

Dans cette dernière optique, est-il possible, avec Inform 7 et/ou Vorple, de faire les choses suivantes ? Si oui, comment ?

  • Créer un fichier texte
  • Écrire/lire dans ce fichier
  • Enregistrer ce fichier où l’utilisateur le désire
  • Ouvrir un fichier désigné par l’utilisateur
  • Détecter le succès ou l’échec de l’enregistrement et de l’ouverture

(C’est ce qui m’est arrivé avrc Worldsmith… Mon navigateur purge l’historique et les fichiers temporaires si je le ferme, alors je laissait tout ouvert… et mon ordi a planté un jour, plus de sauvegarde au redémarrage… Ben j’ai abandonné quoi !)

I7 gère les verbes sauvegarder et restaurer par défaut, Corax :wink: tout l’état de la machine virtuelle est sauvegardé, donc toutes les variables et tout.

Oui, mais je n’ai pas réussi à faire fonctionner les sauvegardes avec Vorple. Est-ce que tu as réussi à les faire marcher ?

Pour répondre à tes questions, Corax :

  • Créer un fichier texte : oui, section 23.11 à 23.15.
  • Écrire/lire dans ce fichier : oui, que ce soit du texte ou le contenu d’un tableau (ne contenant que des textes, des nombres, des booléens ou des valeurs énumérées).
  • Enregistrer ce fichier où l’utilisateur le désire : non de base, sûrement que oui avec Vorple et du JavaScript.
  • Ouvrir un fichier désigné par l’utilisateur : idem.
  • Détecter le succès ou l’échec de l’enregistrement et de l’ouverture : je pense que oui, mais il faudra peut-être du JavaScript.

Cependant, je pense que le mieux est d’attendre que Juhana résolve le problème. Il ne faut pas oublier que Vorple 3 n’est pas en version « finale ».

J’avais aussi isolé du code de Kerkerkruip pour une extension, « Save File Control » permettant au jeu de se sauvegarder automatiquement à chaque tour (où à n’importe quel moment en fait) dans un fichier externe. Ça ne résoudrait pas le fait que le navigateur puisse effacer le fichier automatiquement, mais ça devrait permettre de sauvegarder, même avec Vorple.

Ok, merci. Avant de me lancer dans l’ultra chantier de la mort pour cette histoire de sauvegarde, il est en effet sans doute préférable d’attendre sagement que Vorple 3 progresse sur ce point.

Au fait, chez moi, les sauvegardes marchent avec Vorple 3. Tout du moins elles marchent tant que je ne ferme pas ma cession de navigation. L’interpréteur ouvre une fenêtre où il demande le nom du fichier à charger/enregistrer. J’imagine que ce genre de fenêtre peut être bloquée selon les paramètres du navigateur.
De surcroît, le procédé est un peu foireux. Si on clique sur le bouton « ok » de la fenêtre, elle se rouvre aussitôt. Il faut donc taper le nom, valider, puis faire « annuler ».

Oui, je vois bien la fenêtre, mais je ne pensais que ça ne fonctionnait pas. Il faut retaper le nom du fichier pour le charger ? Aussi, si on annule sans taper un nom, ça fait planter l’interpréteur. C’est ce qui m’a fait pensé que ça ne marchait pas.

C’est ça, tu dois taper le nom du fichier pour le charger. Tu valide une fois puis tu annule.

Aaaah ok ok, j’avais pas compris le problème ! Désolé ^^

Le problème alors (mais c’est ptet la même chose que ce que vous dites ?) : Vorple est, essentiellement, une compilation en JS de Git (l’interpréteur), et pour faire ça il émule un système de fichier local dans les fichiers du navigateur (si j’ai bien compris) : les commandes read et write de glulx sont reroutées vers le système local (dans le browser). Donc si tu fais un fichier en I7, Vorple le créera uniquement (si je me trompe pas) dans les fichiers du navigateur, ceux qui disparaissent quand on purge les cookies et tout… Bref, je sais pas si ce problème est résoluble car Vorple reste dans le navigateur par définition. Peut-être qu’avec un peu de JS, par contre…

De base, Vorple manipule des fichiers externes, par exemple pour permettre à Inform d’exécuter du JavaScript (Inform écrit du code dans un fichier externe, le JavaScript de l’interpréteur Vorple le détecte et l’exécute).

C’est faisable de proposer ces fichiers en téléchargement depuis le JavaScript. Mais je préfère ne pas m’y plonger pour l’instant, car j’imagine que Juhana va régler le problème dans la version finale de Vorple.