Python et Tepache (spécial JL)

Où en es-tu JL de ton projet avec wxwidgets ?

Je dois dire que j’ai continué pour ma part du côté de Glade et pygtk, à mon modeste niveau.
Et je suis tombé sur un superbe programme qui facile la vie du programmeur. Je ne sais pas si c’est possible ou courant avec d’autres systèmes, toujours est-il que Tepache permet à partir d’une interface réalisée avec glade de générer automatique un code python fonctionnel, où toute action de l’interface graphique est remplacée par des messages standard. Par exemple : « clic sur bouton1 qui produit message2 », "on_copier1_activate called with self.copier1
" etc.
Cela fait un skelette particulièrement facile à modifier pour remplacer par de vraies fonctions.
J’avais fait pour mon travail un petit programme en mode texte qui donne à partir d’un prix d’achat et de vente les marges, coeff, taux de marge etc. , bref qque chose de très simple.
En 1/2 heure j’ai pu créer une interface graphique + j’ai connecté à partir de ma bibliothèque existante les différentes fonctions, et tout fonctionne parfaitement. Je n’ose imaginer ce que cela aurait donné avec tkinter…
J’aimerai savoir si wxwindgets est aussi facile à utiliser, en tout cas voici la page du programme :

primates.ximian.com/~sandino/pyt … e/tepache/
(edit mai 2007 : je crois que le site n’existe plus, on doit pouvoir trouver une archive ici : dosimple.ch/articles/Python-PyQt/ )

un exemple concret : primates.ximian.com/~sandino/python-glade/

et un autre exemple en français, à partir cette fois de la version windows de glade, et comment créer un exécutable indépendant (py2exe.sourceforge.net/) :

afpy.org/Members/Khaalel/BitPodder/

Merci pour ces précisions, Otto.

Je n’avais pas reparlé du projet en raison du concours, à l’occasion duquel j’avais fait une pause, qui s’est prolongée…

J’avais pu finalement me familiariser avec Boa Constructor et wxPython, au point de dépasser le stade où j’en étais avec tkInter. Je crois qu’il y a du progrès dans le projet, mais ce n’est pas fini.

Par exemple, plus tard, chaque direction sans issue pourra fournir un message d’erreur personnalisé, à la mode Inform. Je vais essayer d’abord de peaufiner la modélisation les lieux pour que l’auteur soit naturellement guidé par le programme, pour qu’il n’oublie pas par exemple des mots mentionnés dans ses descriptions.

J’avais fait un test pour vérifier que je pourrai faire un installeur Windows du logiciel avec py2exe. Ca marchait bien, je crois, même si ça rajoutait autour de 10 Mo à l’installeur.

L’incompatibilité de la sauvegarde avec Linux a été résolue (à tester) : les fichiers « aventure » étaient enregistrés au format texte au lieu du format binaire.

Je vais mettre tout ça en ligne, même si ce n’est pas fini, attention…

– JL

Voilà la version actuelle (et pas encore suffisamment complète) du générateur est à l’adresse : jlpo.free.fr/easyinform/easyinform0.2.zip

Il faut avoir installé Python 2.3 ou 2.4 ( prdownloads.sourceforge.net/wxpy … 0-py24.exe ) ; choisir la version unicode. Plus tard avec l’installateur ça sera plus simple.

Par la suite je compte :

  • simplifier et donner plus de possibilités pour les issues d’un lieu ;
  • permettre pour chaque objet de programmer directement n’importe quelle propriété ; ces modifications auront la priorité sur le générateur ;
  • vérifier que les objets d’un lieu recouvrent bien les mots des descriptions ;
  • générer automatiquement pour les objets une fonction parse_name qui permettra de gérer facilement les adjectifs et éviter des problèmes du type :
  • tout ceci (sauf le menu programmation) devra être très simple à utiliser ; si tout va bien, l’auteur ne se rendra même pas compte des problèmes que le générateur est en train d’éviter pour lui…

– JL

cela semble pas mal du tout !
Par contre c’est bizarre, je n’ai pas de décoration de fenêtres sur la fenêtre principale, et les textes s’entrechoquent un peu !! De plus si je peux bouger les fenêtres avec certains raccourcis, avec des raccourcis similaires pour modifier la taille des fenêtres, cela ne fonctionne pas.

j’ai bien python 2.3 et wxpython 2.6

Pour info une copie d’écran :
anamnese.online.fr/temp/easyinform-1.png

A part cela, le concept semble très prometteur. Tu es un dieu en python, vieux Gandalf !

Merci beaucoup pour la copie d’écran, c’est très utile !

Pour les textes qui s’entrechoquent, c’est bien ce que j’avais cru lire une fois, la police de caractères est plus grande sous Linux. J’ajouterai de la marge, à moins de faire des fenêtres qui se redimensionnent, mais c’est assez pénible à mettre en place (c’est le cas uniquement pour l’écran principal), d’autant que ces écrans risquent d’évoluer pas mal encore. Ou alors fixer la taille de la police, ah oui peut-être…

Par contre la décoration de fenêtres c’est bizarre, mais je vais chercher, ça doit être une option qui manque. Et puis, les boutons ajouter/modifier/supprimer se placent mal.

Oui c’est étrange que le concept n’ait pas été tenté avant pour Inform (à part Yonk pour Macintosh, plugh.info/ ), mais même dans ce cas il n’a pas la simplicité d’utilisation (de départ en tout cas) de Adrift ou Quest. Il n’a pas l’air d’avoir eu beaucoup de succès, d’ailleurs.

Sinon, (avec très peu de programmation) le générateur devrait pouvoir détecter Linux et lancer compilation et interprétation avec les outils déjà disponibles (inform et xfrotz par exemple).

