Escenadil, un moteur de jeu d’aventure en mode texte

Posté par (page perso) . Édité par Davy Defaud, baud123, Xavier Claude, Benoît Sibaud, Florent Zara et Bruno Michel. Modéré par Xavier Claude. Licence CC by-sa
Tags :
25
24
sept.
2012
Jeu

Escenadil est un projet libre de moteur de jeu d’aventure en texte, sous la même licence que Perl, que j’ai commencé au mois d’août. Le but est de pouvoir facilement écrire une petite aventure (voire pas si petite) en éditant un simple fichier YAML.

Concept de « scène »

Le jeu s’organise autour de l’idée de « scène » (_escena_, en espagnol) : une scène se présente comme un texte avec un certain nombre de choix possibles, lesquels nous font passer à d’autres scènes. Les choix peuvent se présenter de façon connue à l’avance (choix a,b,c…) ou non, auquel cas un choix est déterminé par une entrée texte du joueur.

Le jeu fournit aussi quelques variables, pour simuler un inventaire d’objets, par exemple ; ou l’usage de drapeaux, pour déterminer si un certain choix doit ou non être présent, suivant les circonstances.

Comment créer une aventure

C’est plutôt facile, il suffit de rédiger un texte en YAML, en suivant une structure qui correspond au concept de scène. En général, ça ressemble à quelque chose comme :

--- # nom de la scène initiale
"ma_première_scène"


--- # Quelques données
nums:
    argent: 20
flags:
    sait_parler_elfique: 1


--- # Puis viennent les scènes
ma_première_scène:
    name: "Texte court descriptif (facultatif)"
    text: "Tu vois un vieil elfe dans la forêt cherchant des champignons."
    choices:
        premier_choix:
            text: "Vendre des champignons au vieil elfe"
            go: "nom de la scène suivante"
            effects:
                - "num+:argent:10"
                - ...
            requirements:
                - "flag:sait_parler_elfique"
                - ...
        autre_choix:
            ...
autre_scène:
    ...

Pour plus de flexibilité, une notion d’*état* offre la possibilité d’afficher plusieurs textes différents dans une même scène, suivant les circonstances. On écrit dans ce cas :

ma_première_scène:
    ...
    state: "mon_état"
    text:
        mon_état: "texte"
        autre_état: "autre texte"
    ...

L’état peut être modifié grâce aux effets. Par exemple, l’effet state:ma_première_scène:autre_état change l’état de la scène, et si l’on revient sur celle‐ci, un autre texte sera affiché. On peut utiliser les données dans les effets et pré‐requis. Voici quelques exemples :

  • on peut activer des flags avec flag:nom, et les utiliser pour ne faire apparaître certains choix que lorsque l’on veut, ou faire apparaître aussi du texte additionnel dans certains cas grâce à la clé text_flags ;
  • la table nums permet de faire des comparaisons (<,>,=) utiles pour les prérequis, et des additions grâce aux effets ;
  • la table texts permet de conserver une table type clé: "texte". Elle est utile par exemple pour récupérer des entrées du joueur et les réutiliser ensuite en les interpolant dans le texte en mettant la clé entre deux « @ ».

Tester le fichier YAML

Le moteur de jeu s’accompagne aussi d’un petit script pour tester quelques propriétés d’un fichier YAML contenant une partie, pour éviter quelques erreurs communes. Il vérifie, par exemple, que dans un go:"nom_de_scène", la scène en question est bel et bien définie.

Plus d’informations

Pour le moment, il n’y a pas d’autre documentation que la documentation pod et une page man générée avec. Sur la page du site, on trouve un lien vers le dépôt Git. Il y a aussi une archive tar.gz au même endroit. Le jeu a les dépendances suivantes :

  • Perl (v 5.10 ou plus, testé avec avec la v 5.12 et v 5.16) ;
  • Curses::UI ;
  • YAML::XS (YAML marche aussi avec une petite modification, voir le fichier readme.markdown dans les sources) ;
  • List::MoreUtils.

Points à améliorer

Il faudrait que j’écrive une histoire, afin qu’il y ait un bon exemple (il n’y a qu’un petit exemple en anglais assez ridicule pour le moment)… Et sans doute beaucoup de choses, auxquelles je n’ai pas pensées. L’idée c’est de rajouter des fonctionnalités sans que ça ne rende plus compliqué d’écrire une histoire simple, et qu’on n’ait pas besoin d’autre chose que d’un fichier YAML pour les données.

