@Corax : pas que je sache et ça serait très cool. Ça impliquerait peut-être d’avoir une autosave en place aussi ? Pouvoir sauvegarder sur un serveur aussi serait cool, par exemple pour les achievements. J’ai failli mettre un ticket sur le bugtracker de Vorple mais finalement je l’ai pas fait, mais il faudrait ! (Au moins lancer les idées des fonctionnalités souhaitées, qu’on puisse y voir plus clair niveau design de l’extension et tout.)
Vorple permet de lire et de créer des fichiers en utilisant les mécanismes standards de Glulx, donc il n’y a même pas besoin d’extension. D’ailleurs, c’est avec des fichiers que Vorple interagit avec le JavaScript.
En revanche, ces fichiers seront stockés dans les fichiers locaux du navigateur, donc l’utilisateur ne pourra pas choisir son emplacement et ils peuvent être effacés si l’utilisateur efface l’historique et ses traces. (On en avait déjà parlé, il me semble.)
L’autosave est faisable, j’ai fait une extension pour ça (bon en fait j’ai juste isolé du code de Kerkerkruip). Et ça fonctionne pour n’importe quel interpréteur Glulx qui supporte les fichiers.
Après, avec du JavaScript, on peut faire ce que l’on veut, alors ça reste possible de demander un fichier spécifique à l’utilisateur ou de sauvegarder sur le serveur. En revanche, pour cette dernière chose, je ne pense pas que ça vaille la peine d’ouvrir un ticket pour ça, parce que c’est trop spécifique. Ça dépend de l’architecture du serveur, il faut voir si on lie à un compte utilisateur (et dans ce cas ça dépend de l’implantation et de la base de données)…
Si quelqu’un a besoin d’une fonctionnalité spécifique pour Vorple, je veux bien essayer, ça m’entraînera en JavaScript. La seule condition, c’est que ce soit un vrai besoin pour un vrai projet, et pas un truc pour juste expérimenter.
Ma foi, Natrium, je voudrais bien que tu tentes. La Boussole des Brumes pourrait en profiter.
Coder la sauvegarde, ça, je sais faire. Mais sans fonctionnalité supplémentaire, ce sera au joueur de copier la chaîne de caractères produite par le jeu afin de la garder où il veut. Et ce sera à lui de reprendre cette chaîne pour la donner au jeu lors d’une nouvelle cession.
Du coup, il faudrait une extension qui permet tout simplement :
• De créer un fichier texte
• D’écrire dans ce fichier
• De permettre d’enregistrer le fichier sur le disque dur de l’utilisateur selon la méthode classique (avec la fenêtre qui permet de choisir l’emplacement et le nom du fichier)
• D’ouvrir un fichier texte spécifié par l’utilisateur
• De lire dans ce fichier
Si tu me fais ça, je danse de joie ! Et je suis certain que l’extension servira à d’autres.
Tu as fait un système de sauvegarde perso, comme les codes des jeux à l’ancienne ? Ça demande du travail ! (Et c’est facile d’introduire des bugs.). Mais ça permet au moins d’avoir des sauvegardes qui fonctionnent entre différentes versions du jeu, et ça devrait bien fonctionner pour un roguelike. Mon extension permet de sauvegarder exactement comme quand on tape « sauver », mais dans un fichier interne. Enfin bref.
Je vais réfléchir à ce que tu demandes. Ce ne sera pas pour bientôt et je ne promets rien par contre ! Pour sauvegarder dans un fichier et y écrire, je pense qu’on peut simplement utiliser les fonctions de base d’Inform, donc tu peux déjà commencer à coder ça sans penser au téléchargement de fichiers. Ensuite, le JavaScript permettra de proposer ces fichiers à l’utilisateur. Enfin, c’est comme ça que je le vois, ça ne doit pas être trop sorcier !
Dans Hansel et Gretel, j’utilise déjà ce principe de code à l’ancienne, des mots de passe en somme.
Dans la Boussole des Brumes, je vais plus loin, je code vraiment une sauvegarde. Je me suis mis pour contrainte que la chaîne de caractères générée devait pouvoir être entrée en une seule fois dans le jeu, puisque de base, ce sera au joueur de la rentrer. Un copier/coller, c’est tolérable, deux, c’est déjà trop. Du coup, la chaîne ne doit pas dépasser 254 caractères. Pour y parvenir, trois conditions :
• Avoir penser l’architecture du jeu afin de permettre ce principe, tous les éléments qui entrent en compte dans la sauvegarde doivent avoir un code référence.
• Utiliser un encodage/décodage qui permet absolument d’écrire le plus de choses en peu de caractères.
• Sauvegarder la partie à un moment stratégique, là où une partie des données peut être ignorée. Des points de passage en somme.
Du coup, se système peut également permettre l’autosave. Si le personnage meurt, il revient au dernier point de passage. C’est contraire à l’esprit rogue-like, mais je peux le faire.
Je n’ai pas concrétisé le système, mais je l’ai conceptualisé et je continue sur mes plans.
Si tu peux développer l’extension, je n’aurais pas grand-chose à changer, juste la manière d’obtenir le code et de le rentrer et ça, c’est un détail.