Une nouvelle version majeure de Wormux

Posté par (page perso) . Modéré par tuiu pol.
Tags :
28
27
jan.
2010
Jeu
Après 4 mois de développement, l'équipe de Wormux est heureuse d'annoncer la sortie d'une nouvelle version majeure : Wormux 0.9.0.

Wormux est, pour ceux qui l'ignorent, un jeu de massacre convivial en 2D (de type Worms) mettant en scène les mascottes de plusieurs logiciels libres. Il est développé en C++ et utilise la bibliothèque SDL.

Le choix de cette numérotation (version majeure plutôt que 0.8.6) a été fait pour deux raisons : premièrement, le jeu en réseau est incomparablement plus fiable et souffre beaucoup moins de problèmes de désynchronisation ; deuxièmement, l'intelligence artificielle, qui jusqu'alors était une fonctionnalité cachée connue sous le nom de AI-stupid, est intégrée et ne mérite plus ce nom. L'équipe de Wormux évolue elle aussi. Après avoir vu plusieurs départs, cette nouvelle version a été accompagnée par de nouveaux contributeurs. En particulier, notons l'arrivée de iFlo qui a énormément travaillé sur cette version.

Les modifications :
  • Intelligence artificielle !!! Plus de AI-stupid cachée. L'IA est maintenant sensée.
  • Amélioration notable du jeu en réseau.
  • Deux nouvelles équipes : Postfix and Hexley
  • Trois nouvelles cartes. Suppression de trois anciennes.
  • Plusieurs améliorations au niveau des graphismes et de la jouabilité.
  • De très nombreuses autres améliorations et beaucoup de corrections de bugs.