Pièce 1 du concours Plee the Bear

  • # Images

    Posté par . Évalué à  3 .

    Juste une petite idée : Peut-être que rajouter une image sur une scène rendrait le jeu plus vivant. Petit problème : Il faudrait dans ce cas ajouter les images à côté du YAML (dans un dossier ou une archive).

    • [^] # Re: Images

      Posté par (page perso) . Évalué à  5 .

      Pour écrire des "visual novel", il existe déjà http://www.renpy.org/

      Newton Adventure est sur Lumière Verte : http://steamcommunity.com/sharedfiles/filedetails/?id=187107465

      • [^] # Re: Images

        Posté par (page perso) . Évalué à  1 .

        La, ce qui serait intéressant, ça serait qu'on puisse y jouer en mode texte ou en mode "graphique".

        • [^] # Re: Images

          Posté par (page perso) . Évalué à  2 .

          Si quelqu'un propose un patch, je veux bien :)

          Le fait est que je n'aime pas beaucoup programmer des interfaces, du coup je suis allé vers le seul truc que je connaissais un peu, qui a l'avantage de fonctionner partout (en tout cas dans les Linux et BSD), et même sans X, tout en étant (peut-être) plus pratique qu'une simple ligne de commande pour certaines choses (comme lire du texte un peu trop long).

    • [^] # Re: Images

      Posté par . Évalué à  -2 .

      Vous ressentez un sensation bizaare. Ces mots vous viennent à l'esprit :

      D'abord, sur dlfp, on met des nimages, pas des images, et faut qu'elles soient jolies.
      Ensuite, sur dlfp, on met pas des nimages à côté du YAML, mais en fin d'un journal.

      Vous continuez votre parcours sur dlfp en toute quiétude, et vous gagnez +2exp en int et +1exp en sagesse. Vous subissez par contre un malus de -1 en karma.

    • [^] # Re: Images

      Posté par (page perso) . Évalué à  2 .

      Peut-être que rajouter une image sur une scène rendrait le jeu plus vivant.

      Rien à voir. Un roman c'est aussi vivant qu'une BD quand c'est bien écrit. Un jeu texte est aussi vivant qu'un jeu en 3D quand c'est bien écrit.

      • [^] # Re: Images

        Posté par (page perso) . Évalué à  0 .

        Exactement ! Enfin, les images ça peut aider les gens qui n'ont pas bcp d'imagination.
        Il y a bien eu des sites porno sur minitel….

  • # Questions

    Posté par (page perso) . Évalué à  3 .

    En quoi la bibliothèque curses est-elle nécessaire? Le style de jeu se prête tout à fait à l'affichage ligne à ligne, non?

    Les choix peuvent se présenter de façon connue à l’avance (choix a,b,c…) ou non, auquel cas un choix est déterminé par une entrée texte du joueur.

    Je n'ai pas bien compris: le joueur tape un mot quelconque, et le logiciel comprend magiquement à quel choix caché il correspond?

    Es-tu certain qu'il y a une différence conceptuelle entre les flags et les états? Il me semble, qu'au fond, c'est la même chose, et qu'on pourrait utiliser l'un pour l'autre. Ça pourrait simplifier l'interface, et ajouter de la souplesse, que de les confondre.

    Pour le reste, à première vue, les quelques paramètres que tu proposes semblent offrir toute la souplesse requise pour écrire un jeu complexe. Je vois par exemple qu'on peut utiliser le système de scènes pour permettre au joueur de configurer un personnage. Bravo!

    • [^] # Re: Questions

      Posté par . Évalué à  2 .

      Ce que je comprends, c'est qu'un drapeau est un attribut de personnage (donc global) et un état un attribut de scène.

      Je me demandais justement à quoi servaient les états, parce que j'avais en tête des cas d'utilisation qui sont plutôt du ressort du drapeau.

      Peut-être qu'on ne veut pas stocker 50 000 drapeaux et que pour un drapeau qui n'influencerait qu'une scène, on préfère un effet qui la modifie directement.

      Exemple : le marchand qui accueille en disant "Ah, je vois que vous êtes déjà allé voir mon collègue". Plutôt que de stocker un drapeau "A vu marchand 1", on va ajouter chez marchand 1 un effet state:marchand2:a_vu_marchand_1

      Maintenant, il n'est pas dit explicitement dans le journal que le texte peut dépendre d'un drapeau. Apparemment, le drapeau est utilisé pour permettre (ou pas) une ligne de choix.

      Alors une question demeure : est-il possible de modifier un texte selon un drapeau ?

      Exemple : mon personnage achète un chapeau bleu, ce qui change le message d'accueil de plein de scènes (forcément, avec un chapeau bleu, on se fait remarquer). Soit je stocke ça dans un drapeau et je peux modifier les textes en fonction, c'est bien commode, soit je dois, lors de l'achat, mettre un effet pour toutes les scènes que ça modifie.

      A quoi s'ajoute la question de la maintenance : si j'ajoute une nouvelle scène dont le texte dépend du chapeau bleu, dans un cas, j'exploite le drapeau directement, dans l'autre, je dois aller modifier la scène de l'achat pour ajouter un effet.

      La première façon me semble plus propre, et surtout plus robuste. Vu de loin. La deuxième étant à réserver à des cas bien localisés.

      Je n'éprouve pas d'intérêt particulier pour ces jeux, mais c'est bien d'avoir fait l'effort de publier le code. C'est toujours plus long que de le garder pour soi, puisqu'il faut le faire propre, générique, etc, plus que quand on le fait juste pour soi.

      • [^] # Re: Questions

        Posté par (page perso) . Évalué à  3 .

        Peut-être qu'on ne veut pas stocker 50 000 drapeaux et que pour un > drapeau qui n'influencerait qu'une scène, on préfère un effet qui la > modifie directement.

        C'est tout à fait ça: en fait, les drapeaux n'étaient pas pensé au début pour être très nombreux, mais à chacun sa façon après tout :)

        Alors une question demeure : est-il possible de modifier un texte
        selon un drapeau ?

        Exemple : mon personnage achète un chapeau bleu, ce qui change le
        message d'accueil de plein de scènes

        On peut ajouter du texte en plus si un drapeau est présent, et on peut influencer les choix, mais le texte de base d'une scène dépend uniquement de l'état.

        Il faut se dire que lorsqu'on écrit une histoire, on est avant limité par l'impossibilité d'avoir un nombre exponentiel de ramifications, donc normalement les mêmes flags ne devraient pas forcément intervenir dans tant de scènes que ça en pratique.

        Sinon, ce qu'on peut faire c'est utiliser la table texts pour stocker du texte (lors d'un effet à un certain moment), que l'on peut ensuite interpoler dans le texte d'une scène.

    • [^] # Re: Questions

      Posté par (page perso) . Évalué à  2 .

      En quoi la bibliothèque curses est-elle nécessaire? Le style de jeu > se prête tout à fait à l'affichage ligne à ligne, non?

      C'est vrai, mais je trouvais plus pratique d'utiliser ncurses pour sélectionner les choix, et dans le cas de textes un peu long, ça permet de remonter le texte facilement par exemple.

      Es-tu certain qu'il y a une différence conceptuelle entre les flags > et les états?

      Comme dit Jihele, la différence c'est juste global vs local, mais aussi le fait que quand j'ai commencé il n'y avait pas de flags :) Mais après, je ne pense pas que ce soit mal qu'il y ait plusieurs façons de faire une même chose vu que ça coûte pas non plus très cher, et puis tout le monde ne pense pas de la même façon, et l'un trouvera peut-être plus naturel d'utiliser des états ou des flags suivant les cas et un autre le contraire.

      • [^] # Re: Questions

        Posté par (page perso) . Évalué à  2 .

        Je te remercie pour ces précisions. Tout ça me donne envie d'essayer…

        Tu n'as pas répondu à ma question concernant la façon dont un choix est déterminé en fonction de l'entrée texte d'un joueur.

        • [^] # Re: Questions

          Posté par (page perso) . Évalué à  1 .

          Oui, j'ai oublié sur le moment cette question avec le reste :)

          J'y réponds juste après.

    • [^] # Re: Questions

      Posté par (page perso) . Évalué à  2 .

      En quoi la bibliothèque curses est-elle nécessaire?

      Parce que avec la magie de termcap/terminfo, ça tourne aussi sur MINITEL.

      * Ils vendront Usenet quand on aura fini de le remplir.

    • [^] # Re: Questions

      Posté par (page perso) . Évalué à  3 .

      Je n'ai pas bien compris: le joueur tape un mot quelconque, et le
      logiciel comprend magiquement à quel choix caché il correspond?

      En fait il y a deux possibilités: soit la scène demande une entrée texte du joueur (on utilise le mot given), soit elle lui demande de choisir entre plusieurs choix possibles connus à l'avance (cas d'utilisation de choices). Souvent, c'est pas très nécessaire de demander du texte : par exemple, les choses comme «aller est», «ouest», «nord», c'est pas forcément très passionnant.

      Sinon la différence c'est qu'avec given on utilise une liste (les matchs sont tentés les uns à la suite des autres ce qui permet de simuler un cas par défaut), et avec choices c'est une table clé: choix, ce qui permet de bloquer certains choix avec lock, mais c'est pas forcément très maintenable après.

      Par contre, ce qui est bien c'est qu'on peut utiliser les expressions régulières de Perl pour matcher lorsque le joueur entre du texte, et décider de la suite.

  • # Comparaison avec Inform 7 ?

    Posté par . Évalué à  6 . Dernière modification : le 24/09/12 à 13:07

    Je trouve que la comparaison avec l'existant est essentielle pour se faire une idée d'un projet.

    Quelles sont les similarités et les différences avec les langages Inform (site officiel) ou TADS ?

    • [^] # Re: Comparaison avec Inform 7 ?

      Posté par (page perso) . Évalué à  2 .

      Je ne peux pas vraiment répondre parce que je ne connais ni l'un ni l'autre, mais de ce que je viens de voir, j'ai l'impression qu'il s'agit quand même de langages un peu plus complets: on ne fait pas une histoire en écrivant un simple fichier yaml, en respectant quelques petites règles.

      J'ai l'impression qu'il faut s'y plonger un peu avant de commencer, mais je peux me tromper.

      L'idée c'est quand même que quelqu'un qui n'aime peut-être pas spécialement la programmation (mais peut-être les histoires) puisse participer.

      Et puis une différence quantitative: escenadil fait un millier de lignes, documentation incluse :)

      Bon, je ne compte pas le script «détecteur d'erreurs» dans le fichier yaml.

    • [^] # Re: Comparaison avec Inform 7 ?

      Posté par (page perso) . Évalué à  2 .

      Connaissant un peu les 2 langages cités je vais donner quelques petits éléments de réponses.

      alors les deux sont relativement différents.

      Typiquement Inform veut se rapprocher du langage naturel pour écrire des fictions interactives. Un exemple:
      `The Scarlet Tower is southeast of the Scarlet Gallery. "A little hexagonal room, from whose [narrow window] you can see the moat, the lawn, and the beginning of the forest outside."
      …..
      Carry out wearing the helmet:

      repeat with item running through people

      begin;

      change the sound of the item to "steady breathing";

      end repeat.

      Carry out taking off the helmet:

      repeat with item running through people

      begin;

      change the sound of the item to "silence";

      end repeat.

      After wearing the helmet:

      say "You settle the helmet over your head, and there is a roaring in your ears at first[if the player can touch the rain], both from your heartbeat and from the raindrops on metal[end if]. But then the sharpened hearing begins to feel natural again."

      After taking off the helmet: say "You lift the helmet from your head, and the sudden quiet feels like going deaf."`

      L'exemple complet d'un bouquin en inform : http://inform7.com/learn/eg/bronze/source_7.html

      Pour le TADS, on est sur un langage qui ressemble plus à du C, avec des bouts de code qui peuvent se loger dans les chaînes de caractères :
      ` #include
      #include

       gameMain: GameMainDef
         initialPlayerChar = me
       ;
      
       versionInfo: GameID
         name = 'My First Game'
         byline = 'by Bob Author'
         authorEmail = 'Bob Author <bob@myisp.com>'
         desc = 'This is an example of how to start a new game project. '
         version = '1'
         IFID = 'b8563851-6257-77c3-04ee-278ceaeb48ac'
       ;
      
       firstRoom: Room 'Starting Room'
         "This is the boring starting room."
       ;
      
       +me: Actor
       ;` 
      
      

      Et aussi :

      "The door is <>open<>closed<>. "
      "You feel <>starving<>famished<>hungry<>. "

      Dans les 2 cas, on va avoir des langages qui offrent énormément de possibilité. Bien plus que ce que peut (il me semble) proposer le YAML. Après cela nécessite un effort d'apprentissage pour l'auteur (mais le YAML aussi). Et l'effort est 'assez faible' en inform (vu que l'on se rapproche énormément du langage naturel. Mais pour des besoins simple, à voir si l'effort d'apprentissage est rentable (comparé au YAML où il faut pas apprendre grand chose pour savoir s'en servir).

      Un truc a noter, il existe une version française d'inform.

      • [^] # Re: Comparaison avec Inform 7 ?

        Posté par (page perso) . Évalué à  1 . Dernière modification : le 24/09/12 à 21:03

        C'est vrai que ces langages ont l'air quand même assez puissants, et qu'ils sont beaucoup plus ambitieux.

        Pour Inform j'ai quand même l'impression au contraire que le fait qu'il vise à écrire dans un langage ressemblant au langage naturel doit quand même rajouter beaucoup au temps d'apprentissage, vu qu'au fond rien n'est plus compliqué qu'un langage naturel.

        Un truc a noter, il existe une version française d'inform.

        C'est vrai que vu la quantité de mots différents anglais utilisés ça peut être utile. Ceci dit, la langue française n'est pas spécialement simple non plus :)

        Tads a l'air plus facile à prendre en main, et puis au moins on distingue mieux le code de l'histoire.

        Ceci dit, j'ai l'impression que les licences de ces deux jeux ne sont pas très très libres…

        • [^] # Re: Comparaison avec Inform 7 ?

          Posté par (page perso) . Évalué à  2 .

          J'avais oublié de citer https://github.com/brunobord/vousetesleheros , un début d'implémentation de moteur de livre dont vous êtes le héros (basé également sur YAML) et qui a servi pour un atelier lors de SudWeb 2012.

        • [^] # Re: Comparaison avec Inform 7 ?

          Posté par (page perso) . Évalué à  1 .

          Inform et TADS ne sont pas des jeux, mais de très célèbres moteurs de jeux (activement développés et maintenus depuis 15 à 20 ans), avec lesquels un très grand nombre de jeux excellents ont été réalisés. Je crois que vous ne vous rendez pas bien compte (ni l'auteur d'Escenadil d'ailleurs) de l'immense richesse de ces deux environnements de développement et de l'expérience accumulée sur 20 ans par leurs auteurs et utilisateurs.

          L'organisation d'Inform est compliquée (cf. cette page), et chaque composant est sous sa propre licence. Quand on regarde par exemple la liste des interfaces, ou la liste des webs, on voit que les logiciels distribués sont sous GPL v2, GPL v3, AL v2, selon les cas. Et donc, c'est libre.

          Quant à TADS, il est en effet moins libre, mais il permet la redistribution gratuite des binaires (IDE et interpréteurs), met à disposition son code source dans le but de permettre le portage de TADS sur autant de plate-formes que possible (autres types de travaux dérivés interdits), et permet aux auteurs de jeux de forker la bibliothèque standard sans contrainte.

          Dans les deux cas bien entendu, les auteurs sont pleinement propriétaires des œuvres qu'ils créent avec ces outils, et les distribuent sous la licence qu'ils souhaitent.

          • [^] # Re: Comparaison avec Inform 7 ?

            Posté par (page perso) . Évalué à  2 .

            Inform 6 est devenu libre, même si pour obtenir la chaîne complète de compilation de façon libre, ce n'est pas forcément évident : ce sont des versions différentes qui ont été libérées à différents moments du coup je ne suis pas certain que l'on puisse compiler un ancien jeu réalisé en Inform 6 et ses bibliothèques, avec le nouveau compilateur Inform 6 (qui lui est libre) utilisé maintenant par Inform 7 (en fait un jeu Inform 7 passe par 2 phases de compilation, du langage naturel en Inform 6, puis d'Inform 6 en bytecode glulx ou zcode).

            Inform 7 est majoritairement libre, seul le compilateur NI (natural inform) ne l'est pas, manque de chance c'est un élément central du logiciel.

            Contrairement à ce qui est dit plus haut, une fois quelques projets réalisés en Inform 7, le langage naturel est extrêmement aisé à réutiliser. C'est un vrai langage que l'on fait sien au même titre qu'une langue étrangère. Je trouve cela plus "fluide" et pratique à utiliser qu'Inform 6 par exemple.

            Et Inform 7 en français, c'est juste pour pouvoir écrire des jeux en français, pas pour utiliser un langage naturel basé sur le français (même si un tel projet avait été initié il y a quelques années par le créateur d'Inform, depuis, plus de nouvelles)

            Quant à Escenadil, le concept me rappelle un peu le défunt système "Livrant" (http://ifiction.free.fr/index.php?id=livrant), à mi-chemin entre un système de LDVELH (livre-jeu), et une fiction interactive.

            Pourquoi pas, en revanche ça me semble nécessiter pas mal de pré-requis pour son utilisation (plusieurs modules perl, limite savoir parler esperanto), ce n'est pas possible de faire un bundle avec tous les modules intégrés ?
            Je viens d'essayer sur mon ordinateur via freenx, je ne sais pas si c'est un problème d'affichage ou un autre bogue mais dans l'exemple, une fois entré mon nom, je ne peux pas confirmer ou corriger en appuyant sur a ou b, juste quitter.

            Quoi qu'il en soit, avec Inform, Escenadil ou autre système équivalent, si ça vous dit de participer à un concours de jeux textuel, il y a cela ici :
            http://ifiction.free.fr/index.php?id=concours&date=2012

            « I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond

            • [^] # Re: Comparaison avec Inform 7 ?

              Posté par (page perso) . Évalué à  4 . Dernière modification : le 25/09/12 à 19:53

              plusieurs modules perl, limite savoir parler esperanto

              Je dois dire que ça m'a fait un peut rire (surtout la partie esperanto). Par contre, sous linux tu pourras vérifier que ta distribution inclut probablement la plupart des modules de base de perl. Sous ma gentoo:

              $ ls /usr/portage/perl-core/ | wc -l
              84
              
              

              et

              $ ls /usr/portage/dev-perl/ | wc -l
              1123
              
              

              donc «plusieurs modules» ce n'est peut-être pas tant que ça. Et ils sont tous installables avec emerge, apt-get, ou probablement n'importe quel système de paquets.

              Pour l'espéranto, tu as du confondre avec l'espagnol qui est la langue par défaut. Tu peux changer en modifiant ton config.yml ou sur la ligne de commande en spécifiant la langue (quatre choix possibles).

              je ne peux pas confirmer ou corriger en appuyant sur a ou b

              C'est tout à fait normal :)

              Il faut appuyer sur «s» avant (sinon les lettres pourraient entrer en conflit avec les autres raccourcis). C'est dans l'aide des commandes avec «?».

              Pour le reste je te crois, après tout, je fais du perl qui a tendance à se rapprocher des langages naturels (grammaire à contexte, quantités de façons de dire la même chose, etc…, facile? agréable à la longue sans doute, mais je ne dirais pas facile).

              Et pour répondre au message d'avant, oui, escenadil est tout petit. Ceci dit, si j'avais voulu que l'utilisateur dispose du plus de pouvoir possible, j'aurais juste fait des modules perl, que l'utilisateur pourrait utiliser de façon convenable, en rédigeant lui même en perl. C'est vrai que ça pourrait être intéressant, mais on perd totalement le côté «simple».

              • [^] # Re: Comparaison avec Inform 7 ?

                Posté par (page perso) . Évalué à  1 .

                Mon message n'était pas tant une critique d'Escenadil qu'un rappel de la dimension de ces deux projets, qui sont deux géants incontournables de la fiction interactive.

                Escenadil en lui-même, je n'ai honnêtement pas été voir de plus près, je serais bien en mal de le critiquer. J'ai une bonne idée de l'effort qui peut être nécessaire pour produire ce genre de travail, rien que ça mérite mon respect. :)

  • # Ubuntu 10.04.4 LTS

    Posté par (page perso) . Évalué à  3 .

    Perl (v 5.10 ou plus, testé avec avec la v 5.12 et v 5.16) ;

    tth@plop:~/Essais/Perl/Escenadil$ perl escenadil
    Perl v5.12.0 required--this is only v5.10.1, stopped at escenadil line 10.
    BEGIN failed--compilation aborted at escenadil line 10.

    * Ils vendront Usenet quand on aura fini de le remplir.

    • [^] # Re: Ubuntu 10.04.4 LTS

      Posté par (page perso) . Évalué à  2 .

      C'est vrai, ce n'est pas tout à fait correct ce que j'ai dit. En fait, ça devait marcher avec la 5.10 mais j'avais use 5.012 dans le fichier escenadil. J'avais mis ça parce que j'ai la 5.12 mais j'aurais du mettre la 5.010, je n'avais pas fait gaffe à ça. Je ne pense pas que ça marche avec les précédentes par contre, vu que j'utilise when par moments.

      J'ai corrigé et actualisé le dépôt git.

      Merci de m'avoir signalé le bug!

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.