GeneticInvasion en version 0.4.5

Posté par  (site web personnel) . Modéré par baud123. Licence CC By‑SA.
Étiquettes :
26
29
oct.
2011
Jeu

GeneticInvasion, dont j’avais déjà parlé lors d’une précédente dépêche, est un jeu de tower defense, il vient de sortir en version 0.4.5.

En plus des nombreuses nouveautés présentées plus bas, cette version propose un nouveau niveau spécial Halloween, pour être dans le coup !
Nous essayons également le système proposé par Elveos, afin de financer le développement de l’éditeur de niveau. Je vous invite donc à vous rendre sur la page donnée en lien, si vous souhaitez nous voir développer un éditeur de niveau pour GeneticInvasion.

Le journal des modifications complet est disponible dans la suite de la dépêche.

Une version compilée statiquement pour i686 et x86_64 est disponible sur la page de téléchargement, ainsi qu’une version Windows.
Les sources sont disponibles sur le Git.

Nouveautés depuis la 0.4

Améliorations graphiques :

  • les ennemis ne disparaissent plus brutalement, mais avec un joli fondu ;
  • des transitions entre les différents types de tuiles on été ajoutées ;
  • des variations de tuile sont possibles ;
  • utilisation d’une police pixelisée, plus en accord avec le style graphique.

version 0.4.1
version 0.4.5

Nouvelles fonctionnalités :

  • la pause a été ajoutée ;
  • un menu de configuration des touches est apparu ;
  • la pause de la musique a été remplacée par le muet : ainsi si on coupe le son dans le menu, on n’aura pas de son au lancement d’une partie non plus ;
  • des médailles ont été ajoutées et sont sauvées à la fermeture du jeu : essayez d’avoir l’or partout !
  • arrivé au niveau 42, le jeu se termine sur un « Game Over » et l’obtention de la médaille de platine.

Améliorations du moteur :

  • la physique tourne à 50 Hz, indépendamment des lenteurs éventuelles de l’affichage graphique ;
  • le fitness et la simulation ont été améliorées pour que l’évolution se déroule mieux ;
  • des tentatives d’équilibrage du jeu ont été faites.

C’est plus ou moins réussi, bien que platinium puisse être obtenu à tous les niveaux.
Le jeu est assez difficile pour les débutants, je crois ; la prochaine version devrait voir arriver les niveaux de difficulté.

Pas mal de corrections de bogues et d’optimisations :

Par exemple, la carte est dessinée une fois pour toute au chargement et compilée en une seule image, ainsi son affichage est bien plus rapide lors de la suite du jeu (bien que cette optimisation doive être enlevée, si l’on veut faire un décor animé à l’avenir).

Aller plus loin

  • # Musique

    Posté par  (site web personnel) . Évalué à 1.

    J'adore la musique qui a été choisie. (A mon avis conçue sur NES ou avec p.ex. FamiTracker.)

    Par contre, une petite question, la musique est sous license CC BY-SA, et le code du jeu proprement dit est sous license GPLv3. Cependant, la GPLv3 n'est pas compatible avec la CC BY-SA (http://www.gnu.org/licenses/license-list.html#ccbysa). Est-ce un problème que vous avez considéré, ou ce n'en est pas un (parce que j'ai mal compris quelque chose?)?.

    • [^] # Re: Musique

      Posté par  (site web personnel) . Évalué à 6.

      Il est dit que la CC-by-sa n'est pas adaptée pour le code, mais que c'est une bonne licence pour les œuvres artistiques, donc un bon choix pour une musique de jeu libre. Il est très fréquent de rencontrer des jeux avec le code en GPL et les assets en CC-by-sa, ca me semble une bonne combinaison et je ne vois pas ou ca poserait probleme. Je pense que des distributions comme Debian n'ont pas de problème a intégrer dans leurs repository ce genre de combinaison de licences.

      • [^] # Re: Musique

        Posté par  (site web personnel) . Évalué à 1.

        Mais je vois un problème potentiel, c'est que le jeu utilise des ressources dont la license est incompatible avec la GPL. La question que je me posais, et que tu n'as apparemment pas décelée, était : « Est-ce bien licite ? »

        • [^] # Re: Musique

          Posté par  (site web personnel) . Évalué à 4.

          Est-ce que tu peux préciser le problème? Ca pourrait potentiellement intéresser du monde.

        • [^] # Re: Musique

          Posté par  (site web personnel) . Évalué à 2.

          Dans le lien que tu donnes, ils disent de ne pas utiliser la CC-by-sa pour les logiciels à inclure dans d'autres sous GPL, mais ils ne donnent pas de contre-indications dans le mix logiciels sous GPL et musique sous CC-by-sa.

        • [^] # Re: Musique

          Posté par  (site web personnel) . Évalué à 6.

          Pourquoi ce ne serait pas licite?
          Les data et le code sont deux choses bien differentes. Tu peux avoir un code GPL avec des data sous licences propriétaires (cas actuel de Quake3). La GPL parle uniquement du cas particulier de code GPL linké avec du code pas GPL, mais aucune limitation vis a vis des data. Sinon, ca voudrait dire qu'un dessin fait avec GIMP serait obligatoirement sous GPL aussi? Ca n'aurais pas plus de sens...

          • [^] # Re: Musique

            Posté par  (site web personnel) . Évalué à 1.

            L'éventuel problème que je vois, c'est par exemple si ça avait été une CC avec la clause NC : cela rend le tout (le jeu) inutilisable pour une utilisation commerciale, ce qui contredit carrément la liberté zéro de la FSF (The freedom to run the program, for any purpose). Donc distribuer le reste du code sous GPL est futile…

            Ici, c'est une CC BY-SA, les problèmes (s'il y en a) sont plus subtils, mais c'est le même genre de question que je me pose.

            Après, IANAL et j'ai probablement rien compris. Mais je n'ai trouvé d'explications correctes nulle part.

          • [^] # Re: Musique

            Posté par  (site web personnel) . Évalué à 3.

            Les data et le code sont deux choses bien differentes

            Le français et l'anglais aussi, alors pourquoi mélanger les deux ? Les données, ça ne fait pas assez hype ?

  • # Tiled?

    Posté par  (site web personnel) . Évalué à 8.

    Pourquoi développer un éditeur de niveau? Pourquoi ne pas simplement s'interfacer avec un éditeur existant, en particulier Tiled, qui est free aussi?

    http://www.mapeditor.org/

    • [^] # Re: Tiled?

      Posté par  (site web personnel) . Évalué à 3.

      Je n'avais même pas pensé que ça pouvait exister, c'est une très bonne chose :-)
      On pensait développer un éditeur de niveau pour qu'il soit inclus dans le jeu, et qu'il se dirige avec les mêmes touches que le jeu, afin qu'un joueur puisse très facilement devenir mappeur.

  • # Contribution de 25 €

    Posté par  . Évalué à 7.

    Je n'ai pas encore testé le jeu mais je vais sur https://elveos.org/ pour voir. 100 € sont demandés pour l'éditeur de niveau. 100 € c'est ridicule comme somme, c'est plus pour le principe je suppose.
    Il y a déjà 25 € de don, je me dis que je vais également mettre 25 €.

    Ah, il faut s'inscrire...
    Je suis de bon poil alors je prends le temps de le faire. Mais franchement, s'inscrire pour simplement donner son numéro de carte bancaire, je sens déjà que c'est mal fait (une fois).
    Allons-y. J'entre un identifiant, un mot de passe, et une adresse email xxx@jetable.org.
    L'adresse email est acceptée. Je reçois l'email de validation, je clique, ça fonctionne, tout beigne.

    Ensuite je marque 25 € pour le don. En dessous je vois qu'il faut créditer le compte alors je clique sur "créditer" mais en fait non, je dois désormais un peu plus de 50 €.
    Et là, impossible de ne plus créditer le compte. Je n'ai pas trouvé comme supprimer la ligne, et on ne peut pas la mettre à zéro.
    Bon, restons zen, c'est juste mal fait (deux fois).

    Je me déconnecte, puis je me reconnecte.
    ... mon mot de passe est refusé. Il a fonctionné 3 minutes plus tôt mais là, ben non.
    C'est vraiment mal fait (trois fois).

    Heureusement qu'on peut récupérer le mot de passe avec son adresse email. Donc hop, je fait copier/coller avec xxx@jetable.org ... et c'est refusé.
    Oh punaise, que c'est mal fait (quatre fois).

    Au lieu de passer 40 secondes pour saisir un montant puis le numéro de ma carte bancaire, j'ai passé 5 minutes pour n'arriver à rien. Tchao Elveos.

    • [^] # Re: Contribution de 25 €

      Posté par  (site web personnel) . Évalué à 9.

      Merci pour ton retour d'expérience. Le site est en beta et il y a en effet des choses à améliorer.

      L'inscription est demandée car Elveos n'est pas un simple système de paiement. Contribuer donne des droits, comme le droit de vote lors de la validation, annulation de la contribution ... Sans inscription, on perd le contrôle total de son argent dès le paiement.
      Par contre, on travaille sur une procédure simplifié qui permet de contribuer sans mail d'activation.

      Ensuite, je reconnais qu'il y a un bug sur le chargement de compte, on va corriger ça assez vite. D'autre part, on cherche encore un moyen de mieux présenter la fonctionnalité "chargement de compte" pour ne pas embrouiller les utilisateurs.

      Je n'ai pas réussi à reproduire les 2 autres problèmes que tu signalez. Nous sommes en train d'investiguer la possibilité de problèmes dû aux espaces en trop sur les champs de formulaires.
      Cependant, l'étude approfondie de nos logs nous font penser qu'il pourrait y avoir une erreur de manip de ta part (faute de frappe ?).
      Si tu peux nous envoyer plus de détail, tu peux me contacter à fred@elveos.org.

      Elveos c'est du logiciel libre, et tous les retours sont intéressants.

      • [^] # Re: Contribution de 25 €

        Posté par  (site web personnel) . Évalué à 4.

        Contribuer donne des droits, comme le droit de vote lors de la validation, annulation de la contribution ...

        Est-ce qu'il y a une procédure d'arbitrage en cas de conflit? Un demandeur peu honnête pourrait utiliser le développement sans jamais le valider en prétextant que ce n'est pas assez bien...

        Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

        • [^] # Re: Contribution de 25 €

          Posté par  (site web personnel) . Évalué à 5.

          Déjà, il faut suffisamment de personnes malhonnêtes pour créer un vrai conflit : si une personne dit que ce n'est pas assez bien, mais que 5 autres ont dit que c'est bon, alors le développement sera probablement validé. S'il n'y a pas de consensus, les administrateurs peuvent arbitrer.

    • [^] # Re: Contribution de 25 €

      Posté par  (site web personnel) . Évalué à 4.

      100 € c'est ridicule comme somme, c'est plus pour le principe je suppose.

      Exactement, c'est avant tout pour tester elveos, et voir si les gens sont prêts à payer pour des fonctionnalités de jeux vidéos libres. (cela dit, on développera l'éditeur de map quand la somme sera atteinte, c'est pas parce que c'est un test que ce n'est pas réel :P )
      De plus comme ton expérience le montre elveos n'est pas encore complètement au point, donc ça limite aussi le nombre de gens qui vont prendre la peine de contribuer.

      Par contre les gens d'elveos sont très accueillants et très réactifs sur irc (quand ils y sont connectés en tous cas :P)
      Étant le premier à entrer une offre développeur sur elveos j'ai essuyé pas mal de plâtre et ils ont fixé les bugs au fur et à mesure.
      Je leur fais donc confiance pour faire en sorte que l’expérience des utilisateurs soit de plus en plus efficiente à l'avenir. (Il y ont de toutes façons autant intérêt que nous :) )

      @fred: Je pense que permettre une procédure de contribution rapide en quelques clics, même si niveau back-end ça correspond à plusieurs opérations (ouverture du compte, connexion, crédit du compte, contribution), correspond à ce que recherche une partie des contributeurs elveos, qui voient leur contributions comme un don et pas comme un contrat à suivre.

      • [^] # Re: Contribution de 25 €

        Posté par  . Évalué à 7.

        Ce n'est que mon avis, mais une plateforme qui exhibe des bugs bloquants dès la première utilisation, ça veut clairement dire que rien n'a été testé.
        Ils peuvent être aussi réactifs qu'ils veulent, j'ai zéro confiance en des personnes qui n'ont pas pris la peine de tester un projet bidon et de faire un règlement bidon.

        C'est comme si un constructeur automobile sortait un véhicule sans jamais l'avoir testé. Mais attention, le constructeur est super réactif. Au premier mort ils regarderont comment ajouter des freins.

        • [^] # Re: Contribution de 25 €

          Posté par  (site web personnel) . Évalué à 3.

          Regarde le commentaire de thomasp, qui a fait un don sans soucis.
          Évidemment que les auteurs de elveos ont testés leur soft avec des projets bidons! Mais il est toujours difficile d'imaginer correctement tous les cas d'utilisation et ils ont visiblement conçu le soft en pensant que les gens s'incrieraient, chargeraient leur compte puis donneraient. Ça peut être une erreur de conception, mais ça reste corrigeable sans soucis.

          Et n'oublie pas que la règle des 80/20 s'applique toujours en informatique : 80% du code sert à gérer 20% des cas, et inversement.

    • [^] # Re: Contribution de 25 €

      Posté par  . Évalué à 3.

      Hier j'ai fait un dons à auteur de 40€ sans soucis particulier :
      1. inscription (idem que la plateforme ulule par exemple)
      2. paiement classique par CB sur le web
      3. confirmation par email.

      C'était la première fois que j'utilisais elveos et pour moi tout est OK.

  • # Compilation statique pas statique

    Posté par  . Évalué à 5.

    Je viens de tester:

    $ chmod +x GeneticInvasion.i686
    $ ./GeneticInvasion.i686
    ./GeneticInvasion.i686: error while loading shared libraries: libopenal.so.1: cannot open shared object file: No such file or directory
    
    
    • [^] # Re: Compilation statique pas statique

      Posté par  . Évalué à 2.

      Les instructions d'installation ne sont pas très claires.
      Il faut installer OpenAL, que j'ai préféré ne pas compiler en tant que bibliothèque statique parce qu'il peut dépendre du driver de la carte son.
      Je n'ai pas de debian avec un serveur X sous la main, mais le paquet est très certainement libopenal1.

      • [^] # Re: Compilation statique pas statique

        Posté par  . Évalué à 4. Dernière modification le 30 octobre 2011 à 17:06.

        Je signalai le problème car il est indiqué que ça fonctionne en statique.

        Sur une machine Debian Sid mise à jour ce matin:

        $ uname -a
        Linux machinetruc 3.1-0slh.2-aptosid-amd64 #1 SMP PREEMPT Tue Oct 25 01:47:47 UTC 2011 x86_64 GNU/Linux
        $ dpkg -l | grep libopenal1
        ii   libopenal1   1:1.13-4   Software implementation of the OpenAL API (shared library)
        $ ./GeneticInvasion.x86_64
        bash: ./GeneticInvasion.x86_64: Aucun fichier ou dossier de ce type
        $ ./Test
        bash: ./Test: Aucun fichier ou dossier de ce type
        
        

        Note: on fait comment sur linuxfr pour une balise code sans être obligé de spécifier un langage ? Parce que la coloration syntaxique ne va pas du tout, et l'aide ne parle pas de la balise code.

        • [^] # Re: Compilation statique pas statique

          Posté par  . Évalué à 6.

          Note: on fait comment sur linuxfr pour une balise code sans être obligé de spécifier un langage ?

          On spécifie le langage "text". Ça donne:

           ```text
          Ici le texte
           ```
          
          

          (L'espace de décalage est là pour éviter que la première balise de fermeture soit interprétée)

          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: Compilation statique pas statique

          Posté par  (site web personnel) . Évalué à 1.

          Tout n'est pas statique ou dynamique. En l'occurence, il est plus judicieux de compiler en statique les bibliothèques qui ne sont pas packagées à coup sûr dans toutes les distros (par exemple, les différentes versions de la SFML ne sont jamais packagées correctement).

          Pour la libopenal, c'est assez classique, donc pas de raison de la compiler en statique. D'ailleurs, tout compiler en statique n'a parfois aucun sens (par exemple, compiler la libGL en statique est une très mauvaise idée! :P).

    • [^] # Re: Compilation statique pas statique

      Posté par  (site web personnel) . Évalué à 2.

      Seule la SFML et EO sont compilée statiquement, le reste est en dépendance.
      Faudrait que j'ajoute un README dans l'archive qui clarifie ça :-/

    • [^] # Re: Compilation statique pas statique

      Posté par  . Évalué à 4.

      Je ne suis même pas arrivé jusque là

      $ ./GeneticInvasion.x86_64 
      ./GeneticInvasion.x86_64: /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./GeneticInvasion.x86_64)
      ./GeneticInvasion.x86_64: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./GeneticInvasion.x86_64)
      
      

      Et quand je veux compiler, il ne trouve pas SFML alors qu'elle est installée (à moins qu'elle doivent être compilée avec des options particulières).

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

      • [^] # Re: Compilation statique pas statique

        Posté par  (site web personnel) . Évalué à 2.

        Il faut la version 1.6 de la SFML, et si cmake ne la trouve pas, tu peux préciser le dossier où chercher : "cmake -DSFMLDIR=/path/to/SFML/ ."

        Pour le soucis de version de la glibc, je viens de constater ça, ça doit venir de l'utilisation d'ArchLinux par les personnes qui font les builds, on doit avoir des versions plus récentes :-/
        On va essayer de corriger ça.

        • [^] # Re: Compilation statique pas statique

          Posté par  . Évalué à 2.

          Merci pour l'aide mais ça ne marche toujours pas:

          ~/Programme/genetic-invasion-build $ ls /usr/lib|grep sfml
          libcsfml-audio.so
          libcsfml-audio.so.1.6
          libcsfml-graphics.so
          libcsfml-graphics.so.1.6
          libcsfml-network.so
          libcsfml-network.so.1.6
          libcsfml-system.so
          libcsfml-system.so.1.6
          libcsfml-window.so
          libcsfml-window.so.1.6
          libsfml-audio-s.a
          libsfml-audio.so
          libsfml-audio.so.1.6
          libsfml-graphics-s.a
          libsfml-graphics.so
          libsfml-graphics.so.1.6
          libsfml-network-s.a
          libsfml-network.so
          libsfml-network.so.1.6
          libsfml-system-s.a
          libsfml-system.so
          libsfml-system.so.1.6
          libsfml-window-s.a
          libsfml-window.so
          libsfml-window.so.1.6
          
          

          ~/Programme/genetic-invasion-build $ cmake -DSFMLDIR=/usr/lib/ ../genetic-invasion-v0.4.5/
          -- SFML: Could not locate : SFML_MAIN_LIBRARY_SHARED_NONDEBUG
          CMake Error at cmake/modules/FindSFML.cmake:205 (MESSAGE):
            Components of SFML are missing!
          Call Stack (most recent call first):
            CMakeLists.txt:17 (find_package)
          
          
          -- Configuring incomplete, errors occurred!
          
          

          C'est une gentoo 64bits si ça change quelque chose.

          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

          • [^] # Re: Compilation statique pas statique

            Posté par  (site web personnel) . Évalué à 2.

            C'est très étrange, il est pas sensé chercher SFML_MAIN_CHOSE, ça existe que sous Windows, dans le module cmake c'est dans un if(WIN32) …
            Tu as tous les .so qu'il faut donc ça devrait passer…

            • [^] # Re: Compilation statique pas statique

              Posté par  . Évalué à 2.

              J'avais téléchargé la 4.5, visiblement il y a un changement de cette ligne dans le Cmake de la 4.5.1 Je teste avec la 4.5.1.

              « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

              • [^] # Re: Compilation statique pas statique

                Posté par  . Évalué à 2.

                Bon, ça compile mais ça fait un beau SIGSEGV au démarrage. Si ça t'intéresse, je peux peut-être poster ça dans un lieu plus approprié. Dans GDB, ça donne:

                (gdb) run
                Starting program: /usr/local/bin/GeneticInvasion 
                [Thread debugging using libthread_db enabled]
                [New Thread 0x7fffef837700 (LWP 20098)]
                
                Program received signal SIGSEGV, Segmentation fault.
                0x00007ffff5b2c169 in readdir64 () from /lib64/libc.so.6
                
                

                « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                • [^] # Re: Compilation statique pas statique

                  Posté par  (site web personnel) . Évalué à 2.

                  À mon avis c'est un problème très bête du type le jeu ne trouve pas les données.
                  On a pas blindé ce genre de trucs donc ils font des segfaults…

                  Tu peux poster dans le bugtracker mais il faut ouvrir un compte : http://projects.haxx.es/p/genetic-invasion/issues/

                  • [^] # Re: Compilation statique pas statique

                    Posté par  . Évalué à 2.

                    Bon, j'ai enfin pu tester. J'aime bien, ma seul critique, c'est qu'il n'y a aucune indication (ou alors je suis passé à côté) qui explique comment changer la sélection de la tour qu'on veut placer (avec la molette pour ceux qui cherche encore).

                    « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                    • [^] # Re: Compilation statique pas statique

                      Posté par  (site web personnel) . Évalué à 2.

                      Oui, on s'est basé sur les contrôles de quake3 : molette pour changer d'arme, zqsd pour se déplacer, on vise à la souris et on "tire" (place une tour) avec le clic.
                      Les touches sont sur la doc du site officiel : http://projects.haxx.es/p/genetic-invasion/page/Controls/

                      On peut pas facilement faire apparaître la molette sur le menu controls parce que les événements souris et clavier se gèrent pas pareil.
                      On songe à ajouter la possibilité de sélectionner les tours avec 1, 2, 3… mais je suis pas sûr que ça serve à grand monde.

                      Ajouter un tutoriel et des astuces au jeu est dans nos plans mais pas pour tout de suite.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.