Cher journal,
J'ai le plaisir de t'annoncer la sortie de la version 0.2 de Tiny 'Nux Tarot, qui est aussi sa première version publique. J'espère par conséquent avoir droit à un peu d'indulgence si le code source est immonde /o\
Qu'est-ce que c'est ?
Comme son nom l'indique, Tiny 'Nux Tarot (ou TnT) est un bébé jeu de tarot. Il est écrit dans le langage Vala et utilise la bibliothèque Gtk+, ainsi que les images de cartes à jouer du projet Cardpics. Il est, c'est assez peu original, distribué sous licence GNU GPL.
Fonctionnalités
Comme son nom l'indique aussi, ainsi que son numéro de version, TnT a des fonctionnalités assez limitées, mais il devrait néanmoins permettre de faire des parties de tarot à quatre joueurs, sans avoir besoin d'avoir trois autres joueurs de tarot sous la main.
Plus en détail :
- les règles de base du tarot sont implémentées, bien que certains cas particuliers ne soient pas gérés (notamment : les poignées, les garde sans et garde contre, le petit au bout ou encore l'excuse au dernier tour) ;
- seul un jeu à quatre joueurs est possible (mais c'est tout de même le plus intéressant) ;
- l'IA existe, bien qu'assez rudimentaire : elle essaie de se défendre comme elle peut et peut même prendre lorsqu'elle a un bon jeu, mais elle est plutôt simpliste ;
- l'interface graphique permet de jouer quelques parties mais est spartiate (même si la personne qui prend est indiquée par des têtes de mort à côté de son nom, et que je ne suis pas peu fière de cette idée) ;
- il n'y a pas encore d'internationalisation, et le jeu est un peu en franglais à cause du fait qu'il est difficile de trouver des traductions anglaises pour les termes propres au tarot ;
- pour finir, il est possible de jouer à deux êtres humains sur la même machine, même si cela a assez peu d'intérêt — le jeu en réseau n'est pas (encore ?) supporté.
Téléchargement / installation
Là non plus, rien de très original : la tarball de la version 0.2 est téléchargeable sur Github, après quoi un classique «./configure, make, make install» devrait faire l'affaire, à condition d'avoir les bibliothèques requises (Gtk+3.x, libgee et libvala — dans ce cas, le compilateur Vala n'est pas nécessaire, vu que le code est déjà traduit en C). En tout cas en théorie : je n'ai pas eu l'occasion de le tester sur d'autres machines que les miennes, donc je serais assez curieuse d'avoir des retours à ce sujet.
Il est aussi possible d'utiliser git pour récupérer la dernière version (même si à l'heure où j'écris ces lignes, le code devrait être identique à la tarball).
Utilisation
Pour lancer TnT, il suffit de l'invoquer par la ligne de commande. Il n'y a pas besoin d'options, à moins que vous vouliez jouer à 2 sur le même écran (bon en vrai, moi je m'en sers pour débugger, mais ça me parait très peu pratique pour jouer) :
$ tnt 2
…ou que vous n'ayez pas envie de vous appeler «Player 1» et de jouer avec «Player 2, 3, 4», mais «Plop» et de jouer avec «Miaou, Coin, Pan» :
$ tnt 1 Plop Miaou Coin Pan
Le jeu en lui même est plutôt basique et ne nécessite pas, je pense, de manuel particulier, vu que ça se limite à cliquer sur une carte pour jouer la carte (ou la destiner au chien), sur «OK» pour passer au tour suivant, ou sur «Passe/Petite/Garde» pour «Passer/Prendre/Garder». Sinon, le nom de la personne (ou de l'IA) qui a pris est indiqué en rouge, tandis que celle qui commence le tour se voit affubler du bleu (oui, bon, ça pourrait être plus joli, mais ça aurait aussi pu être jaune). Ah, et la personne qui a pris est indiquée par des têtes de mort, aussi, je vous l'ai dit ?
Voilà, et pour finir, quelques screenshots.
Liens
- Page github du projet : https://github.com/lady-segfault/tnt
- Tarball : https://github.com/downloads/lady-segfault/tnt/tnt-0.2.tar.bz2
- Cardpics : http://nongnu.org/cardpics/cardpics.fr.html
# Chez moi ça marche
Posté par rewind (Mastodon) . Évalué à 9. Dernière modification le 15 juillet 2012 à 10:22.
Chez moi (Debian) ça marche. J'ai installé les bons paquets (libgtk-3-dev et libgee-dev) et tout a compilé (avec des warnings mais ça fonctionne quand même).
Le jeu tourne bien. Quelques remarques :
Je te conseille d'aller voir l'interface de PokerTH pour t'inspirer. C'est en Qt mais ça peut t'aider à voir comment faire certain trucs (notamment pour le jeu contre les IA).
[^] # Re: Chez moi ça marche
Posté par portninwak_ . Évalué à 4.
Je ne peux pas te laisser dire ça ! Bon, le site de la fédé est pas super pour avoir un lien direct, mais les règles sont dispos quelque part par là : http://www.fftarot.fr/.
[^] # Re: Chez moi ça marche
Posté par BAud (site web personnel) . Évalué à 5. Dernière modification le 15 juillet 2012 à 14:28.
Pour les scores, je suis plus habitué à la présentation en tableau ;-) (avec les scores précédents), comme sur une feuille quoi.
J'ai l'impression que le petit mené au bout n'est pas compté (ce n'est pas relevé en tout cas), ah oui tu l'indiquais dans ton journal…
Indiquer la hauteur du contrat à réaliser en fonction de ce qui avait été pris aiderait aussi à avoir une meilleure lisibilité des scores (outre un rappel des règles de comptage quelque part) ;-)
Que l'IA lance des atouts de partout, ça ne me choque pas outre mesure, c'est la chasse au petit :-) (et j'ai eu des fois où il ne le faisait pas, me reste à déterminer si c'est parce que celui qui relance a le petit :D).
En tout cas, bravo pour ce jeu ; je me suis fait enfoncer à la 1ère partie, mais là je suis remonté, l'IA a l'air décente tout de même (même si j'ai un joueur qui a balancé son petit alors qu'il lui restait des atouts o_O).
[^] # Re: Chez moi ça marche
Posté par Lizzie Crowdagger (site web personnel) . Évalué à 1.
Pour les scores, je trouve aussi que la présentation en tableau est pas mal… C'est juste que je connais pas super bien Gtk+ et que du coup je préférais avoir déjà un truc qui marchait à peu près avant d'aller chercher quel widget était le plus adapté, mais c'est plus ou moins prévu :)
Pour l'IA, c'est cool qu'elle donne cette impression, parce qu'en fait elle est plus basique que ça (y'a rien de prévu pour chasser le petit, en fait, par exemple /o\ c'est juste que comme à un moment y'a un tri par couleur, si elle commence à jouer atout elle a des chances de continuer après)
[^] # Re: Chez moi ça marche
Posté par BAud (site web personnel) . Évalué à 2. Dernière modification le 15 juillet 2012 à 23:35.
Ne pas tout changer tout de suite pour l'IA hormis les bugs, elle me convient pour l'instant :-)
Par exemple, l'excuse au dernier tour, c'est un peu abuser :-)
Sinon : l'indication qu'un autre joueur a fait une annonce n'apparaît qu'après qu'on a choisi de passer ou de faire une "garde" (par exemple), il y a bien une petite indication vu que la "petite" est grisée, mais ça ne se voit pas toujours (bon, on a confirmation quand la fenêtre apparaît).
Sinon, je ne vois pas toujours qui a lancé le premier ou à qui c'est de lancer (bon je m'en aperçois quand rien n'apparaît, mais c'est un peu déroutant).
Pas de bug critique en tout cas, c'est bien sympathique.
[^] # Re: Chez moi ça marche
Posté par Lizzie Crowdagger (site web personnel) . Évalué à 2.
Merci pour les remarques concernant l'interface (notamment l'ordre des couleurs, c'est un truc tout bête auquel j'avais pas pensé) :) Pour l'IA, j'ai peur que ça demande un peu plus de boulot, mais effectivement faudra que je me penche dessus plus sérieusement à un moment donné…
[^] # Re: Chez moi ça marche
Posté par Nicolas Boulay (site web personnel) . Évalué à 4.
Cela serait top de pouvoir faire sa propre IA, cela a été le but de maitretarot.
Dans un concours d'IA, le système utilisait simplement stdin stdout pour dialoguer avec chaque programme d'ia. Cela permet de faire des IA plus ou moins complexe.
"La première sécurité est la liberté"
[^] # Re: Chez moi ça marche
Posté par a_jr . Évalué à 2.
Plus precisement, dans maitretarot, il y avait un serveur et 4 clients (on fait que des parties a 4).
Chaque client peut etre au choix une interface graphique qui transmet les ordres de l'utilisateur au serveur, ou une IA.
Ca permet de faire des parties a distance (comme avec les jeux en ligne).
Ca permet de faire des parties avec des IA (1 joueur contre 3 IA, ou 2 contre 2…)
Ca permet aussi aux programmeurs en IA de faire des matchs d'IA, en connectant des IA differentes au serveur.
Le serveur, quant a lui, c'est un peu le maitre du jeu. Il connait les cartes des joueurs et peut ainsi verifier si y'en a qui trichent. Et a la fin de la partie, c'est lui qui compte les points, tient les scores…
Et voila, une bonne idee, des gens motives, et tout d'un coup, un manque de temps pour terminer le projet. Je suis content que cardpics, qui avait volontairement ete separe de maitretarot, reprenne une nouvelle vie avec TnT.
Le bonjour chez vous…
# Un petit retour
Posté par kpet . Évalué à 4. Dernière modification le 15 juillet 2012 à 11:36.
De mon côté, je suis parti sur les sources git et les choses ne se passent pas pour le mieux :
./autogen.sh
se plaint de ne pas trouver./README
, un petittouch README
et ça passe/usr/share/games/cardpics/images/XX.png
chez moi) pour ne pas les installer en doublestrace
pour comprendre ce qui se passaitSinon, bravo un bon jeu de Tarot libre, ça manque vraiment !
Bonne continuation !
[^] # Re: Un petit retour
Posté par Lizzie Crowdagger (site web personnel) . Évalué à 2.
«./autogen.sh se plaint de ne pas trouver ./README, un petit touch README et ça passe»
Ah oui, effectivement, j'en avais fait un README.md pour Github, et j'ai pensé à le copier pour générer le tarball mais pas à l'uploader. Là normalement c'est corrigé :)
Pour le message d'erreur, je le ferai quand j'aurai plus de temps (ou moins la flemme /o\).
# No package 'gee-1.0' found
Posté par pamputt . Évalué à 2. Dernière modification le 15 juillet 2012 à 12:09.
Bonjour, je ne suis pas très à l'aise avec les compilations. Du coup je tombe sur une erreur au configure que je ne sais pas résoudre. La voici
> checking for gcc option to accept ISO C99… -std=gnu99
> checking for gcc -std=gnu99 option to accept ISO Standard C… (cached) -std=gnu99
> checking for valac… /usr/bin/valac
> checking /usr/bin/valac is at least version 0.12.0… yes
> checking for pkg-config… /usr/bin/pkg-config
> checking pkg-config is at least version 0.9.0… yes
> checking for TNT… no
> configure: error: Package requirements (gtk+-3.0 >= 3.2.0 gee-1.0 >= 0.6.0 glib-2.0 >= 2.30.0) were not met:
>
> No package 'gee-1.0' found
>
> Consider adjusting the PKG_CONFIG_PATH environment variable if you
> installed software in a non-standard prefix.
>
> Alternatively, you may set the environment variables TNT_CFLAGS
> and TNT_LIBS to avoid the need to call pkg-config.
> See the pkg-config man page for more details.
Pourtant j'ai bien installé le paquet libgee-devel qui est en version 0.8 (j'ai les bibliothèques /usr/lib64/libgee-0.8.so.0.0.0) Bref quelqu'un pourrait m'aider à corriger ce soucis ? Pour info, j'utilise Mageia 2 64-bits.
[^] # Re: No package 'gee-1.0' found
Posté par BAud (site web personnel) . Évalué à 3.
tu peux installer
libgee2 et libgee0.6-devel
qui correspondent à libgee0.6-0.6.4-1.mga2.src.rpmet aussi en parallèle avoir
libgee0.8_0 + libgee-devel
qui correspondent à libgee-0.7.2-1.mga2.src.rpm (oui le nommage me paraît un peu bizarre aussi)le tout en rajoutant gtk+3 et vala :
urpmi vala libgtk+3.0-devel libgee2 libgee0.6-devel libgee0.8_0 libgee-devel
[^] # Re: No package 'gee-1.0' found
Posté par pamputt . Évalué à 2.
Merci il me manquait en effet libgee0.6-devel. Comme tu l'as dit, les noms sont un peu étranges.
# Un retour sur le Vala ?
Posté par MichaelMure (site web personnel) . Évalué à 1.
Bien ? Pas bien ? Des difficultés particulières ?
[^] # Re: Un retour sur le Vala ?
Posté par Lizzie Crowdagger (site web personnel) . Évalué à 3.
Pour l'instant j'aime bien, ça offre à peu près les avantages du C (même si en l'occurrence je pense pas vraiment que les performances soient cruciales) sans avoir autant à se galérer (un code Gtk+ en Vala me semble plus lisible qu'en C, et plus facile à écrire d'ailleurs). En termes de langage objet je suis pas experte et je saurais pas comparer avec Java ou C# par exemple (il me semble que c'est assez semblable dans l'esprit) mais je trouve ça plus accessible et «propre» que le C++.
Au niveau des difficultés, je dirais que ça manque des fois un peu de documentation, notamment pour les bindings (c'est plus facile de trouver des exemples sur une fonctionnalité précis de Gtk en C, voire en Python, qu'en Vala, du coup faut un peu essayer de deviner le nom des classes/méthodes correspondantes, même si en général c'est assez direct). Par ailleurs j'ai pas dû assez chercher la bonne option de compilation (je sais qu'elle existe), mais là tel que c'est configuré chez moi, gdb me donne la ligne du fichier .c généré et pas du source vala, ce qui rend le débuggage un peu pénible.
# Beau travail
Posté par devnewton 🍺 (site web personnel) . Évalué à 4.
N'hésites pas à ajouter ton jeu à la liste: https://linuxfr.org/wiki/jeux_libres_linuxfr
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.