Sortie de Livrant 2

Et voilà une première alpha de Livrant 2.

http://gfamad.chez.tiscali.fr/

Bon, par quel bout commencer…

-Tout d’abord, c’est une version Alpha, donc la doc est endémique et les exemples minimalistes. Mais je tenais à poster une version pour avoir du feedback.

-Livrant a grossit. En effet, j’ai intégré directement dans le JAR 13 polices de caractères pour éviter tout problême. Du coup le programme est énorme (439 Ko !!!). Mais bon, on devrait y survivre…
Par contre, la méthode utilisée pour accéder aux polices dans le JAR est assez complexe. J’éspère que ça fonctionnera sur tous les OS. (Tenez moi au courant. L’exemple 2 sert justement à tester les 13 fontes.

-La structure a complètement changé. regarder les exemples.

-J’ai tenu compte des remarques:

  • Le fenêtrage reprend celui de de l’OS sur lequel tourne le programme.
    *Il est possible d’utiliser les flêches haut et bas pour parcourir l’historique des commandes
    * La sauvegarde d’une partie sauvegarde tout mot pour mot. Donc vous retrouvez votre aventure et l’historique dans l’état ou vous l’avez laissé.

-Arrivée des variables

Bref, il y a plein de nouveaux trucs, et Livrant 2 se rapproche plus d’un language de programmation simplifié que le 1. Mais l’esprit de base est toujours le même (parentage des pages, activation des pages, recherche de page cible,etc…).

Alors si ça vous branche, testez, testez, et envoyez moi vos commentaires. Il y a certains trucs que je ne pourrais pas faire (par exemple, tout faire en mode console…Ou jouter un IDE, j’y penserai peut-être quand le programme sera méga stable (ce qui est peut-être déjà le cas !)), mais je répondrai à chaque suggestion en l’analysant correctement. Surtout, ce qui m’interesse c’est:

-La recherche des bugs
-L’ajout de nouvelles instructions.

Livrant restera en stade alpha tant que le doc ne sera pas correcte et les exemples nombreux.

A partir du stade béta, ce sera uniquement une chasse aux bugs.

Et enfin une version stable arrivera.

Bref, je suis à l’écoute (et en vacance) pendant une semaine. A vos claviers.

GFA-MAD

Et voilà, comme promis la béta de Livrant 2 est disponible:
http://gfamad.chez.tiscali.fr/

Bon, on commence par ce qui me chagrinait le plus: La documentation. PDF ? HTML ? Le fait de maintenir deux version allourdissait la pénible tache de faire une doc. J’ai donc opté pour le format…Livrant ! Pourquoi ce choix ?

-Pour pouvoir tester Livrant: Tout en créant le doc je débuggais le programme
-Tout ceux qui peuvent démarrer Livrant pourront lire la doc.

Mais l’inconvéniant est pour ceux qui veulent imprimer. Donc je pense que quand Livrant évoluera moins, je commencerai à adapter la doc livrant en PDF et HTML. Mais pour le moment, elle est au format livrant.

J’ai donc passé cette semaine à créer la doc: C’est fait. C’est pas génial mais ça suffira pour les plus motivés.

J’ai aussi corrigé 3 bugs. Ils n’étaient pas bien méchant, mais bon quand même, c’était des bugs.

Et de plus, j’ai rajouté une instruction ‹ affichage ›. Elle permet d’ordonner l’affichage de la page en cours lors de l’exécution des blocs d’affichage. Contrairement à l’instruction ‹ affiche › qui est a effet immédiat.

Voilà. Pour la suite: Création de nouveaux petits exemples, et recherche des éventuels bugs restant.

Et pour après ? Et bien on va faire évoluer tout ça: Ajout d’instructions qui pourraient manquer, et une idée qui me trotte dans la tête: Des modes d’affichage: Le mode 1 serait le classique, le mode 2 avec fenêtre splitté: GFX en haut et texte en bas. Mais bon, ne brulons pas les étapes et finalisons correctement cette version 2.0.

Commentaires bienvenus

GFA-MAD

finalement tu as résolu de bien belle manière ce problème de documentation ! J’y ai jeté un oeil, c’est plus agréable à lire que le pdf, et plus structuré. Juste une idée comme cela, penses tu que tu pourrais inclure livrant, et donc sa doc, dans une page internet, ainsi on pourrait consulter les exemples et la doc en ligne, et voir les possibilités de ton système directement ?

sinon j’ai remarqué que si on modifie le fond du texte avec fonte: couleur: etc. cela n’affecte pas la ligne de commande : les deux ne sont plus en harmonie de ce fait… (petit bug / limitation mineur)

Une idée pour Livrant

J’ai repensé au problème que Livrant ne soit pour le moment disponible qu’en français. Si cela doit ressortir en anglais, ou une autre langue, j’imagine que cela suppose de devoir ressortir une archive .jar pour chaque langue ?
Est-ce qu’il serait possible d’envisager avoir plutpôt un fichier de langue dans une ressource à part, et à laquelle la source de l’histoire ferait référence si besoin est.

exemple :

laisser la source principale de livrant en anglais, et pour coder une aventure en français, créer un « bibliothèque » de liens pour le codage français.

Ex :

// Le manteau des ténèbres pour Livrant 2.

[b]
include:french.livrant
[/b]

synonyme:Poser/Deposer/Lacher
synonyme:Regarder/Voir/Examiner/Inspecter/lire
synonyme:Prendre/Attraper


// -------------------- Page poubelle ------------------

page:Poubelle
	pagePoubelle
	bCmd
		siVerbe:Regarder
			texteLn:regarder quoi ?
		fb
		siVerbe:Prendre
			texteLn:Vous vous prenez la tête !
		fb
		siVerbe:Poser
			texteLn:Vous désirez poser le bilan ?
		fb
	fb

(le texte est le même)
Mais le fichier french.livrant pourrait contenir :

synonym:synonyme
ifVerb:siVerbe
keyword:motCle

etc…

En fait ifVerb, keyword etc. seraient le codage par défaut, et la version françisée pourrait garder la syntaxe actuelle

Quatre avantages à cela, selon moi :

  • le code par défaut serait en anglais, donc beaucoup de personnes pourront l’exploiter sans utiliser de traduction externe-> diffusion de Livrant plus facile.

  • en passant par l’anglais pour les mots clés de base, émulation possible de développeurs qui pourront vouloir écrire une version de livrant dans leur propre langue (ex : italien, allemand, polonais… ? et pourquoi pas ? Pour info, c’est comme cela que j’en suis venu à coder pour le système Quest, en traduisant la bibliothèque de base)

  • les exemples actuels en français seront toujours valables : il suffit juste d’écrire une liste d’équivalences.

  • même en français, chacun pourra faire sa bibliothèque à sa sauce, selon ses goûts et affinités : si livrant permet cela, cela autorisera à avoir son langage de programmation « à soi ».

Ainsi par exemple je trouve que la syntaxe de livrant telle qu’elle est actuellement n’offre pas assez de discrimination dans la visualisation des blocs : plus clairement : les parties importantes du code ne sautent pas assez aux yeux. Ainsi je préfèrerais écrire :

(ou page: ou : ) au lieu de page: , et de même au lieu de fb
Une telle possibilité autoriserait à ne modifier que les fonctions que l’on ne trouve pas claires, selon ses goûts.

Le désavantage quand même c’est que le code d’un autre programmeur sera moins lisible pour la majorité, mais après tout c’est l’aventure qui compte non ? Je ne sais pas si cela serait validé par la guilde des programmeurs, mais c’est quand même une idée pour permettre à chacun de programmer dans sa langue naturelle.

Bonjour,

Je n’ai que survolé les versions alpha et beta, donc ce qui va suivre n’est probablement pas très judicieux. De plus je suis (quasiment) fanatique de la syntaxe minimaliste de Python. Enfin bref, continuons…

Etant habitué à la syntaxe minimaliste (mais claire et sans ambiguïté) de Python et détestant saisir au clavier des caractères superflus, je préfère la syntaxe de Livrant 1 à celle de Aieee basée sur le XML (et ses balises) qui à mon avis n’est pas fait pour être saisi « à la main » (même si j’ai l’habitude de saisir du HTML avec un éditeur de texte).

L’arrivée dans Livrant 2 du mot-clé fb (fin de bloc) m’a semblé bizarre, car en principe l’utilisation des Tabs (du moins en Python) suffit à définir tous les blocs souhaitables. Par exemple pour un bloc à n’exécuter qu’une fois, pourquoi ne pas utiliser une « directive » UneFois: ou NbFois=1: (par exemple) et décaler les lignes suivantes ? Penche-toi sur la syntaxe de Python (que tu connais au moins de nom grâce à Blender), notamment pour les structures de contrôle (if, while…).

Enfin bref, c’est toi qui décides.

– JL

Houlà, beaucoup de choses à lire et à dire ! En plus ça tombe pile poil avec l’arrivée de le béta 2 de Livrant:

http://gfamad.chez.tiscali.fr/

Avant de répondres à vos commentaires judicieux, je vais parler de la béta 2.

Elle n’était pas prévue, je sais, mais j’ai mis une grosse nouveauté: Le support des graphismes. Donc deux nouvelles instructions:
-Mode n: Passe en mode n=1 ou n=2. Le mode un est celui qu’on connait, le 2 est du texte en bas et du graphisme en haut.
-Image:nom_de_l’image.jpg ou png: Affiche une image dans la fenêtre du haut.

J’ai intégré la gestion,des images à fond, c’est à dire que l’option pack inclus ces dernières dans le .livrant.

J’ai aussi tenu compte des remarques d’un autre béta testeur qui ne connait pas les IF. Il m’a donc donné deux ou trois idées que vous allez retrouver dans le programme.

J’ai aussi ajouté un exemple 9 qui montre comment faire pour que Livrant réponde toujours un truc, même quand il ne comprend pas. Cet exemple a été fait très tard, et doit être plein de coquilles. Mais l’important est le source.

Bon, les réponses à vos remarques:

-Pour la traduction, je ne me suis pas encore plongé sur la question. Il est vrai que plusieurs jar aurait pu être une idée sympa sauf que…Ca rend incimpatible une version française avec une autre version. Je vais donc réflechir à cette idée… Mais ce n’est pas encore une priorité, car on est pour le moment que 3 ou 4 à s’intéresser à ce soft…En tout cas Otto, ton idée est concrête.

JL, tu aborde un sujet qui apporte à réflexion: La siplification de la syntaxe.

Je connais le Python (surtout grace à Blender ! Bravo !), et je suis d’accord pour dire que cette synthaxe est au top.

Je suis aussi pour la simplification maximale, et il est vrai que Livrant 2 possède des finBloc qui pourrait sauter…
Et puis il y a autre chose qui me chagrine sur Livrant 2: L’instruction quitte nécessite une bonne compréhension du Pipeline des instructions. C’est pas que ça me dérange trop, mais il y a un truc à revoir.
Mais je ne suis pas sûr d’y arriver à cause de la façon dont est géré le tout. Enfin, c’est à voir.

Donc mon prochain objectif est de réflechir pour encore simplifier le code des sources… Et si ça donne quelque chose, ça signifiera pour moi de reprogrammer tous les exemples !!!
:cry: :cry:

Ah, un dernier truc: C’est normal que la fenêtre du bas garde ça police de caractère, même quand on change. Mais si ça ne plait pas, alors je vais faire en sorte que les deux soient en harmonie. J’avais fait comme ça pour être sur que les commandes utilisateur soient toujours lisibles.

En tous cas merci pour vos remarques, c’est bien sympa.

GFA-MAD

je n’ai pas encore pu tester la fonction d’affichage des images, mais j’ai enfin trouvé un moyen d’utiliser Livrant sur mon mac ! Et sans java 1.5 : en effet il est possible de lancer une application sur un poste distant (sous linux), et de l’afficher dans une fenêtre mac (les deux ayant des serveurs graphiques plus ou moins compatibles).

Voici ce que cela donne :

j’ai mis quelques photos d’écran de Livrant qui tourne sous linux ici :

http://anamnese.online.fr/if/livrant/

Cool ! Et merci Otto pour la capture d’écran. Ca fait drôle de voir son programme tourner sous un autre OS que Windows !

Bon, voici une nouvelle béta le Livrant 2. C’est une béta, mais elle doit quand même être assez stable je crois. En tout cas pas baucoup de bugs à l’horizon.

http://gfamad.chez.tiscali.fr/

Quoi de neuf ?

-Harmonisation des couleurs entre la fenêtre d’entrée et celle de sortie (suggestion d’Otto). Par contre la police reste la même pour des raisons de lisibilité. Ca me choque pas moi. Mais bon, donnez votre avis.

-Changement important dans la structure: Les instructions quitte et quitteTout ont disparus. C’était des horreurs pour la structure du programme. Donc j’ai à la place crée l’instruction Sinon qui fonctionne comme on doit s’y attendre: Elle exécute l’instruction (bloc) suivant que si l’instruction (bloc) précédant n’a pas été exécuté.

-J’ai laissé les FinBloc et fb…désolé, mais ça permet pour deux lettres de plus de garder une structure propre. Je sais que la méthode Python est cool, mais j’ai deux trois trucs qui m’empêchent de l’intégrer harmonieusement dans Livrant. Peut-être pour une autre fois si je trouve une solution qui colle bien.

-L’instruction siVerbe accepte maintenant plusieurs verbess séparés par /
ex:SiVerbe:est/e

L’intérêt saute aux yeux. Supposez que vous ayez les synonymes:
Synonyme:Regarder/voir/examiner

Et que vous trouviez un papier. Si on veut intégrer lire pour que le joueur puisse faire ‹ lire papier ›, il faut le mettre en synonyme. Hors c’est pas cool car pour un autre objet, c’est choquant (‹ lire maison › ???). L’avantage est de pouvoir faire des cas particulier avec leur propore synonyme.

-Ajout d’un exemple (le 9) pour montrer comment faire pour que Livrant réponde toujours quelque chose même en cas d’incompréhension de la commande.

Bon, voilà, je crois que tout est dit.

A+ à tous.

Salut,

j’ai testé les nouveaux exemples, c’est pas mal du tout. Par contre les images ne s’affichent apparemment pas sur ma version Linux (il faudrait tester plus, je le ferais sur un autre ordinateur).
Dans la console j’obtiens :

jar:file:/mnt/eric/informatique6/ifiction2/livrant/livrant2_beta3/documentation.livrant!/logo.jpg

et si je décompresse l’archive .livrant, c’est la même chose.

Sinon j’ai commencé à regarder de plus près le fonctionnement de Livrant. Je réutilise un de tes exemples que je modifie pour une aventure. J’avais une petite question (en attendant d’ouvrir un espace du forum dédié à Livrant) : Est-ce qu’il est possible d’avoir une commande toujours visible (par exemple dans la page poubelle), sans que l’on ait besoin d’avoir une cible associé. Ainsi je voudrais mettre une aide pour le jeu, que l’on active juste en tapant « aide ». Mais pour l’avoir il me faut taper « aide jeu », ou « aide quelquechose »; Je l’ai activée avec la commande :

		siVerbe:aide
			texte:Ceci est une fiction interactive. Vous pouvez vous diriger avec les commandes "nord", "sud", "est", "ouest", ou toute autre ordre qui pourrait vous sembler pertinent au moment du jeu.
		fb

dans la page poubelle. Comment faire ?

Sinon, quelle fonctionnalité serait le plus proche des fonctions / procedures que l’on connait en programmation (à savoir, exécuter une action répétitive que l’on peut lancer depuis de multiples endroits)
J’imagine que l’on peut créer une page dédiée à cette fonction, mais ensuite comment revenir à la page de départ ?
La notice de Livrant n’est pas très explicite à ce sujet.

J’ai aussi quelques problèmes à un autre niveau. On est habitué dans les fictions interactives à juste taper l’abbréviation d’une commande de direction (n, s, e, o etc.). J’ai donc défini synonyme:nord/n etc. pour mon jeu. Mais par la suite j’avais besoin de poser des questions au joueur, qui devait répondre par oui ou par non (o ou n). Et là mon synonyme m’ennuie. Il est toujours possible de lui demander de taper 1 ou 2 pour la réponse, mais c’est plus naturel avec o ou n. Est-ce qu’il y a moyen d’avoir une priorité de commande suivant que c’est défini en global ou en local ? Mais si ce n’est pas possible, ce n’est pas grave, j’utiliserai un autre code.

ah, et une dernière chose encore pour t’embêter, est-ce qu’il est possible d’avoir un mot composé dans les synonymes ? Je voulais avoir une commande nommée remémorer, et faire des raccourcis avec apropos et a propos. « A propos » ne semble pas fonctionner, sans doute du fait de l’espace.

J’ai changé l’image de mon précédent message, comme cela on voit mon exemple de jeu, et l’image est plus petite. Pour information, comme expliqué plus haut le programme java est exporté de linux pour tourner sous macintosh, et le fichier source (du jeu) est localisé sur un 3ème ordinateur ! Pas très pratique, mais c’est amusant (et cela n’aide pas pour éviter les fautes d’orthographe…) :wink:

Encore deux nouveaux points, pour démarrer une aventure il ne semble pas possible de la lancer dans une ligne de commande, dans ce style :

java -jar Livrant2.jar aventure.txt

cela a l’avantage de permettre de faire un fichier batch, un exécutable ou un script pour diffuser un jeu avec l’archive de livrant. Sinon le joueur doit aller retrouver le fichier sur le disque, ce qui est moins convivial.

Sinon j’ai remarqué également que le caractère espace n’est pas pris comme un caractère à valider. Ainsi dans ton manuel au format livrant, il me faut taper obligatoirement un caractère, sauf espace ou entrée, et valider par la suite. Il semble plus logique qu’espace soit pris en compte comme un vrai caractère (surtout que dans le « pressez une touche pour continuer » je pense que beaucoup de monde pressera espace…), et cela serait plus réactif aussi si le fait de valider dans le vide pouvait faire la même chose que de taper un caractère puis de valider. Encore dans ton manuel, on aimerait bien pouvoir appuyer sur une seule touche pour revenir au menu d’avant, ou dans une aventure pouvoir sortir d’une description de cette manière (en fait les autres logiciels de fiction interactive réagissent comme cela habituellement)

A propos de description, apparemment s’il y a trop de texte, Livrant le fait défiler jusqu’à la fin. Avec Inform ou Tads il y a une ligne de type « [more] ».
Et il n’y a pas moyen de redimensionner la fenêtre de Livrant ?

Je n’étais pas connecté cette fois…

j’avais une dernière suggestion pour le moment, c’est dans le menu aide, d’avoir un sous menu « manuel » qui lancerait une nouvelle fenêtre livrant avec ton fichier d’aide au format livrant…

Purée Otto ! Ca c’est du feedback comme je l’aime ! Donc forcément je vais répondre à toutes tes questions et marquer d’éventuels TODO. Let’s go

Bon, le fait que l’image ne s’affiche pas, c’est pas normal. Et je ne sais pas trop quoi dire… D’autant plus que je n’ai que Windows, et donc je ne peux pas faire de recherches sur d’autres OS. Mais je vais essayer de réfléchir.
A un truc, il n’y a qu’une seule image qui s’affiche, c’est dans la doc de Livrant, au tout début. Ailleurs, il n’y a pas d’images, c’est normal.

Le fait que tu es cette inscription dans la fenêtre de sortie est un oubli de ma part…C’était pour debugguer que j’utilisais cet affichage. Je l’ai supprimé.

Délicat. En effet, une commande seule signifie que l’on s’adresse à la page en cours. C’est donc à elle de traiter la commande. J’ai déjà pensé à ce problême, et pour ma part, j’utilisais aide * … Donc pas trop possible.

Il est possible de faire des saut de page avec la commande SautPageM ou ChangePageM qui est documenté avec ChangePage/SautPage. Le M signifie mémorisation. Et le retour se fait de 2 manières: Retour et RetourM. Voilou. Mais il faudrait qu’un jour je me décide à faire un système de macro ou autre. Ca arrangerait. Donc un demi TODO car la moitié de ce que tu demandes existe déjà :wink:

Ce point m’a aussi agacé et il est corrigé avec la béta 3. Il suffit de mettre siVerbe ouest/o sans le définir en synonyme. C’est documenté dans siVerbe, à la fin… D’ailleurs il était même expliqué dans le post de la béta 3 ! Si si, regarde bien quelques post plus haut !

Et oui. Tu ne peux pas mettre d’espace avec les verbes, mais tu peux par contre en avoir un devant la cible. Tu peux donc avoir "regarder cravate verte’ ou « utiliser la clé sur la porte » à condition pour ce dernier que tu crée une page avec « motCle:cle porte » (sans accent et articles).

J’ai du faire un choix pour que le programme puisse trier les patates. Les espaces sont du coup accepté de partout, sauf pour les verbes. C’est obligé pour pouvoir faire une recherche de cible.

Donc moralité: Des espaces ou tu veux sauf pour les verbes !

Ben moi je suis content de voir qu’au moins une personne utilise mon programme ! Ca motive pour aller plus loin…

C’est une chose auquelle je n’avais pas pensé ! Force m’est de l’avouer.
Heu, le problême est que j’en bave pour localiser indépendamment des machines ou se trouve Livrant en lui même. Une fois que j’arriverais à avoir un chemin menant à Livrant ou qu’il se trouve, je pourrais me pencher sur ta question. Donc en TODO

OK,OK…Je supprime automatiquement toute ligne « vide ». C’est à dire qu’elle n’est même pas envoyé à l’analyseur de commande. Ca me génait d’avoir l’affichage ===> sans rien derrière. Je vais donc me débrouuiller pour que la commande retour chariot à vide soit prise comme une commande sans rien afficher. Ca résoudra le problême (et puis je reconnais que moi aussi ça me chagrinait un peu !)
Donc en TODO !

Pour le redimensionnement, non. Pourquoi ? Parce que ca permet de créer une aventure en sachant exactement ce que l’autre aura sur son écran. Si certains veulent faire de l’ANSI art…

Par contre pour le more…Ben je sais pas. L’idée est bonne, et j’y ai tout de suite pensé. Mais l’affichage est envoyé en flot sans que je sache à l’avance combien de ligne il va y avoir. Pas évident comme ça au premier abord. Mais je marque quand même un TODO. En fait le JAVA c’est top, mais il y a des milliers et des milliers d’API. Je connais très bien les bases, mais, loin de là, pas toutes les APIs. Donc je vais voir ce que je peux faire.

C’est une demande logique. Donc en TODO. Par contre dans une nouvelle fenêtre, pas possible. En effet, Livrant ne sait gérer qu’une session. Disons que je vais voir ce que je peux faire !

Ben mon gars, voilà des remarques pertinantes qui vont faire travailler le GFA-MAD. C’est le webmaster de Boursica qui va gueuler, lui qui attend que je luis fasse ses courbes de bourse en temps réel. Faudrait d’abord que je finisse Livrant ! Enfin, au moins le version 2.0 !
En tout cas, merci encore Otto: J’ai beaucoup programmé dans ma vie, et je n’ai jamais rien « distribué » . Et je suis content de voir qu’au moins une personne a utilisé ce programme. Ce me suffit !

A+

GFA-MAD

Si tu trouves un vieux disque dur tente l’aventure ! :wink:
Même à partir d’un live-cd cela peut donner un aperçu. Je vais essayer d’intégrer bientôt Livrant et le dernier java sur mon live-cd de toute façon.
Linux c’est vraiment bien pour la programmation. Quelqu’un qui se débrouille bien là-dedans ne devrait pas avoir de pb avec les commandes linux. Et ce qui est bon c’est que ce système est vraiment modulaire, donc on fait vraiment ce que l’on veut avec. La liberté ce n’est pas que le fait que cela soit gratuit…

oui, j’avais bien remarqué. Je parlais bien de ta doc, et pour le test de mon jeu j’ai inclu une image d’intro qui ne fonctionne pas non plus.
En fait à la place de l’image, il n’y a rien, tout simplement :
anamnese.online.fr/if/livrant/livrant_linux3.png

ce n’était pas bien dérangeant. Je pensais que cela pouvait aider pour découvrir le bug, mais j’ai vu avec ton exemple d’image que cela s’affichait aussi dans une console windows, et dans le cas normal. Donc sous Linux l’image est bien détectée, mais elle ne s’affiche pas. Ma version de java est celle fournie par Sun, c’est la toute dernière bien entendu. C’est bizarre car effectivement normalement java tourne sous toutes les machines de la même manière.

Pas grave, on fera sans ! Je l’indiquerai dans l’aide tout simplement.

ok, je vais tester en ce sens. RTFM, tout simplement… :frowning: j’avais regardé un peu toutes les commandes (il n’y en a quand même pas bcp) mais j’avais laissé cela de côté, je pensais que c’était autre chose dont je n’avais pas besoin…

exact. Je l’avais lu et même utilisé ! Mais je n’ai pas pensé à l’utiliser ici parce mon synonyme était déjà défini ainsi en début de jeu.

bon, pareil on fera sans. Là c’est assez ennuyeux pour les verbes composés, et à particule. Ex : se reposer etc. Mais on pourra toujours contourner cela d’une manière ou d’une autre. J’avais eu aussi le problème pour les directions type « nord ouest » etc. (résolu par « nord-ouest/no »

Dans le même ordre d’idée, est-ce qu’il serait possible d’avoir une page avec plusieurs parents ? En gros cela pourrait permettre d’avoir un objet visible depuis plusieurs endroits :

exemple ici :

page motCle:montagnes/montagne parent:Sentier parent:Sentier2 bCmd siVerbe:Regarder texteLn:Des montagnes mauves se détachent au loin. fb

(ou alors : parent:sentier/sentier2

Cela évite de devoir recopier cette portion de code deux fois dans le texte, ou 15 fois si on veut que les montagnes soient visibles de 15 endroits à la fois dans le jeu. Mais je vais regarder si je ne peux pas faire cela avec SautPageM , ChangePageM et les retours.

tant mieux alors ! :wink: Moi cela me motive aussi d’essayer de nouveaux systèmes, d’autant plus que le tien est simple et rapide à utiliser. Mais pour passer à la vitesse supérieure, peut-être te faudra-t-il traduire les commandes en anglais ? Car je pense que dans l’état actuel des choses, même avec les commandes en français on doit pouvoir coder en anglais, sauf que les facilités comme la suppression des articles français etc ne fonctionneront pas en anglais bien entendu.
D’où l’idée de laisser tout cela, si c’est possible, dans des bibliothèques externes, au format txt comme cela tout le monde pourra faire sa petite sauce suivant les langues ?

je pense que bcp de programmes permettent de faire cela, y compris des prgs windows. Et pour les logiciels de fiction interactive, 100 % doivent le permettre.

pas forcément sans rien afficher. Là aussi la plupart des interpréteurs d’ifiction vont afficher un message d’erreur type « je ne comprends pas la commande » si une ligne vide est tapée. C’est entré dans les moeurs si je puis dire.

là c’est toi qui voit, c’est toi le créateur :wink:
Mais je trouve que la fenêtre est un peu grosse. Idem, bcp de gens s’attendent à un autre type de comportement avec les fenêtres, qui l’on puisse les manipuler comme celle d’un navigateur internet notamment…
Mon dernier argument, même s’il est un peu falacieux parce de moins en moins de personnes ont cela, c’est que quelqu’un qui affiche un moniteur de seulement 800x600 ne verra pas le bas de la fenêtre.

ok… cela sera déjà bien. Par contre lorsqu’il sera possible de lancer un fichier livrant en ligne de commande je pense que cela sera plus simple, il suffira de lancer une seconde instance de livrant avec comme argument le fichier d’aide.

de rien, c’est surtout toi que l’on peut remercier pour le codage de livrant. Est-ce que tu vas publier les sources de livrant également ?

Je viens de tester Livrant et mon jeu sur l’ordinateur de mon travail (linux également), et les images s’affichent bien ! Donc le problème vient sans doute de l’installation de java 1.5 sur mes autres machines.

(plus tard) Ca y est, j’ai compris, en fait ce doit être un bug de java car les images ne passent pas par le réseau : dans la console c’est bien affiché, mais il faut être sur un volume local pour pouvoir lire les images. Mon cas était un peu spécial donc dans 99% des autres cas tes utilisateurs ne verront pas la différence !

Bon, encore une petite nouveauté :

j’ai réussi à inclure Livrant et java 1.5 dans mon live cd de linux, il y a une photo d’écran ici :

http://eric.spritewood.net/esclinux/escapelinux_livrant.jpg

cela fonctionne plutôt bien ! L’image n’est pas super en qualité, mais j’en reprendrai d’autres plus tard. En arrière plan il y a aussi le manuel d’ouvert.

Par contre c’est sûr que entre télécharger 200 Mo pour ce cd et télécharger 15 Mo pour java1.5, cela fait une sacré différence. Mais j’espère que mon cd a d’autres atouts.

Le quartier général du projet se trouve maintenant ici, tant que mon site sur free ne répond pas :

eric.spritewood.net/esclinux/

(attention, Livrant ne sera que sur la prochaine version du cd, que je n’ai pas encore mis en ligne. Peut-être que cela sera pour la beta 4 ou 5, et j’attends aussi la mise à jour de JIF qui sortira prochainement.)

Petit bug génant pour livrant : si une image n’est pas trouvée, le livre ne s’ouvre pas. Peut-être qu’un message d’erreur ou le nom du fichier manquant serait suffisant.

(…)

J’ai encore quelques remarques…

J’ai eu quelques soucis pour afficher les pages comme je voulais. En fait il me manquait trop de fin de bloc.

Par exemple dans un cas comme celui là :

bloc siEtat:Ferme texte:La porte est fermée. fb sinon siEtat:Ouvert texte:La porte est ouverte. fb

A moins que dans certains cas cela puisse poser des limitations ? Car entre les sinon et les fb que j’oublie, les déboggages sont plutôt longs…

je trouve qu’il y a bcp de redontances :

→ le fait d’indiquer « sinon » juste avant « siEtat »
→ le fait d’indiquer « fb » avant « sinon ».

de plus je crois que j’ai oublié un fb logique après « la porte est ouverte ».

Est-ce que cela ne serait pas plus simple :

bloc siEtat:Ferme texte:La porte est fermée. siEtat:Ouvert texte:La porte est ouverte. fb

En fermant automatiquement les blocs avant siEtat.

A moins que cette syntaxe simplifiée ne fasse des limitations par la suite…

Ou alors en utilisant des parenthèsages ou des crochets. L’avantage c’est que certains éditeurs de texte peuvent colorer les blocs entre crochets, si bien que le code est plus lisible.

Waouuu ! Je passe Noël à la neige, je reviens et plein de post d’Otto ! Dont un en double même !

Bon, tout d’abord, je tenais à te dire que je crois avoir une solution pour pouvoir taper des commandes globales. Par exemple ‹ aide ›, ‹ inventaire ›, etc…

-Pour l’image qui s’affiche pas, je pensais bien que c’était un truc comme ça. En effet, j’ai pas prévu le coup que l’image puisse se trouver sur une autre machine !!!

-Tu m’as aussi souligné un bug qui empêche d’ouvrir un livre quand une image est absente. C’est normal et un message d’erreur s’affiche. Tu n’as pas eu ce message d’erreur ? C’est étrange. Le seul cas ou le test n’est pas fait c’est dans le cas d’un fichier archive *.livrant. En effet, cette archive est sensée être valide puisque l’option ‹ pack aventure › ne fonctionne que si tout est OK, et si toutes les images sont présentes. Décrit moi dans quelles conditions tu n’as pas eu le message d’erreur et que le livre ne s’est pas chargé.

-Pour ce qui est des si…sinon…et fb, ta proposition:
siEtat:Ouvert
texte: c’est ouvert
siEtat:Ferme
texte:C’est fermé.

N’est pas viable. En effet, il faut penser aux cas de si imbriqués ! Théoriquement en indentant correctement, tu ne devrais pas voir de problême de fb… Mais bon, je sais qu’on peut mieux faire.

Pour l’intégration de Livrant dans un CD, je donne mon feu vert sans limitation.

Bon, encore merci. En ce moment Livrant ne va pas vite car c’est les vacances et pis il y a ce satané Half life 2 qui est trop top et avec mon fils on s’éclate avec (enfin, surtout moi, lui il regarde…Un peu petit quand même !)

Allez, dès que j’ai du temps, je me penche sur toutes tes remarques et continue à bosser sur Livrant. Je vous tient au courant.

GFA-MAD

PS: Mon mail perso, écrit à l’envers pour ne pas être la cible des farfouilleurs automatiques:

rf.frusytrebil at damafg

Bonsoir,

tu as de la chance d’être allé au ski…
Bon, moi j’ai continué un peu l’aventure. Comme expliqué par message internet j’ai eu du mal avec les conditions…

Pour l’histoire de l’image qui n’est pas dans le répertoire, j’ai bien eu le message d’erreur, mais c’est dommage que l’histoire ne puisse s’ouvrir sans l’image, alors que l’image est quand même accessoire… mais c’est sur que dans le cas d’une aventure empaqueté, il y a moins de risque que l’image ne s’égare…

Pour l’image par le réseau, je pensais que java permettait de faire ce qu’une page html fait : si cela passe par le réseau pour le texte, l’image passe aussi. Mais c’est vrai que mon utilisation était à l’extrême de ce qui se fait normalement.

Tiens nous au courant des avancées !

Et voilà, comme promis, encore une béta de Livrant. Bon, c’est plus une nouvelle version style « 2.1 » qu’une béta, mais j’ai encore des trucs à y faire, et pis vaut mieux rester prudent, le programme est encore jeune !

Pour l’adresse: (Toujours la même !)
http://gfamad.chez.tiscali.fr/

Bon, il y a beuacoup de nouveautés, pas mal assez 'invisibles", mais d’autre très importantes ! En tout cas, j’ai essayé de tenir compte des remarques.

-Un appui sur entrée sans rien écrire suffit pour déclancher l’appel du bloc de commande. Ca permet de faire ‹ entrée › directement sans rien taper quand une touche quelconque est demandée.

-Le menu comprend maintenant une entrée pour accéder directement à l’aide de Livrant. documentation.livrant doit alors se trouver dans le même répertoire que le jar de Livrant.

-Ouvrir un fichier prend par défaut le répertoire ou se trouve Livrant plutôt que 'Mes documents" sous Windows (Suggestion d’Isatis)

-Les commandes de blocs:
*Blocs
*BlocInitial
*BlocGestion
*BlocCommande
*BlocAffichage
peuvent maintenant prendre un paramètre: Le nom du bloc. Celà permet grace à l’ajout d’une fonction ‹ execute:Nom_du_bloc › de créer des sortes de macros. Cette option permet:
-De simuler des macros
-De créer des commandes globales comme ‹ Aide ›. Voir l’exemple 10.

Donc d’une pierre deux coups.

Cette fonctionnalité est d’autant plus interessante que le bloc appelé fait du coup partie intégrante de la page appelante. Ainsi, tout se passe comme si il y avait eu un copier/coller du bloc. Il a ainsi, par exemple, accès à l’état de la page.

-Ajout d’une instruction siDans pour détecter dans quel page est exécuté un bloc. Utile pour la fonctionnalité ci-dessus car un bloc peut maintenant se retouver virtuellement dans n’importe quel page.

A noter qu’un bloc du type:
blocCommande:Tralala


fb

peut être appelé de n’importe quel type de bloc, même un bloc affichage ou gestion.

Et puis j’en oublie encore deux ou trois, mais bon, le tout est de tester !

Pour le reste, je vais essayer de me pencher sur le « more » pour défiler une page. Et puis peut-être aussi sur la ligne de commande, même si cette option me semble mineur à l’heure des OS graphique.

Allez, je vais décontracter avec Half Life 2 !

A+

GFA-MAD