– JL

PS A propos de Gandalf, même si le personnage me fascine, dans les jeux de rôles je choisis plutôt un guerrier ou un voleur… :slight_smile:

j’ai essayé brièvement Yonk, mais je ne me souviens plus exactement ce que cela faisait… Je crois que c’était un peu dans l’esprit de ton programme.

A propos d’easy inform, est-ce que tu comptes l’inclure dans sourceforge, pour permettre un travail collaboratif ?

D’après le site de Yonk et les copies d’écran, Yonk semble très proche de la future version minimale de Easy Inform, avec les différences suivantes :

  • Yonk colle de très près à Inform, au point de reprendre tous les noms de propriétés et d’attributs ; Easy Inform collera le plus possible à Inform, mais sans donner les « vrais » noms des propriétés et attributs (il faudra consulter le code généré), sauf dans le menu « expert » ; Easy Inform doit être beaucoup plus simple, ne pas nécessiter de connaître Inform.
  • pour la raison prédente, Yonk peut lire entièrement n’importe quel fichier inf et travailler dessus (mais attention aux surprises, style commentaires supprimés, etc.) ; Easy Inform importera peut-être une partie d’un fichier inf, mais cela n’est pas le but principal, puisqu’il s’agit de permettre à des personnes n’écrivant pas en Inform de s’en sortir.

Yonk semble compter quelques adeptes (mais qui connaissent Inform), en tout cas.

Source Forge pourrait être utile s’il faut télécharger des gros fichiers d’installation et que beaucoup de monde télécharge, ou alors pour les forums, le cvs, les rapports de bug…
D’ailleurs je suis déjà enregistré chez eux. Choisir une license open source ? Pourquoi pas, d’autant que de toute façon ce logiciel fonctionnera avec Inform et un interpréteur z-code.
Pour le nom, j’hésite encore avec Inform Fiction Generator, qui aurait le mérite d’être clair (parce que ça risque de ne pas être aussi « Easy » que ça tout le temps).
Je ne sais pas non plus combien de temps je tiendrai sur ce projet, car bien souvent chez moi une idée chasse l’autre. Probablement tant que les obstacles ne sembleront pas trop gros et que les idées seront au rendez-vous. Ca dépendra aussi de l’accueil du projet, même si ça sera difficile à évaluer car les utilisateurs visés ne sont pas seulement ceux qui consultent ce forum et rec.arts.int-fiction.
Un problème qui risque d’arriver si une traduction en anglais existe, c’est que ce logiciel compte résoudre les problèmes rencontrés par l’auteur francophone : faut-il conserver les accents dans la propriété « name » ? comment implémenter « lecteur de disquettes » ?

En tout cas dans l’immédiat je dois arriver à une version minimale qui permettrait à deux co-auteurs (dont un programmeur), de se renvoyer par mail le fichier aventure et d’aboutir à une aventure complète.

Mais je dois anticiper sur l’étape suivante : comment combler la distance entre la création des lieux, des portes et des objets simples et l’ajout des objets plus complexes. Tout ne sera pas faisable simplement. Trouver l’équilibre entre Inform, Yonk, Adrift, Quest, cette partie de l’interface devant être impérativement très simple à utiliser (sinon employer directement Inform en mode expert). En fait cela doit permettre d’écrire des fictions interactives classiques (mais avec une progression d’histoire, quand même) et bien écrites (grâce aux conseils fournis au fur et à mesure). A suivre…

Autre idée probablement réalisable (pas sûr) et intéressante (encore moins sûr) : permettre au mode expert d’ajouter et d’utiliser des variables qui correspondraient à des champs de saisie du mode simple. Par exemple, le programmeur pourrait, pour un objet, créer une variable texte appelée « description quand il pleut », l’utiliser dans son programme en Inform, et l’auteur pourrait depuis son interface écrire cette description et la modifier tant qu’il voudra sans lire du code. En allant encore plus loin, chaque type d’objet complexe pourrait donner lieu à une sorte d’objet-type, de classe, que pourrait ajouter un programmeur, mais là c’est encore un peu tôt. Si déjà la version simple apporte quelque chose, ça sera bien.

– JL

Effectivement, et finalement pour notre histoire de projet commun d’IF peut etre nous y sommes nous mal pris : plutôt que se passer des bouts de code en jouant sur notre petit coté bricolo et touche à tout, on aurait pu jouer sur notre spécialisation.

En ce qui me concerne, je prends du plaisir à raconter des histoires et à écrire des dialogues.

J’ai cru comprendre qu’Eric aimait fabriquer des univers, les construire au papier et au crayon, et créer des puzzles.

Je ne connais pas assez Adrien, mais il me semble habile à créer des puzzles et ses descriptions sont inventives.

Gandalf le gris, lui, surplombe de son rocher nos efforts pour écrire du code et sourit avec compassion malgré lui dans nos vaines tentatives, et de temps en temps, nous lache quelques fonctions afin de nous soulager de notre douleur de coder.

JB

PAWS est un système de création de jeux textuels en python :
home.fuse.net/wolfonenet/PAWS.htm

Selon l’auteur, il va sortir une nouvelle version très bientôt !

La nouvelle version est enfin sortie !
Moi cela me semble un peu compliqué à utiliser par rapport à Inform, mais l’idée est sympathique. L’auteur propose une aventure (encore en développement), Thief’s Quest, qu’il a commencée il y a 30 ans, vers 1978 !

Ca fait un moment que je ne suis plus interessé à Python… dans mes vieux souvenirs c’était de l’interprété, non? Est-ce qu’il y a moyen de distribuer du code compilé auto-executable?

oui, c’est toujours de l’interprété, mais il est également possible de proposer cela :

py2exe.org/

« py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation. »