Python et Tepache (spécial JL)

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

Python et Tepache (spécial JL)

Messagepar Otto Grimwald le Lun Oct 24, 2005 10:25 pm

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 :

http://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 : http://www.gnomefiles.org/app.php/tepache et un produit similaire ici : http://kefir.sourceforge.net/index.php . Pour la même chose en QT : http://dosimple.ch/articles/Python-PyQt/ )

un exemple concret : http://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 (http://py2exe.sourceforge.net/) :

http://afpy.org/Members/Khaalel/BitPodder/
Dernière édition par Otto Grimwald le Jeu Mai 24, 2007 10:39 am, édité 3 fois.
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar JL le Mar Oct 25, 2005 7:44 pm

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
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar JL le Mar Oct 25, 2005 10:25 pm

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

Il faut avoir installé Python 2.3 ou 2.4 ( http://www.python.org ) et wxPython 2.6 correspondant à la version de Python ( http://www.wxpython.org/ ; donc pour Windows http://prdownloads.sourceforge.net/wxpy ... 0-py23.exe ou http://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 :
> prendre disquette
Parlez-vous du lecteur de disquette ou de la disquette ?
- 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
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar Otto Grimwald le Mer Oct 26, 2005 10:49 pm

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 :
http://anamnese.online.fr/temp/easyinform-1.png

A part cela, le concept semble très prometteur. Tu es un dieu en python, vieux Gandalf !
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar JL le Jeu Oct 27, 2005 8:13 pm

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, http://www.ravenna.com/~forbes/yonk/ , mais c'est pas exactement ça je crois) ; j'avais posé la question sur raif il y a un an. Pour TADS il y a Plugh ( http://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... :)
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar Otto Grimwald le Ven Oct 28, 2005 12:50 pm

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 ?
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar JL le Ven Oct 28, 2005 8:38 pm

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
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar JB le Sam Oct 29, 2005 10:19 am

Otto Grimwald a écrit: Tu es un dieu en python, vieux Gandalf !


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
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Re: Python et Tepache (spécial JL)

Messagepar Otto Grimwald le Ven Déc 21, 2007 6:11 pm

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

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

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Python et Tepache (spécial JL)

Messagepar Otto Grimwald le Dim Jan 06, 2008 4:43 pm

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 !

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm

Re: Python et Tepache (spécial JL)

Messagepar Adrien le Lun Jan 07, 2008 10:13 am

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?
Avatar de l’utilisateur
Adrien
Très Ancien
 
Messages: 1092
Inscription: Mar Aoû 24, 2004 9:23 am
Localisation: Montpellier, France

Re: Python et Tepache (spécial JL)

Messagepar Otto Grimwald le Lun Jan 07, 2008 11:44 am

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

http://www.py2exe.org/

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

Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3028
Inscription: Mar Aoû 24, 2004 12:02 pm


Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron