Bonsoir,
Blobyrinthe est un petit jeu que j´ai fait rapidement cette semaine (commencé mercredi), et qui contrairement à un certain clostrolaby ne vous donnera pas envie de vomir ça c´est sûr
Scénario du jeu (que vous pouvez zapper si vous n´avez pas envie de lire tout un tas d´imbécilités
):
Il était une fois dans le monde merveilleux de Bizouland un magicien qui souffrait de blobophobie, la peur panique des blobs. Celà ne l´handicapait pas vraiment enfermé qu´il était tout le temps dans sa tour à potasser des grimoires, jusqu´au jour où, trouvant dans un de ses livres une référence à un artefact mystérieux caché dans une ruine perdue, il sorti de chez lui à la recherche de cet objet de grand pouvoir.
Traversant à pied une prairie quelconque, notre héro vit soudain surgir de nulle part une immonde horde blobesque bien décidée à lui faire passer un mauvais quart d´heure ! Paniqué, il tenta de saisir dans son sac un de ses parchemins de téléportation dans l´idée de se retrouver instantanément à l´abri chez lui, ces parchemins ayant la particularité de ne pouvoir vous envoyer que dans des lieux qui vous sont familiers. Hélas, ses mains tremblantes le trahirent et il ne réussit qu´à faire tomber ses parchemins par terre.
Terrifié, il vit les monstres horribles s´arrêter à quelque distance. Du groupe émergea un blob différent de tout les autres, et tandis qu´il commenca à approcher le magicien comprit que le chef - le plus fort, le plus dangeureux, le plus sauvage - venait en personne s´occuper de lui... Notre héro eut à peine conscience d´agiter vaguement les mains en lancant le premier sort qui lui passa par la tête avant de s´évanouir.
A son réveil où il fut bien étonné d´être encore vivant, il constata que les blobs et leur chef avaient disparu. Les parchemins aussi, mais c´était un détail comparé au fait qu´il venait de battre courageusement des forces maléfiques pareilles ! Sifflotant gaiement, et oubliant de se demander quel sortilège il pouvait bien avoir lancé, il reprit son chemin vers les ruines perdues.
Vous incarnez Bloby, un blob bleu mâle dont le passe-temps préféré est de draguer des blobettes roses. Vous étiez en train de vous consacrer à votre loisir préféré au bord d´un sentier quand un voyageur approchant, vous avez fait ce que font tout les blobs : aller faire les yeux doux pour obtenir à manger parce que vous êtes mignon. Seulement cet homme là n´a pas réagi comme les autres, il a fait un grand bond en arrière, est devenu totalement blanc, a fait tomber plein de trucs par terre avec des gestes maladroits. Manifestement, il n´était pas heureux de vous voir. Tandis que toutes les blobettes sont restées en arrière, troublées par ce comportement étrange, vous vous êtes approché pour voir si les drôles d´objets n´étaient pas avec un peu de chance de la nourriture (et aussi pour faire le blob courageux devant les blobettes) quand soudain le voyageur a fait quelque chose de bizarre qui vous a envoyé ailleurs.
Vous vous trouvez maintenant dans un labyrinthe inextricable, qui ressemble vaguement à votre prairie pleine de fleurs mais qui en même temps ne l´est pas. Les blobettes ont été emportées avec vous et se lamentent parce qu´elles ne trouvent pas d´issue. Les étranges objets vous ont suivis eux aussi, et vous seul avez compris à quoi ils servent, qu´ils sont peut être le seul moyen de sortir d´ici.
Le gros pavé du dessus c´était juste pour dire que vous êtes le blob bleu, et que le but du jeu est de récolter en vous balladant dans un labyrinthe 2d les parchemins de téléportation qui vous permettrons de faire sortir toutes les blobettes roses du niveau (et puis vous aussi mais en dernier). A chaque partie le labyrinthe est généré aléatoirement, selon des principes que j´ai trouvé sur cette page mercredi dernier et que j´ai voulu exploiter dans un jeu:
http://ilay.org/yann/articles/maze/
Il y a 3 tailles différentes de labyrinthe, à chaque partie vous êtes chronométré et les meilleurs temps sont sauvegardés.
Puisque les labyrinthes sont plus grands que l´écran c´est le premier jeu que je sors publiquement qui contient une innovation technique révolutionnaire, le scrolling horizontal et vertical, trop fort
Et puisque c´est la galère pour installer pysonic sous linux je me suis repenché sur le problème des crachotements que me faisait pygame sous windows : en fait c´était résolvable par une ligne de code toute bête et maintenant je gère aussi le son avec pygame (une librairie en moins à installer).
Screenshots en zoom*2:
Les labys ont cette tête là:
http://perso.orange.fr/pyxsoftware/images/blobyrinthe_01.png
Quand on prend un parchemin il y a une animation à la zelda avec l´objet qui s´élève au dessus de la tête (quand on sauve un blob il y a une animation de téléportation aussi):
http://perso.orange.fr/pyxsoftware/images/blobyrinthe_02.png
Menus :
http://perso.orange.fr/pyxsoftware/images/blobyrinthe_03.png
Téléchargement du jeu:
Version windows (quelqu´un sous vista pourrait confirmer que ça marche ?) :
http://perso.orange.fr/pyxsoftware/fichiers/blobyrinthe_v_1_0_windows.zip
Version source windows et linux, nécessite python et pygame :
http://perso.orange.fr/pyxsoftware/fichiers/blobyrinthe_v_1_0_source.zip
Comme d´habitude tout commentaire est le bienvenu.
Tres sympa
Une question technique : comment generes tu les labyrinthes ? Est ce que c´est toi qui les a dessiné, ou est ce que tu as fait un algo qui les construit au hasard ?
J´adore les labyrinthes, j´ai personnellement fait un générateur de labyrinthe "plan" capable de générere des labys immenses (et toujours possibles !)
Et c´est également sur un générateur aléatoire de labys, cette fois 3D que j´ai basé mon projet Klostro laby qui donne envie de vomir a tout le monde
(voir ma carte)
Merci des commentaires
Pour les graphismes et les musiques j´avais oublié de rendre à César ce qui est à César : les graphismes sont essentiellement des ressources rpg maker, et les musiques sont tirées de Gal Pani X, un freeware japonais (non non, malgré la dernière lettre c´est pas un truc pour adulte
). Ma démarche ça a été essentiellement de me dire "tel genre de graphisme coloré et mignon ça va bien aller avec telle musique".
Une question technique : comment generes tu les labyrinthes ? Est ce que c´est toi qui les a dessiné, ou est ce que tu as fait un algo qui les construit au hasard ?< <<
Ils sont à chaque fois construits au hasard, j´ai repris la 2e méthode de la page que j´ai donné plus haut (la 1ère marchait aussi mais était bien plus lente dès que je commencais à augmenter les dimensions du labyrinthe). En gros la démarche c´est ça:
- pour un labyrinthe par exemple de 10*10 je crée un tableau 2d 10*10 avec toutes les cases à zéro, chaque case représente un espace qui est séparé des autres par 4 murs;
- je passe la première case en haut à gauche à 1;
- je fais la liste des cases voisines à zéro, j´en tire une au pif, je passe sa valeur à 1 et j´ouvre le chemin entre celle çi et la dernière, en même temps j´empile dans une liste l´historique des cases visitées à chaque déplacement;
- je fais des boucles sur le point précédent jusqu´à ce que en arrivant dans une situation de cul de sac toutes les cases voisines sont à 1: à ce moment là je revient en arrière dans l´historique jusqu´à la première case avec des voisines de libres, et je reprends les boucles de cette position, ça a pour effet de créer un embranchement;
- quand l´historique revient à la case de départ c´est que toute la surface du labyrinthe a été faite.
Théoriquement ça peut faire aussi des labys immenses et toujours possibles, mais j´ai pas encore vraiment essayé de tester ce que ça donne avec des gros chiffres (surtout que mon pc tout pourri faut parfois pas trop lui en demander). Et puis quand je vois que mon record pour un laby 20*20 c´est 3 minutes 45 j´ai pas trop envie de savoir combien de temps il faudrait mettre pour sortir d´un laby 1000*1000 ![]()
Tres sympa, les graphismes collent a la musique.
Notons aussi une bonne jouabilité.
Encore du bon boulot effectué ici, bravo ![]()
Je te souhaite une bonne continuation ![]()
Merci bien
Je me suis amusé un peu à pousser les chiffres pour voir ce que ça donne, en sachant qu´il y a deux phases dans le programme pour créer un laby:
- d´abord la création des données genre tableau pour savoir par exemple où se trouvent les murs;
- ensuite la création de l´image dont une partie seulement sera affichée à l´écran selon l´endroit où on se trouve.
Les chronos sont faits sur un vieux 500 Mhz sous Linux (la flemme de rebooter sous windows pour vérifier que ce soit plus rapide, mais ce serait probable puisque windows est plus léger).
En 20*20 (mode difficile) la création des données et de l´image est instantanée. Un laby 20*20 en entier c´est ça:
http://img19.imageshack.us/my.php?image=laby2020lw8.png
En 100*100 ça met 1.2s pour les données et 2.6s pour créer l´image. Avec un zoom super réduit ça donne ça:
http://img516.imageshack.us/my.php?image=laby100100tp7.png . Il y a environ 500 blobs et autant de parchemins à récupérer.
En 200*200 5s pour les données, et ça saute bizarrement à 30s mini pour l´image (je fais pas de screen mais en gros ça fait 4 fois le laby du dessus). Nombre de blobs et de parchemins: environ 2000 de chaque.
En 500*500 j´ai viré la création de l´image sinon j´ai pas fini d´attendre, la création des données prend 37s.
En 1000*1000 ça plante
Et puisque je suis gentil voici un autre jeu gratuit: imprimez le laby 100*100, faites une croix en haut à gauche, et essayez de descendre tout en bas à droite sans couper à travers un mur, ça va vous occuper un moment ![]()
Tres sympa ce petit jeu.
Tu as un compilateur qui te transforme du python en exe ?
Est ce que ca te permets de debugger aussi ?
J´ai fait un niveau, c´est trés bien realisé.
J´ai jetté un oeil au code. Ca a l´air assez clair. Par contre il y a aucun commentaire, pas bien.
J´ai testé aussi mais j´ai rien dit (honte à moi lol) et c´est très bien réalisé, je reconnais bien la le Xaar qui m´a déjà (un peu) surpris avec Linkle ;)
Sinon pour répondre à Lapintade, c´est possible de ´transformer´ un .py en .exe (c´est pas réellement une compilation mais c´est fonctionnelle, je pense que Xaar connais ´py2exe´).
Si ton autre question est "est-il possible de debugger ton code python?" je te répond oui avec ´winpdb´ mais je ne l´ai pas réellement utilisé pour le moment, donc je ne peut pas te dire que ce debuggueur est fiable...
"(c´est pas réellement une compilation mais c´est fonctionnelle, je pense que Xaar connais ´py2exe´). "
-> Il a même fait un tuto dessus.
Sinon, Pypy avance...
Pour faire ma mauvaise langue, je dirais que le code de Xaar souffre toujours des défauts qu´il connaît bien lui même :D
Merci des commentaires ²
Tu as un compilateur qui te transforme du python en exe ?
Est ce que ca te permets de debugger aussi ?< <<
Comme l´a dit Bakaaa j´utilise py2exe une fois le programme terminé, ce n´est pas un vrai compilateur mais un script qui transforme le code en un éxécutable qui ne sera fonctionnel que grace aux autres fichiers fournis avec, entre autres la dll python. Pour le débuggage je le fais en cours de développement en lancant le programme à partir d´une console : si je laisse une erreur de syntaxe la console me le dit, s´il y a une erreur le programme entier ou la fonction concernée s´arrete et l´erreur s´affiche dans la console. Quand je donne un fichier à télécharger c´est qu´aucune erreur n´est censée se produire (normalement).
Par contre il y a aucun commentaire, pas bien.<<<
Cà c´est vrai que cà reste un de mes points faibles, pour moi c´est parlant mais pas forcément pour le gars qui le télécharge...
Pour faire ma mauvaise langue, je dirais que le code de Xaar souffre toujours des défauts qu´il connaît bien lui même :D<<<
J´aimerais bien que le dieu des classes et de la poo me visite un de ces jours pour me donner l´illumination divine, mais j´ai l´impression que moi et mes 50.000 fonctions dans le même fichier on peut attendre encore longtemps ![]()
Adepte du "tant que ça marche", hein :-° ?
Tout à fait, c´est un peu comme les sites web, c´est bien beau de vouloir faire du xhtml 4.2.3 strict/css 3.2.5 de la dernière norme du w3c du 3 février 2007 paragaphe 2b alinéa 4 mais si c´est pour que ça ne s´affiche correctement que dans un navigateur et demi au bout d´une semaine de travail/potassage de tutos je préfère utiliser des tableaux à la place si je suis sûr que le résultat fonctionnera partout en moins de 5 minutes. Mais bon, c´est pas forcément une bonne façon de penser non plus ![]()