Les principales fonctionnalités sont implémentées. Il reste :
l’export vers une page HTML indépendante du moteur,
organiser le code pour permettre des traductions faciles vers d’autres langues que le français,
et le plus important : un tutoriel !
Cela dit même sans tuto, en cliquant sur l’onglet « Code source » vous verrez le code source de la page d’accueil, qui vous montrera 90% de la syntaxe utilisée. Une des choses qu’il ne montre pas, c’est qu’en mettant le nom d’une variable entre accolades dans le texte, elle sera remplacée par sa valeur. Voilà, j’espère que ça vous plaira !
Vous ferez gaffe, il y a une girafe dans l’entrée.
Merci !
En fait c’est parti d’un post d’Adrien que j’ai relu, où il disait « Choicescript a l’air bien, dommage que la licence soit si restrictive ». Du coup j’ai fait une petite page HTML pour faire un peu la même chose que Choicescript mais en local, puis j’ai fignolé, fignolé… et à force de fignoler, c’est devenu MAVH. Mais ce n’est pas un wiki, c’est juste du JS, ça fonctionne même sans connexion internet.
Je suis en train d’écrire le tuto.
Dans les trucs que je vois qui pourraient être améliorés, si on ouvre un paragraphe, et que l’on revient cliquer sur un choix plus haut, ça n’affiche pas ce nouveau choix, on est obligé de faire « retour au sommaire ». Il faudrait donc soit pouvoir afficher ce choix quand même, soit désactiver les liens une fois un choix réalisé, un peu comme j’ai fait ici : anamnese.online.fr/site2/textall … ramus.html
Ce qui me dérange un peu aussi, c’est de devoir faire pour les liens une référence exacte à du texte écrit précédemment pour que ça fonctionne, si bien que si on modifie l’intitulé du lien, on est obligé de le corriger deux fois, et si on oublie, ça casse le truc.
Sinon c’est bien de pouvoir éditer directement dans le navigateur, et pouvoir sauvegarder et recharger une aventure comme ça, j’aimerai pouvoir faire pareil avec mon propre système (qui nécessite soit du php, soit d’éditer le texte dans un éditeur externe pour un rendu en js)
Bravo, c’est en effet prometteur !
Mais ce serait dommage d’arrêter après avoir ajouté les quelques fonctionnalités que tu mentionnes xD
Enfin, j’imagine que tu as d’autres choses sur le feu, dont le moteur plus orienté MUD dont tu parles dans un autre fil si je me rappelle bien… Mais MAVH profiterait bien d’ajouts du genre :
formatage simple pour obtenir du gras, du souligné, etc
possibilité de choisir entre « le nouveau paragraphe s’affiche à la suite » ou « le nouveau paragraphe remplace l’ancien (nouvelle page quoi) »
L’idéal serait même d’ajouter des choses qui rendraient le texte dynamique à l’aide de commandes simples. Twine permet des choses de ce genre, mais il lui manque des fonctions qui sont dans Inform et qui seraient super pratiques. Bon, la nature des jeux hypertextes rend certaines actions plus complexes, certes. Je pense notamment à la possibilité d’ajouter une commande du genre « pause » ou « keypress » en plein milieu du texte. L’affichage s’arrêterait à ce moment, et ne reprendrait qu’après l’appui d’une touche (ou l’écoulement d’un certain nombre de secondes).
Ce serait top mais ça demanderait d’intégrer du javascript/css peut-être un peu lourd on s’éloigne possiblement de l’idée initiale.
Enfin, tout ça pour proposer d’éventuelles pistes qui pourraient permettre à MAVH d’acquérir une place honorable parmi les Twine, Undum, Ink et autres ChoiceScript, mais encore une fois, bravo pour le travail déjà réalisé, c’est bien cool et je ferai connaître la bête une fois l’export HTML finalisé !
Merci pour vos retours, ils sont très précieux pour moi !
C’est bon, ça c’est implémenté et mis en ligne. Au passage, je trouve que l’aventure dont tu donnes le lien ici est magnifiquement présentée, vraiment de toute beauté, bravo.
Oui je comprends. On pourrait imaginer un autre système, par exemple avec des numéros :
Devant vous il y a [1 une porte] fermée.
@ 1 -> vers("Couloir");
Mais s’il y a 10 liens dans un paragraphe, ce qui n’est pas impossible si on souhaite permettre au lecteur d’interagir avec tous les objets présents dans une pièce par exemple, je pense que le code perdrait en lisibilité.
As-tu une idée précise derrière la tête, pour remplacer les références exactes ?
Le deuxième point vient d’être implémenté, mais pas encore en ligne. Quant au premier point, le texte des paragraphes accepte le HTML (à part le caractère #). Sachant qu’il y aura bientôt la possibilité de customiser le css grâce à 3 paragraphes spéciaux « Style », « Style sombre » et « Style clair », penses-tu qu’il faille basculer vers un langage de type Markdown ?
Ok, je vais rajouter une fonction pour temporiser les choses. Par contre pour l’appui sur une touche, comme la philosohie est ici plutôt orientée liens hypertextes, je suppose que le mieux serait d’avoir un lien « Suite » (je pense qu’il ne faut pas négliger le support smartphone). En tout cas des fonctions qui permettent de modifier le paragraphe en cours sont prévues.
Merci encore, et pour l’export HTML, je vais utliser EJS (EmbeddedJS), en principe ça devrait pas trop trainer !
Bon ben c’est fait, l’export est implémenté (hacké devrais-je dire) et disponible dans la version 0.8.07 mise en ligne.
Pour la possibilité de choisir entre « le nouveau paragraphe s’affiche à la suite » ou « le nouveau paragraphe remplace l’ancien », il y a deux fonctions non documentées pour le moment mais qui fonctionnent : toujoursNettoyer() et jamaisNettoyer().
Et aussi il y a une petite loupiote en haut à gauche pour allumer ou éteindre la lumière
Twine utilise Markdown, txt2tags paraît bien aussi.
Peu importe le choix précis, un marquage de ce genre serait un gros plus, oui !
La compétition Partim 500 a démarré et j’ai mis à jour la page de la jam récemment pour y proposer MAVH comme outil parmi les autres. Je vois d’ailleurs qu’il y a une version 0.8.08 depuis
Oui, j’ai vu la page de la jam, je vais essayer de participer. Dès que j’écris… j’aime pas ce que j’écris. C’est grave docteur ?
Par rapport au marquage, pour l’instant je ne suis pas convaincu. Je vois que vous êtes tous les deux du même avis, et j’en prends bonne note. Voici le petit pour/contre que j’ai en tête maintenant :
Pour :
Un marquage simplifie l’écriture
C’est plus accessible pour des auteurs qui n’ont pas été en contact avec HTML
Contre :
Cela vient en conflit avec la syntaxe que MAVH utilise pour le moment (crochets et accolades, caractère croisillon, …etc.)
gras est-il vraiment plus compliqué que gras ?
C’est l’occasion d’apprendre les bases du standard international HTML
Apparemment, les systèmes d’IF existants n’ont pas choisi cette voie (la diversité c’est bien)
Dernier mais pas des moindres : je trouve que ces langages ne vont pas dans le sens du progrès. Je m’explique. Actuellement, le monde entier essaye de s’émanciper d’une mauvaise habitude qui a été prise avec les anciennes versions de HTML : celle d’indiquer le format des éléments (gras, italique) au lieu d’indiquer le sens des éléments (citation, emphase). Les lightweight markup languages n’indiquent que le format des éléments, ce qui va à contre-sens de ce qu’il faut faire. C’est d’ailleurs pourquoi j’ai inventé Semtxt, le langage dont je parle dans l’autre Sujet « Moteur à fiction » : c’est un marquage léger, qui indique non pas le format, mais la sémantique des éléments. Alors peut-être que je devrais basculer vers Semtxt, mais c’est plus lourd que la syntaxe actuelle de MAVH :
[paragraphe [id Premier]
Vous êtes dans une pièce. Devant vous, il y a [clic une porte].
[déclencheur [clic une porte] [action Vers("Couloir');] ]
]
Personnellement j’adore, mais je doute que cette syntaxe soit appréciée par le plus grand nombre.
C’est noté
Textallion a l’air génial. Ma pauvre petite girafe fait pâle figure à côté !
Twine, dans sa syntaxe Snowman, permet d’utiliser HTML. Il est clair que ça permet une flexibilité supplémentaire.
A vrai dire, je n’ai pas d’avis bien arrêté sur la question, c’est juste que la balise par exemple, n’est justement plus trop conseillée si je ne m’abuse, on passe plutôt dans l’idéal par du CSS toussa… mais mettre du span à tout va dans une fiction ça pourrait être pénible. Si le moteur se charge d’interpréter ça peut simplifier les choses. Mais chaque voie a ses inconvénients c’est sûr.
Le fait de proposer du Semtxt pourrait être novateur et intéressant, mais pour que ça prenne un tant soit peu il faudrait fournir une doc assez explicite accompagnée d’un jeu avec son code source, montrant les avantages de la chose.
Perso, au delà des syntaxes, ce que je recherche le plus en tant qu’utilisateur, ce sont des moyens de rendre facilement la lecture dynamique (c’est pour ça que je parlais d’une fonction « pause » ou « keypress »). Si un moteur me propose un rendu permettant d’afficher de manière sympa des pages de dialogues sans que j’ai besoin de créer un « passage » ou « paragraphe » par putain de ligne de dialogue, je me plierai à n’importe quelle syntaxe extraterrestre pas trop verbeuse. Bon, je pense pas que ce soit le but de MAVH, mais je précise juste pour expliquer l’orientation de mes remarques.
Ce besoin de rendre la lecture dynamique facilement semble légitime. As-tu d’autres exemples que la temporisation de l’apparition du texte ? Voudrais-tu quelque chose qui ressemble plus à un Powerpoint ?
Bref. C’est vrai que je vais plutôt dans la direction « roman » classique (avec du texte présenté aussi proprement que je le peux) que « visual novel ». Je suis maintenant à la version 0.8.16, beaucoup de choses ont été faites, et je pense qu’on commence à avoir un outil utilisable.
Merci pour vos retours !
Concernant mes besoins, on est pas sur du powerpoint, non, mais je sais pas trop comment décrire ça. Pas mal d’aventures Twine le font en fait, mais ça demande bcp de micro code, donc ça passe sur des histoires un peu courtes mais pas plus. Je pense à un mélange entre ce que propose par exemple la librairie Textillate pour JS, et une simple avancée dans un dialogue par pressions successives plutôt que d’avoir tout d’un coup (avec là du coup un aspect un peu powerpoint si tu penses juste au côté incrémental de l’affichage).
Par rapport aux dialogues, j’ai remplacé l’ancien système, qui ressemblait un peu à un moteur chatbot, par un système d’options qui apparaissent dans une liste déroulante en bas de l’écran. En fait j’ai testé l’ancien système avec un dialogue d’essai simple, il s’agissait de demander son chemin à un fermier ronchon. La prise en compte de tous les cas de figure s’est avérée fastidieuse. Le nouveau système permet un déroulement progressif du dialogue sans changer de page, tout en limitant les réponses à quelques options, ce qui est plus agréable à utiliser. En plus on peut s’en servir pour d’autres choses que les dialogues : pour tout ce qui se déroule dans une même page en fait.