Le plus gros chantier de Wormux reste l'externalisation du moteur physique. Un travail qui n'est pas sans poser de nombreux problèmes. Après avoir découragé Drayan et Fredb219, il y a fort à parier que ce titanesque chantier occupe fortement l'équipe quelque temps… Autres fonctionnalités futures : un menu entièrement refait avec guichan, l'intégration de telepathy (en cours de discussion), une interface de jeu plus complète et plus compacte, une IA toujours plus performante, la gestion de comptes, un système de vote pour les cartes… Bref, si vous avez envie de contribuer, l'équipe serait évidemment heureuse de vous accueillir.
  • # Et comme toujours...

    Posté par . Évalué à -10.

    ... les personnages flottent au dessus du terrain. C'est pas faute que le bug ait été reporté...
    • [^] # Re: Et comme toujours...

      Posté par (page perso) . Évalué à 7.

      En effet, ce bug est tout simplement du au moteur physique. Si tu lisais la news plutôt que faire un reproche déjà fait 1000 fois sans même réfléchir, tu constateras que nous prenons ce problème à cœur et qu'il a réussi à décourager 2 devs tant la tache est fastidieuse...
      • [^] # Re: Et comme toujours...

        Posté par . Évalué à 7.

        avatar->position -= 2; // voir trois éventuellement ?

        bon ok je -->[]
        • [^] # Re: Et comme toujours...

          Posté par (page perso) . Évalué à 3.

          tu envoies ton patch sur https://gna.org/patch/?func=additem&group=wormux ? ;-)
        • [^] # Re: Et comme toujours...

          Posté par . Évalué à 3.

          Naaaan, il faut mettre une cale aux persos qui ne semblent pas toucher terre.

          if (cPlayer->height <= average_height)
          display_item(BLINGBLINGWOODCRATE, cPlayer->location)


          ... Ah non, je me suis trompé de patch.

          Tant pis, il va quand même falloir que j'aille massacrer un gamin qui se croit plus fort que moi.

          The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

      • [^] # Re: Et comme toujours...

        Posté par (page perso) . Évalué à 4.

        J'ai lu la news, et je ne vois pas la réponse à sa question : il parle d'un bug précis, la news dit « externaliser le moteur physique. »

        Enfin, même si ton message fait comprendre que c'est lié, ta réponse est un peu violente, hein !
        • [^] # Re: Et comme toujours...

          Posté par (page perso) . Évalué à 4.

          En même temps, je crois que j'ai déjà lu 3 fois la réponse ici avant cette dépêche, je comprend qu'il commence à en avoir marre.

          Et sinon, le bug précis, il a quand même une résolution assez complexe.

          « 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: Et comme toujours...

      Posté par (page perso) . Évalué à 10.

      Reporter un bug est une première (bonne) chose.
      Râler parce que le bug n'est pas corrigé, hum... Je serai tenté de répondre : tu es prêt à payer pour la correction? Ou tout doit être gratuit pour toi?

      L'équipe de Wormux doit faire ce qu'elle peut avec les moyens qu'elle a. Il corrigeront quand ils auront le temps / la motivation pour le faire. Je suppute fort qu'ils attendent toutefois le changement de moteur physique pour corriger la chose.

      "Comme toujours" pour reprendre le sujet de ton post, il y en a pour râler sans rien faire d'autre (soit technique, soit financier).
  • # Convention de numérotation

    Posté par . Évalué à 1.

    Généralement, les logiciels UNIX sont numérotés selon la convention $majeur.$mineur.$patch, ce qui fait que la 0.9.0 est une nouvelle version mineure.
    Si pour vous une augmentation du second chiffre est une version majeure, comment appellerez-vous la 1.0.0 ?
    • [^] # Re: Convention de numérotation

      Posté par (page perso) . Évalué à 1.

      Un jeu finalisé, de la même façon que VLC a mis du temps avant de passer en version 1.x .

      Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

    • [^] # Re: Convention de numérotation

      Posté par (page perso) . Évalué à 10.

      À ces histoires de version, c'est compliqué. Les développeurs cherchent la perfection pour la version 1.0, alors que les commerciaux courent après le plus gros numéro possible.

      gstreamer est passé de 0.9 à ... 0.10 :-) Je me demande s'ils vont passer de 0.10 à 0.11 ou à 1.0. En tout cas, ça commence à être compliqué à suivre :-)

      Durant 2 ans, le noyau Linux a enchainé les version 0.9xxx dont la dernière était la « 0.99 patch level 15Z » (rah le bodel !). Il aura mis 3 ans à sortir en version 1.0.

      Mplayer existe depuis 9 ans et n'est pas encore en version 1.0... Bien que Mplayer soit extrêmement répandu, embarqué dans des lecteurs vidéos de salon, etc. La dernière release a maintenant 2 ans (version 1.0rc2) : son site web conseille de télécharger la version trunk via Subversion (The daily Subversion snapshots are generally stable, hum hum).

      Le projet VLC a été lancé en 2001 et la 1.0 est sortie en 2009 (8 ans plus tard).

      À côté de ça, le projet Chromium est passé de la 1.0 à la 4.0 en un an :-)

      Plus sérieusement, Emacs en est à la 23.1 alors que vim se traine à la version 7.2. Faites votre choix.

      (je vais pas parler de Linux 2.6.32 < Windows 7 < Mac OS 10.6.2, c'est tabou)
    • [^] # Re: Convention de numérotation

      Posté par (page perso) . Évalué à 8.

      Sans doute un changement majeur dans une version mineure ? ;-)

      Pendant des années, je me suis battu à EADS pour que la hiérarchie des évolutions : Majeure - mineure - correction soit respectée. Et j'ai toujours trouvé des personnes qui sous-classaient les évoluions pour raccourcir les circuits d'approbation... sans se soucier du bazar qu'ils allaient mettre ensuite !

      Je pense que ce problème est général. C'est de la gestion à courte vue vue (très court terme) tout comme la gestion des grandes entreprises qui ne sont plus gérées par des gens qui connaissent l'activité mais par des financiers et des avocats.
      J'ai vu, il y a environ deux semaines un reportage télévisé sur Airbus où on expliquait qu'il n'y a plus aucun avionneur dans l'équipe dirigeante. Je ne rêve pas, hélas.
      • [^] # Re: Convention de numérotation

        Posté par (page perso) . Évalué à 2.

        Comme on m'a dit un jour: le malade n'est pas le mieux placé pour se guérir

        Ca vaut ce que ça vaut, mais c'est assez pertinent pour être médité quelques minutes tout de même :)
        • [^] # Re: Convention de numérotation

          Posté par . Évalué à 5.

          > Comme on m'a dit un jour: le malade n'est pas le mieux placé pour se guérir

          On se soigne et le corps se guérit. Si le malade n'est pas le mieux placé pour se remettre d'une maladie alors je vois mal qui pourrait l'être plus. :)

          The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

    • [^] # Re: Convention de numérotation

      Posté par (page perso) . Évalué à 5.

      en même temps, il y a des cas beaucoup plus zarb...
      (j'avais fait un nourjal dessus : [http://linuxfr.org/~CrEv/20195.html])

      SmartEiffel : numéros de version négatifs se rapprochant de 0
      TeX tend vers pi
      metafont vers e
      pugs en convergeant vers 2*pi :
      chaque digit dans la version mineur représente une milestone (désolé je voyais pas trop comment le traduire à part par "étape importante" mais personne aurait compris ;-) ). Le troisième digit est incrémenté à chaque release.

      Ce qui donne (car là ça doit pas être très clair :
      * 6.0: Initial release.
      * 6.2: Basic IO and control flow elements; mutable variables; assignment.
      * 6.28: Classes and traits.
      * 6.283: Rules and Grammars.
      * 6.2831: Type system and linking.
      * 6.28318: Macros.
      * 6.283185: Port Pugs to Perl 6, if needed.


      Software_versioning
    • [^] # Re: Convention de numérotation

      Posté par . Évalué à 2.

      Il faut bien voir que le schéma de numérotation est historique (et reste malgré les batailles pour le changer!)

      Première version : 0.1. Puis viens la 0.2, la 0.3, la 0.4 a dû voir l'arrivée du son et d'un menu (je suis rentré dans le projet après la 0.3). La 0.4 était donc une version majeure avec de telles ajouts ;)

      Ensuite, il y a une 0.5, version bien avancée qui utilisait Clanlib 0.6 et que haypo, développeur principal à l'époque, voulait numéroter 1.0. J'étais plutôt favorable, mais tout le monde n'était pas d'accord...

      Plus tard, on décide de passer sur Clanlib 0.7 (version de développement mais recommandée par les développeurs de Clanlib), on sort une version 0.6... Même si certains voulaient sortir une 1.0, d'autres disaient : "Oui, mais y'a pas d'IA, y'a pas de réseau, y'a pas ceci, ...".

      Passage à SDL suite aux déboires avec Clanlib -> Wormux 0.7

      Les améliorations s'enchaînent mais rien d'aussi important qu'un portage : 0.7.1, 0.7.2, 0.7.4, ...

      Le jeu en réseau commence à être mis en place par lodesi, chantier monstrueux. On décide que ce sera la version 0.8. Commence alors le cycle des alphas/betas (alpha1, beta1, jusqu'à 4). A chaque fois, le réseau s'améliore, mais péniblement et le jeu solo aussi. On décide de sortir une version dite "stable", en désactivant le réseau : Wormux 0.7.9. Ce numéro pour indiquer que ce sera la dernière version avant le jeu en réseau "stable". Là encore, certains criaient aux scandales lorsque quelqu'un évoquait la 1.0. "Comment, une 1.0 sans IA ??"

      Après, un tel cycle, c'était déjà difficile de mettre à jour le 2ème numéro... Certains voulaient numéroter la version actuelle 0.8.6... Alors enlever le 0. ... T'imagine même pas les levées de bouclier qu'il peut y avoir quand on parle de numéro de versions :)

      C'est beaucoup plus simple de rester dans une numérotation foireuse qui s'est créée historiquement, que d'en remettre une sur les railles!

      Et je crois que ce n'est pas près de s'arranger pour Wormux si on change vraiment le moteur physique. Ça m'étonnerait qu'on sorte une version aussi stable de but en blanc, donc ça voudra dire réutiliser des numérotations avec un joli beta ou rc en suffixe...
      • [^] # Re: Convention de numérotation

        Posté par . Évalué à 2.

        J'aime bien celle de openbsd : à chaque release on augmente y (sur le modèle x.y), une fois arrivé à 9 on increment x. Comme ça personne la ramene :)
    • [^] # Re: Convention de numérotation

      Posté par (page perso) . Évalué à 4.

      Moi je préfère les numérotation MS au moins c'est claire:
      Windows 7 c'est la Version 6.1.7600

      header('Location: la_porte);

      A+
  • # amélioration de la mise en réseau

    Posté par (page perso) . Évalué à 5.

    Bonjour,
    Il faudrait améliorer la mise en réseau. En effet, ce n'est pas du tout évident pour des enfants: il faut créer un serveur ça ont y arrive en cherchant un peu , mais sur les postes clients, il faut indiquer l'adresse IP du serveur. C'est trop dur pour des enfants. Il faudrait donc une détection automatique des serveurs sur le réseau local.
    merci de m'avoir lu.
    • [^] # Re: amélioration de la mise en réseau

      Posté par (page perso) . Évalué à 2.

      Il me semble avoir lu quelque part que c'est prévu pour une future version ;)
    • [^] # Re: amélioration de la mise en réseau

      Posté par (page perso) . Évalué à 5.

      Je dirais plutôt "C'est trop dur pour des adultes". J'ai deux gamins et je peux te dire que les enfants se débrouillent bien mieux que tu le crois...

      GNU's Not Unix / LINUX Is Not Unix Xernel

      • [^] # Re: amélioration de la mise en réseau

        Posté par (page perso) . Évalué à 4.

        En même temps tu ne sais pas l'âge qu'ont ses enfants...
      • [^] # Re: amélioration de la mise en réseau

        Posté par . Évalué à 2.

        En meme temps, l'informatique, c'est quand meme l'art d'automatiser les taches qui peuvent l'etre. Si pour jouer, faut entrer une adresse ip, ca veut deja dire qu'il faut trouver cette adresse ip, donc d'une savoir ce que c'est de deux comment l'obtenir.
        Alors certes ce n'est pas complique, mais honnetement a quoi ca sert de le savoir pour une personne qui veut 'jouer'.
        Je sais qu'il faut changer l'huile sur ma voiture, je sais ou trouver l'infopour comment le faire, mais je sais aussi qu'il va faloir aller a la decheterie, je sais qu'il faut avoir un fosse de preferences pour pas avoir a ramper sous la bagnole etc.
        Bref ce n'est pas parce que ce n'est pas complique que c'est agreable a faire.
        Comme le code de detection automatique de serveur, cela m'etonne que ce genre de code n'existe pas en GPL, bref...
        • [^] # Re: amélioration de la mise en réseau

          Posté par . Évalué à 3.

          Ou alors, quand on crée le serveur, il indique son adresse IP à celui qui hoste.
          Voire, il n'indique que la partie variable, en se basant sur le masque de sous-réseau.
          dans 99% des cas, avec quelques joueurs regroupés derrière une machinbox, c'est parfait. Et les gens qui ont une config réseau plus tordue savent se débrouiller.

          C'est plus simple à implémenter qu'une détection auto de serveur (enfin, il me semble), et ça permet d'héberger plusieurs serveurs sur le même réseau sans brouiller les pistes.

          "Je lance une partie, l'adresse c'est 15! (192.168.1.15)
          - J'en ai déjà une de démarrée, en 12. (192.168.1.12)
          - Ok, je te rejoins."

          THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

          • [^] # Re: amélioration de la mise en réseau

            Posté par . Évalué à 2.

            Si un daemon zeroconf est présent sur la machine c'est tres simple.
            • [^] # Re: amélioration de la mise en réseau

              Posté par . Évalué à 5.

              Ce que je déteste avec ce genre d'idées, c'est qu'après on se retrouve avec Wormux qui dépend de zeroconf qui recommande libmono-zeroconf qui dépend de Wine qui propose d'installer Samba qui recommande Gnome qui installe Abiword (j'exagère à peine, le jeu de dépendances par défaut sous Debian installe Samba quand on veut Abiword).

              Je veux pas éditer du texte, je veux jouer. Ne pas réinventer la roue, oui, mais y'a des limites.

              THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

              • [^] # Re: amélioration de la mise en réseau

                Posté par . Évalué à 4.

                Sauf que sous Debian au moins, tu as un Avahi qui tourne, et ce par défaut, et ce depuis un moment. Et c'est pratique en maudit.

                Sous Windows, il faut installer le "bonjour" d'Apple, ce qui bien qu'automatiquement ajouté à Safari et/ou iTunes reste chiant.

                Mais sous Linux/Mac (desktop), une implémentation de Zeroconf c'est très courant.
              • [^] # Re: amélioration de la mise en réseau

                Posté par . Évalué à 4.

                CooOOoomment, une critique du système de paquets du pingouin, alors que c'est là sa GRANDE force ?
              • [^] # Re: amélioration de la mise en réseau

                Posté par . Évalué à 1.

                Je suis d'accord avec toi la plupart du temps, mais cela devrait être une dépendance optionnel, si présent on utilise sinon on utilise pas et on dit à l'user de l'installer pour une meilleure experience.
              • [^] # Re: amélioration de la mise en réseau

                Posté par (page perso) . Évalué à 3.

                je ne sais pas si vous avez remarqué, mais il y a déjà beaucoup de serveurs qui utilisent zeroconf, essayez de démarrer avahi-discover. Chez moi j'ai:

                - Serveur VNC (de GNOME)
                - Serveur WebDAV (Apache sans doute)
                - Serveur Web (Apache)
                - SSH Daemon
                - MPD (Music Player Daemon)
                - iChat (Telepathy)
                - libvirt (un truc Fedora)

                J'imagine mal une machine linux qui n'utilise pas du tout avahi, et je ne pense pas que avahi ait plein de dépendances. En tout cas, je ne pense pas que l'installation d'Apache me fasse installer mono ou Abiword.
            • [^] # Re: amélioration de la mise en réseau

              Posté par . Évalué à 2.

              Concernant les implémentations zeroconf, j'avais regardé à une époque justement dans le but d'en intégrer une à Wormux.

              De mémoire, je n'avais pas trouvé de bibliothèque qui soit multi-plateforme et qui ne tire pas des dépendances monstrueuses.
        • [^] # Re: amélioration de la mise en réseau

          Posté par . Évalué à 3.

          Tu me sembles plein de bonne volonté!

          Puisqu'il est si simple de trouver ce genre de code (et de l'intégrer), je t'invite à nous proposer directement le patch allant bien ;)

          Afin de limiter un peu tes recherches, voici quelques infos : Wormux utilise SDL_Net afin d'être compatible Linux, BSD, Win, Mac, ...

          Pour le langage, nous utilisons du C++, mais du C brut pour faire n'est pas un problème.
          • [^] # Re: amélioration de la mise en réseau

            Posté par . Évalué à 1.

            Je code deja pour un MUD pendant mon temps libre, je ne faisais qu'un simple constat. Quand un joueur me dit 'ca serait bien d'optimiser ca parce que c'est chiant et que ca sert a rien' je lui dit pas 'code le toi meme'....Non je lui dis a la rigueur que ce n'est pas une priorite, mais que ca integre ma todo list....
            Mais je lui dis jamais (surtout quand plusieurs joueurs le demandent) 'n'a pas que ca a foutre puis c'est trop complique pour l'interet que JE trouve que ca a'
            Pis la detection automatique de serveur je sais que ca existe, ne serait ce que pour la gestion des imprimantes....donc bon...
            Ha puis je supporte deja assez cette connerie de C pour mon MUD. pour en faire en plus ailleurs (je prefere largement le JAVA a la base...)
            • [^] # Re: amélioration de la mise en réseau

              Posté par . Évalué à 2.

              Je code deja pour un MUD pendant mon temps libre
              je supporte deja assez cette connerie de C pour mon MUD

              Après l'argent, la reconnaissance sociale, la satisfaction de ses besoins personnels, le plaisir de bidouiller et d'innover, on a enfin découvert une nouvelle motivation des développeurs de logiciels libres: le masochisme.

              Essaie l'ASM ;+)

              THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

              • [^] # Re: amélioration de la mise en réseau

                Posté par . Évalué à 1.

                Un peu oui....j'aurais mieux fait de le reecrire en JAVA, ca m'aurait pris moins de temps que ce que ce m'a pris pour le debugger...
                Et faire de la gestion de chaine de caractere en C...faut etre maso, c'est sur.
                • [^] # Re: amélioration de la mise en réseau

                  Posté par (page perso) . Évalué à 2.

                  Et faire de la gestion de chaînes de caractères en C...faut être masochiste, c'est sûr.

                  Non, ça s'apprend ! ... comme l'orthographe ;-)
                  • [^] # Re: amélioration de la mise en réseau

                    Posté par . Évalué à 1.

                    Oui le masochisme s'apprend....Ce n'est pas pour ca que ca devient agreable, tout comme tapper des accents et des cedilles sur un clavier qwerty.

                    La ponctuation aussi s'apprend, il ne te manque plus que ca pour devenir un grammar nazi ;p
          • [^] # Re: amélioration de la mise en réseau

            Posté par . Évalué à 2.

            Ouais ben ça risque d'être compliqué: la lib SDL ne gère pas l'adresse IP quand on ouvre un socket en écoute. Ça écoute sur tous les ports, en mode bourrin (ce qui se comprend, on parle de jeux, pas de services à proprement parler), et la SDL ne prévoit pas du tout la gestion des adresses IP d'un serveur.

            Donc ce n'est effectivement pas simple du tout d'avoir l'IP du serveur, ça nécessite, au choix:
            - d'ajouter à la lib SDL la gestion de l'IP du serveur, avec tous les problèmes que ça peut poser dans les cas non-triviaux (c'est à dire, dès qu'on a autre chose que la boucle locale + une interface connectée à un LAN),
            - de faire une grosse bidouille crade pour faire détecter l'IP par wormux, en perdant le côté multiplateforme offert par la lib SDL, et en ayant le même problème dans les cas non triviaux,
            - d'utiliser zeroconf ;)

            En tout cas, je comprends pourquoi ça n'est pas encore implémenté, c'est loin d'être simple.

            THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

    • [^] # Re: amélioration de la mise en réseau

      Posté par (page perso) . Évalué à 2.

      Il n'y a pas besoin de créer des serveurs, il suffit de rejoindre les serveurs publics... Pour cela il suffit de cliquer sur un serveur dans la liste. Même un enfant devrait y arriver.

      Pour les réseaux locaux par contre c'est vrai que c'est pas forcément ultra facile.

      L'ensemble des menus devraient être récrits d'ici à la prochaine version.
    • [^] # Re: amélioration de la mise en réseau

      Posté par (page perso) . Évalué à 8.

      Tu veux dire les mêmes enfants qui sont capables d'ouvrir des ports sur un routeur pour utiliser les logiciels de P2P?

      http://devnewton.bci.im

  • # Merci.

    Posté par . Évalué à 4.

    Merci pour le boulot.

    Par contre, où est ce que je pourrais trouver un peu d'informations sur les difficultés d'intégration d'un nouveau moteur physique ?

    Souvent, quand je montre le jeux, la première remarque que j'ai: «C'est nul les personnages y volent !»

    Par contre, après les parties s'enchainent ...

    Bonne continuation !
    • [^] # Re: Merci.

      Posté par (page perso) . Évalué à 3.

      Essaye le salon IRC (#wormux et #wormux-fr sur le serveur Freenode) et (les archives de) la liste de diffusion.

Suivre le flux des commentaires

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