Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:divers:format_fichier_solution

Format des fichiers sauvegarde (.sol)

Donjon FI utilise un fichier .sol pour sauvegarder une partie en cours et la rejouer plus tard à l'identique. C'est aussi le format utilisé par le mode triche pour reproduire automatiquement une séquence de commandes.

Structure générale

{
  "type": "sauvegarde",
  "version": 31102,
  "declenchementsFuturs": [
    { "routine": "activationPiege", "tempsMs": 345 }
  ],
  "etapesSauvegarde": [
    "g:0.25796434437940996",
    "c:prendre clé",
    "r:2",
    "c:i",
    "c:x porte",
    "c:ouvrir la porte avec la clé",
    "c:entrer",
    "c:x trou",
    "d:porteRougeSeReferme",
    "c:manger baie",
    "g:0.7474848097328197",
    "c:x baie",
    "c:p baie",
    "c:*orthographe: il manque un accent à « clé »"
  ],
  "horlogesSauvegarde": [null, null, null, [1758566400000]],
  "horlogeIntro": [],
  "scenario": "Le joueur se trouve dans le salon.\r\n\r\nSa description est \"Vos vêtements sont sales. …\"."
}

Types d'étapes

Chaque entrée du tableau etapesSauvegarde commence par un préfixe à une lettre, suivi de deux-points puis de la valeur. Seuls les premiers deux-points servent de séparateur : la valeur peut elle-même en contenir (cas d'un commentaire du joueur).

Préfixe Sens Exemple
c Commande du joueur c:prendre clé
r Réponse à une question du jeu (1, 2, oui…) r:2
g Graine aléatoire courante (PRNG) g:0.25796…
d Déclenchement d'une routine forcée (chrono) d:porteRougeSeReferme
d (avec arguments) Routine programmée avec arguments — résolus au déclenchement d:afficherScore avec 3

Une commande qui commence par * ou @ est un commentaire du joueur à l'auteur : elle est stockée comme une commande ordinaire (c:* la porte est introuvable) mais n'est pas interprétée par le jeu.

À la reprise (mode triche / replay), le moteur ré-applique chaque étape dans l'ordre : il pose la graine g, envoie la commande c au commandeur, ou injecte la réponse r attendue, ou force le déclenchement d de la routine.

Autres champs

Champ Sens
type / version Type de fichier et version de Donjon FI qui l'a produit.
declenchementsFuturs Routines programmées pas encore déclenchées au moment de la sauvegarde (nom + temps restant en millisecondes).
horlogesSauvegarde Lectures d'horloge (epoch ms) faites par chaque étape, alignées par index sur etapesSauvegarde (null = l'étape n'a pas lu l'heure). Rejouées au lieu de l'heure réelle pour que le replay soit déterministe. Le champ est absent si aucune étape de la partie n'a lu l'heure.
horlogeIntro Idem pour la phase d'introduction (avant la première commande). Absent si vide.
scenario Le code source du jeu. Présent dans une sauvegarde de partie (.sav), absent d'un fichier solution généré par générer solution.

Routines programmées et sauvegardes

Quand une routine programmée arrive à échéance, son déclenchement est enregistré comme une étape d:nomRoutine. À la reprise, la routine est rejouée à la même place dans la chronologie, sans relancer le chronomètre temps réel.

Si la routine a été programmée avec des arguments, l’étape encode les arguments résolus au moment du déclenchement, sous forme canonique : un nombre est écrit tel quel (d:afficherScore avec 3), un texte entre guillemets (d:annoncer avec "bravo"), un élément du jeu par son intitulé.

Cas limite : une routine programmée mais pas encore déclenchée au moment de la sauvegarde n'est pas restaurée — le chrono en cours n'est pas reporté. Pour des scénarios qui exigent un comptage déterministe, utilisez plutôt le magnétoscope .rec.

.sol vs .rec

  • .sol (sauvegarde) — contient les étapes de la partie. Permet de reprendre le jeu. Ne stocke pas la sortie attendue.
  • .rec (enregistrement) — contient les étapes et la sortie attendue à chaque étape. Permet de vérifier qu'une modification du scénario n'a pas cassé un parcours. Voir magnétoscope.

Voir aussi

reference/divers/format_fichier_solution.txt · Dernière modification : de 127.0.0.1