Bonjour à tous.
Aujourd'hui, je viens vous présenter mon premier jeu libre: OpenAlchemist. Il s'agit du clone d'un jeu flash disponible sur le site Natural Chimie [1]. Le principe est simple : des pièces de différentes couleurs vous sont proposées à la manière d'un tetris. A vous de les faire tomber de façon intelligente sachant que 3 pièces d'une même couleur, quand elles se touchent, se transforment en une pièce du niveau supérieur. C'est le principe de l'alchimie.
Voici le site officiel du jeu:
http://openalchemist.sourceforge.net/index.html
et ici des screenshots sur le site jeuxlibres.net:
http://jeuxlibres.net/showgame/open_alchemist.html
OpenAlchemist est développé activement depuis 3 mois, bien que les travaux aient commencé il y a un an. Ce programme s'appuie sur le framework Clanlib que je trouve excellent : il permet l'affichage avec SDL ou OpenGL (au choix), gère le son, propose des commandes portables ou l'excellent système de Ressources qui permet de séparer le code et les ressources (sprites, sons, fontes, variables stockants l'emplacement des sprites, etc...), un peu à la manière de xHTML/CSS. Le programme est ainsi complètement skinnable, bien que cette fonctionnalité ne soit pas encore documentée.
Le programme compile très bien avec Ubuntu Dapper Drake et son GCC 4.0.3. Pour le moment, un simple Makefile s'appuyant sur pkg-config est disponible. J'envisage d'utiliser Scons par la suite, mais je ne parviens pas encore à faire précisément ce que je veux. Il est nécéssaire d'avoir Clanlib 0.8 [2].
Nous cherchons donc à obtenir des remarques, conseils, suggestions pour améliorer le bouzin. Un contributeur de site ubuntu-fr s'est proposé pour faire des paquets ubuntu (peut-être aussi debian) et l'ancienne version est déjà disponible sur son dépôt [3]. Je suppose qu'il est actuellement en vacances car je n'ai pas de nouvelles de sa part et donc il n'y a pas de paquet pour la dernière version (0.2). Nous cherchons également des mainteneurs pour les autres distributions. Si le coeur vous en dit...
Quand le jeu est compilé, sachez que l'options --sdl utilise SDL pour le rendu, et l'option --opengl utilise donc OpenGL. SDL est utilisé par défaut.
Bonne soirée (moi, je la passe loin du PC, donc je ne reposterai pas avant samedi).
Keph
Notes:
[1] : Natural Chimie: http://www.naturalchimie.com/
[2] : Clanlib 0.8 : http://www.clanlib.org/
[3] : Dépôt ubuntu : http://mrpouit.free.fr/blog/2006/07/09/25-openalchemist
# Adicted !
Posté par Twidi (site web personnel) . Évalué à 2.
Bon j'ai pas encore vu plus loin que l'oeil, mais ça va :)
(par contre le "best scores" ne se met jamais à jour ? le nombre sous la barre verticale varie entre 36 et 37, il change je ne sais pas pourquoi, mais mon dernier score de 414 (pas beaucoup j'imagine) n'est inscrit nul part après la fin de la partie)
[^] # Re: Adicted !
Posté par Twidi (site web personnel) . Évalué à 1.
[^] # Re: Adicted !
Posté par Keph (site web personnel) . Évalué à 2.
[^] # Re: Adicted !
Posté par Olivier Grisel (site web personnel) . Évalué à 1.
Felicitations à Keph et merci pour les paquets dapper :)
[^] # Re: Adicted !
Posté par Keph (site web personnel) . Évalué à 2.
[^] # Re: Adicted !
Posté par j (site web personnel) . Évalué à 3.
# ah non ah non ah non !
Posté par ploum (site web personnel, Mastodon) . Évalué à 4.
Mes livres CC By-SA : https://ploum.net/livres.html
[^] # Re: ah non ah non ah non !
Posté par ploum (site web personnel, Mastodon) . Évalué à 2.
Mes livres CC By-SA : https://ploum.net/livres.html
[^] # Re: ah non ah non ah non !
Posté par nicoprog . Évalué à 1.
[^] # Re: ah non ah non ah non !
Posté par Twidi (site web personnel) . Évalué à 1.
[^] # Re: ah non ah non ah non !
Posté par Twidi (site web personnel) . Évalué à 1.
[^] # Re: ah non ah non ah non !
Posté par guigoz . Évalué à 1.
[^] # Re: ah non ah non ah non !
Posté par Keph (site web personnel) . Évalué à 1.
[^] # Re: ah non ah non ah non !
Posté par guigoz . Évalué à 1.
Maintenant ils vont savoir que l'élément suivant est une tête de...
Peste soit mon incroyable distraction
# annuler dernier coups ?
Posté par fabien . Évalué à 3.
comment on annule le dernier coups ? j'ai lu dans le change log que la version 0.2 le permet... mais je ne sais pas comment faire.
du coups je laisse ma partie en cours sans rien toucher jusqu'a obtenir une reponse
...et je tue un chaton toutes les heures.. heu.. ha non...
[^] # Re: annuler dernier coups ? ==> F5
Posté par fabien . Évalué à 4.
key_undo = new KeyboardKey(CL_KEY_F5 , false);
C'est F5.
Merci pour ce jeu sympa
ouai ben je me suis vautré, j'en suis qu'a l'oeuil.... c'est chiant quand le systeme te ponds des rond vert alors que t'as pris soin de les eliminés...
[^] # Re: annuler dernier coups ? ==> F5
Posté par Keph (site web personnel) . Évalué à 2.
# Merci pour tout.
Posté par flg . Évalué à -1.
Respectueuses salutations.
JohnJohn. Rakovsky, comte de St Germain
# paquets debian (checkinstall)
Posté par B16F4RV4RD1N . Évalué à 4.
Debian sid ne semble pas avoir de paquet clanlib au delà de 0.6.5.
Voici la version 0.8 pour x86 :
http://dl-1.free.fr/52616e646f6d4956ebb76c24017c556270ad70a6(...)
(cela a mis bien longtemps à compiler, attention le paquet fait dans les 21 mo)
et le paquet openalchimist pour x86 :
http://dl-3.free.fr/52616e646f6d4956359d5d93dba2c907128a7cac(...)
(dans les 2 mo)
(dispo sur free 24 h, sauf si des gens les téléchargent régulièrement je pense...)
Superbe jeu, vraiment prenant, félicitation pour votre travail !
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: paquets debian (checkinstall)
Posté par BAud (site web personnel) . Évalué à 3.
les liens directs : http://cookerspot.tuxfamily.org/progs/deb/clanlib_0.8.0-1_i3(...) [20 Mo]
http://cookerspot.tuxfamily.org/progs/deb/openalchemist-0.2_(...) [2,4 Mo]
si personne ne confirme que ça va plus vite, je les enlève dans une semaine ;-)
[^] # Re: paquets debian (checkinstall)
Posté par B16F4RV4RD1N . Évalué à 5.
En fait je crois que pour les abonnés de free, c'est plus rapide : "Une limitation de bande passante est appliquée pour tout abonné d'un autre opérateur que Free car ce service est reservé en priorité aux abonnés de Free."
en temps normal je n'aurais pas fait les paquets car cela compile bien, le seul truc c'est que clanlib 8 n'est pas dans les dépôts actuels comme j'ai dit, et chez moi cela a mis plus d'une heure à compiler le tout. Il faudrait sans doute faire un paquet uniquement pour le développement clanlib, un autre pour le runtime etc (comme a fait la personne pour les paquets Ubuntu), mais je ne m'y connais pas assez pour faire cela.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: paquets debian (checkinstall)
Posté par Keph (site web personnel) . Évalué à 2.
[^] # Re: paquets debian (checkinstall)
Posté par B16F4RV4RD1N . Évalué à 2.
Par contre attention, j'ai parlé de checkinstall mais je ne sais pas si tout le monde sait ce que c'est : lors de la compilation au lieu de faire "make install" et de tout installer sans avoir une trace de ce qui a été fait, cela permet d'obtenir un paquet qui s'installe comme un autre et de le retrouver dans les gestionnaires de paquets (on peut également désintaller un programme via la commande make uninstall, mais cela oblige à garder la source, et on ne sait pas exactement la place que cela prend etc).
Donc ce paquet rapidement généré est pratique pour éviter de passer du temps à compiler les dépendances etc, mais c'est un pis-aller et pas aussi bien qu'un vrai paquet Debian (en plus rien n'est séparé, et on a l'environnement de développement de clanlib complet). Je ne sais pas si on peut ajouter un dépôt ubuntu dans une source debian, s'il n'y a pas de risque particulier à cela.
Quelqu'un m'a proposé de maintenir ce paquet, pourquoi pas cela peut être intéressant, seulement clanlib dont il dépend c'est un gros truc et je ne sais pas si je saurais le faire, il faudrait voir ce qu'il en est du statut officiel de ce paquet, puisqu'il a déjà un mainteneur : http://packages.qa.debian.org/c/clanlib.html
Sinon autre chose, j'ai essayé de le compiler sous macosx, déjà je pense que pour avoir une application standard sans passer par x11 il faudrait retravailler le code ce que je ne sais pas faire, ensuite j'ai compilé clanlib, et j'ai dû bidouiller un peu pour faire accepter le pkg-config de ton makefile. Cela a pu tout compiler, mais au moment de lier j'ai cela :
les bibliothèques ont été compilées avec les outils de dev de macosx, et je les aies placées dans /usr/include/ClanLib-0.8, dans /usr/lib (où résident les autres bibliothèques), ai incorporé au PATH ce dossier, ai copié les clanApp et autres (équivalent de libclanApp.so sous linux) dans le dossier de compilation, mais rien n'y fait, cela ne veut toujours pas les lier. Est-ce que qqu'un aurait une piste ?
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: paquets debian (checkinstall)
Posté par Keph (site web personnel) . Évalué à 1.
Actuellement c'est ici, mais je n'ai pas mis d'explication. Je ne sais pas si je dois le laisser dans l'état actuel. Qu'en penses-tu ?
Pour la compilation, je ne vois pas. Si tu essaies de compiler sans pkg-config et en ajoutant à la main les libs à linker, ca donne quoi ?
[^] # Re: paquets debian (checkinstall)
Posté par B16F4RV4RD1N . Évalué à 2.
Pour macosx, je n'avais pas pu me passer de pkg-config, en fait le clanlib est prévu pour fonctionner avec xcode (environnement de dev pour mac) et produits tous les fichiers dans des Clan*.framework à placer dans un dossier particulier. Mais j'ai réussi à lier (presque) en tapant directement :
cc bin/main.o bin/game.o bin/key_events.o bin/detect_to_destroy.o bin/detect_to_fall.o bin/drawing.o bin/hightscores.o bin/pause.o bin/preferences.o bin/skins-selector.o -lobjc --libs /Library/Frameworks/ClanCore.framework/ClanCore /Library/Frameworks/ClanGL.framework/ClanGL /Library/Frameworks/ClanSDL.framework/ClanSDL /Library/Frameworks/ClanApp.framework/ClanApp /Library/Frameworks/ClanDisplay.framework/ClanDisplay /Library/Frameworks/SDL.framework/SDL /Library/Frameworks/libpng.framework/libpng /Library/Frameworks/libjpeg.framework/libjpeg /Library/Frameworks/ClanLib.framework/ClanLib -Wall -o openalchemist
malheureusement j'ai ensuite tout un paquet de :
ld: Undefined symbols:
std::basic_string<char, std::char_traits, std::allocator >::c_str() const
std::allocator::allocator[in-charge]()
std::allocator::~allocator [in-charge]()
/.../
tant pis :(
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
[^] # Re: paquets debian (checkinstall)
Posté par Keph (site web personnel) . Évalué à 1.
[^] # Re: paquets debian (checkinstall)
Posté par Keph (site web personnel) . Évalué à 1.
[^] # Re: paquets debian (checkinstall)
Posté par rzr (site web personnel) . Évalué à 1.
Si l'envis me prends je pourais y jetter un oeuil
--
http://rzr.online.fr/q/dpkg # WIP
gpg:0x467094BC
# Ca chauffe...
Posté par Maxime (site web personnel) . Évalué à 3.
Ca m'a l'air interressant mais...
Il utilisait en permanence à 60% mon CPU...
Et du coup au bout d'un moment mon ordi (portable) est monté à 60° et s'est mis à faire un bruit d'aspirateur...
A savoir que je peux jouer à des jeux comme ManiaDrive bien plus longtemps avant que ca chauffe autant...
Pour ce qui est du FPS, il m'affiche fierement 230 en moyenne... C'est pas un peu abusé pour ce genre de jeu ?
[^] # Re: Ca chauffe...
Posté par Keph (site web personnel) . Évalué à 2.
[^] # Re: Ca chauffe...
Posté par ploum (site web personnel, Mastodon) . Évalué à 3.
Mes livres CC By-SA : https://ploum.net/livres.html
[^] # Re: Ca chauffe...
Posté par Twidi (site web personnel) . Évalué à 2.
# Paquets 0.2 pour ubuntu
Posté par Keph (site web personnel) . Évalué à 1.
Voici le lien:
http://mrpouit.tuxfamily.org/dists/dapper-pouit/openalchemis(...)
Et pour saluer MrPouit le contributeur, voici un lien vers son blog:
http://mrpouit.tuxfamily.org/blog/
[^] # Re: Paquets 0.2 pour ubuntu
Posté par Twidi (site web personnel) . Évalué à 2.
Par contre le high score par défaut de 50 millions il est... réel ?
Ca ne serait pas possible de voir plutôt (ou en plus) son propre meilleur score ?
[^] # Re: Paquets 0.2 pour ubuntu
Posté par Keph (site web personnel) . Évalué à 1.
[^] # Re: Paquets 0.2 pour ubuntu
Posté par koxinga . Évalué à 2.
Sinon, comment il choisit où mettre la nouvelle pièce lorsqu'on fait une rangée de trois pièces horizontales ? C'est moi où il fait exprès de faire celui qui me fais chier ? (par exemple, il m'a gentiment fait perdre plusieurs fois de suites)
Enfin, je vous trouvais vachement forts tous, mais depuis que j'ai découvert que l'on pouvait faire tourner les pièces, cela va mieux ...
(J'ai dû supprimer les KeyboardKey::, Piece::, etc. dans les headers pour qu'il veuille bien compiler ... Après tout va bien)
[^] # Re: Paquets 0.2 pour ubuntu
Posté par Keph (site web personnel) . Évalué à 2.
Sinon, il n'y a pas de système comptabilisant les scores des différents joueurs. Je ne compte pas en faire un, car il serait selon moi facilement falsifiable (ne serait-ce que parcequ'on a accès aux sources). Toutefois on peut toujours comparer ses scores avec ses amis sur un bon vieux forum :).
Par contre je suis surpris par ta remarque sur mes headers. Oui, j'ajoute toujours le nom de la classe dans les headers (ce qui est inutile, certes), mais je ne pensais pas que cela était interdit. Est-ce une limitation de ton compilateur ou bien une norme que je ne respecterais pas ?
[^] # Re: Paquets 0.2 pour ubuntu
Posté par koxinga . Évalué à 2.
Cela a l'air d'être une modification récente de gcc, qui devient plus strict depuis la version 4 : voir par exemple cette page : http://womble.decadentplace.org.uk/c++/syntax-errors.html au paragraphe "Extra qualification of members". Ceci dit, je suis surpris d'être le seul à avoir le problème.
Quand au placement délibérément gênant des éléments qui apparaissent, ma question devient alors une feature request, pour le futur niveau de difficulté "vicelard" :D
[^] # Re: Paquets 0.2 pour ubuntu
Posté par Keph (site web personnel) . Évalué à 1.
[^] # Re: Paquets 0.2 pour ubuntu
Posté par Keph (site web personnel) . Évalué à 1.
[^] # Re: Paquets 0.2 pour ubuntu
Posté par Keph (site web personnel) . Évalué à 2.
[^] # Re: Paquets 0.2 pour ubuntu
Posté par Twidi (site web personnel) . Évalué à 1.
# Et les daltos, ils jouent pas !!!!
Posté par didouye . Évalué à 5.
Il sufirait pourtant de différencier les boules autrement que par une couleur. Comme une lettre ou un dessin au centre (pas le même dessin avec des couleurs différentes bien sur :-) ).
Si c'était possible pour les futur version, je pense que le projet ne ferait plus fuir les gars malchanceux des yeux.
[^] # Re: Et les daltos, ils jouent pas !!!!
Posté par guigoz . Évalué à 3.
Je suis le graphiste du jeu. :)
Ton problème a déjà été soulevé, et je vais faire en sorte qu'il y'ai, à terme, au moins un thème qui convienne aux daltonniens (et peut-être à d'autres types de déficiences, si le besoin s'en fait ressentir). Seulement voilà, un thème c'est long à faire (voir très long -_-), et je pense que tu pourras comprendre que ce n'est pas necessairement ma priorité de faire un thème adapté à une minorité de joueurs. Ne vas pas croire que je néglige ou ignore le problème, mais il va te falloir un peu de patience, désolé :/
[^] # Re: Et les daltos, ils jouent pas !!!!
Posté par Keph (site web personnel) . Évalué à 3.
Quoiqu'il soit, je prend note de cette remarque et vous promet cette option pour la prochaine version !
[^] # Re: Et les daltos, ils jouent pas !!!!
Posté par Keph (site web personnel) . Évalué à 1.
Mais en attendant, tu peux t'amuser à modifier toi même les sprites (dans le dossier skins/aqua) en marquant les 3 premières pièces d'un signe distinctif. Il te suffira ensuite de zipper le dossier (ou de lancer la commande make) et tu pourras profiter du jeu comme tout le monde :).
[^] # Re: Et les daltos, ils jouent pas !!!!
Posté par didouye . Évalué à 2.
# Gentoo
Posté par Guillaum (site web personnel) . Évalué à 2.
Attention, c'est mes premiers ebuilds pour des softs compilés donc ils sont forcement mal fait, mais marchent relativement, j'ameliorerais sous peu.
Clanlib-0.8: installé avec toute les dépendances de la 7.0 et sans tenir compte des uses.
OpenAlchemist: un gros hack pour permettre la compil avec GCC-4.1, si Keph pouvais en tenir compte.
sed s/KeyboardKey::// includes/KeyboardKey.h > includes/KeyboardKey.h2
sed s/Piece::// includes/piece.h > includes/piece.h2
sed s/Game::// includes/game.h > includes/game.h2
mv includes/KeyboardKey.h2 includes/KeyboardKey.h
mv includes/game.h2 includes/game.h
mv includes/piece.h2 includes/piece.h
PS: les ebuilds pour les modules python sont plus simples :)
[^] # Re: Gentoo
Posté par Keph (site web personnel) . Évalué à 1.
Et merci pour ces ebuilds !
# Pour les laptops
Posté par Maxime (site web personnel) . Évalué à 4.
Il vous suffit de reperer cette boucle : void Game::main_loop() dans game.cpp
Vous y rajoutez dans le while(!end) un petit : CL_System::sleep(30);
Le 30 est à ajuster selon votre ordi, moi j'ai mis 30, ca me permet de jouer correctement et avec une utilisation CPU vraiment raisonnable...
Bon, là c'est qu'une solution de dépannage... Je n'ai jamais utilisé clanlib de ma vie, j'ai juste vu dans la doc CL_System::sleep() alors j'ai testé...
D'ailleur, qu'est-ce qu'elle a de bien cette lib ? la doc est minable (meme pas de description pour les fonctions, juste un listing... Et vu les déboirs de wormux...
[^] # Re: Pour les laptops
Posté par Keph (site web personnel) . Évalué à 1.
La doc ne me semble pas si mauvaise que ca.
Je n'ai pas eu de déboires avec cette lib, elle me fait plutôt gagner du temps. Il y a tout un tas de choses que je n'ai pas à coder : la gestion des fontes, des sprites, du XML, des sons, des zip et j'en passe. Ca me convient.
Quant au sleep(), je compte m'y ateler bientôt. Le problème c'est que je ne sais pas encore dans quelle mesure il faut ralentir le programme. Tu as choisi 30ms, mais ce n'est peut-être pas le choix optimal.
[^] # Re: Pour les laptops
Posté par Maxime (site web personnel) . Évalué à 2.
En plus je suis occupé à coder sur un autre projet donc bon...
Bonne continuation.
PS: pour la doc, meme l'API Gtk est mieux documentée...
[^] # Re: Pour les laptops
Posté par Maxime (site web personnel) . Évalué à 3.
au lieu du sleep il suffit de mettre :
fps_getter.set_fps_limit(30);
[^] # Re: Pour les laptops
Posté par Keph (site web personnel) . Évalué à 1.
Je ne sais pas vraiment comment configurer tout ca. Je pense à mettre des options -maxfps=30 ou -minperf, quelque-chose dans ce genre là...
[^] # Re: Pour les laptops
Posté par Maxime (site web personnel) . Évalué à 3.
Là j'ai mis 30 mais c'est presque un minimum.
Je te conseil de tester sur plusieurs types d'ordis (fixe avec lcd, avec cathodique, et portable) et de puissance differentes.
Si tu as besoin que je te teste certaines fonctionnalités, n'hésite surtout pas.
Tu peux me contacter par mail ou IM (jabber) sur maxime81 chez gmail.com
[^] # Re: Pour les laptops
Posté par Keph (site web personnel) . Évalué à 1.
# Clone DrMario ?
Posté par rzr (site web personnel) . Évalué à 1.
@ http://en.wikipedia.org/wiki/Dr._Mario_series
DM Me semble bien antierieur a
http://es.wikipedia.org/wiki/Naturalquimia
--
http://rzr.online.fr/q/Game
gpg:0x467094BC
[^] # Re: Clone DrMario ?
Posté par guigoz . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.