CatchChallenger version 2

27
23
sept.
2016
Jeu

CatchChallenger est un MMORPG, un jeu de rôle massivement multijoueur. Particularité ? il est indépendant, en ligne et entièrement libre : licence GPLv3 pour le code, les données (artwork) et le site.

La base du jeu est un mélange de différent styles : combat, agriculture, exploration, fabrication, commerce, gestion, compétition. Le travail est concentré sur la jouabilité, les performances et la créativité.

Une partie de Catch Challenger

Cette version totalise plus de 8Mo de code, plus de 2500 commits avec 400k de lignes sur cinq ans de vie (sur les différentes parties du projet). Le client et le serveur sont développés sous GNU/Linux, puis empaquetés automatiquement pour MacOSX et Windows.

Les systèmes de jeu

Les joueurs peuvent interagir comme pour n'importe quel MMORPG, c'est à dire parler, échanger ou vendre des objets, combattre et constituer des équipes.
Les PNJ, personnages non joueurs, viennent mettre de l'ambiance : ils peuvent mener des quêtes, vendre, acheter, stocker, combattre…

Le système de quêtes est basé sur du texte (très proche du jeu Lineage), on doit combattre, apporter des objets, parler à des PNJ, gagner en réputation ou terminer des quêtes. Cela permet d'obtenir des récompenses tel que de la réputation, des items, ou l'accès à d'autres zones.

Le système d'expérience est basé sur les combats gagnés. Il y a un système de compétences qui permet d'apprendre des compétences ou d'améliorer les niveaux de celles déjà acquises. Ce système de points de compétences peut être désactivé coté serveur.

Le système de pillage est assez simple : à la fin de chaque combat, on a x % de chance de recevoir x à y objet(s).

Enfin, il y a un système de culture de plantes et de fabrication ; une économie très évoluée, type X3 (industrie, cycle de fabrication).

Depuis la dernière version

Le serveur et le code commun ont été réécrits en C++11 pour assurer une meilleure longévité du projet. Ça ouvre aussi la porte à plus de contributeurs. Et en bonus, ça améliore les performances!

Le multi-serveur a été le plus compliqué à revoir, car la base de données et le datapack ont été restructurés en arbre. Le datapack supporte une carte et une histoire par serveur, et des variations.
Le mode cluster a été ajouté, il permet d'avoir un groupe de serveurs à travers le monde. La mise à l'échelle sur 200 serveurs ne cause pas le moindre problème. Un certain nombre de points pour la haute disponibilité semble avoir été résolu.

Divers outils sont apparus tels que les statistiques des serveurs en temps réel, ainsi que d'autres outils pour gérer un cluster dont la supervision pour connaitre en temps réel les problèmes sur le réseau.
Le site continue d'évoluer en utilisant une représentation intermédiaire des informations pour l'export en HTML ou vers Mediawiki.

La stabilité est meilleure grâce à une batterie de tests qui sont exécutés avant la mise en production.
Le sous-projet Gateway permet l'accès à un serveur sous Tor/I2P depuis l'internet classique afin de rendre le site plus accessible depuis des zones où le réseau est filtré/censuré.
La base de données n'exploite plus uniquement le SQL, mais supporte aussi le NoSQL. Les bases officiellement supportées sont MySQL/MariaDB, Percona, PostgreSQL, SQLite.

Le projet est toujours à la recherche d'aide pour le client :

  • un développeur Html5/Websocket/WebGL

Diverses améliorations sur le gameplay telles que l'encyclopédie, pas mal de retouches de l'interface.

Les sous projets

Il existe un projet de diplôme et formation en ligne afin de former des personnes sur le projet et potentiellement les embaucher.
Système de machine virtuelles, inclus sur le GPU pour avoir 4096 VM par GPU (dérive des travaux de gestion de couche TCP et SSL via GPGPU). Et diverses choses autour de l'administration système.
Divers formats et protocoles pour montrer le savoir faire dans ce projet (format pour maximiser la compression avec des formats existant tel que zlib, xz, lz4). La manière de standardiser vos formats.
Les projets hautes performances (exploitation de très nombreux cœurs, SIMD, …) et divers benchmarks sur x86 (out of order) et ARMv6/v7/v8 (in order) pour varier les différents comportements et lenteurs potentielles. Et le changement nécessaire dans divers OS (surtout Linux) pour maximiser les performances.
Datacenter personnel (http://catchchallenger.first-world.info/wiki/Portable_datacenter) utiliser comme préproduction et les problèmes et solutions potentielles pour les pays en voie de développements tel que la Bolivie.
Le datapack, il permet de modifier le contenu du jeu, crée vos cartes, votre propre jeu.

Le futur

La version 2 vient de sortir. Je vais donc prendre un an pour essayer de stabiliser tout cela avant de commencer d'autres parties.

Pour l'utilisateur final

Client plus évolué.

Changement interne

Suppression du point unique de défaillance (Single Point of Failure ou SPoF en anglais) avec la mise en place d'un cœur P2P, et un certain nombre d’expérience sur les données semi-structurées à grande échelle.

Les serveurs

De meilleurs bots pour jouer à votre place sur les serveurs dédiés.

Fonds

Le projet étant réalisé de manière professionnelle et par des professionnels, soumis à l'impôt et encadré par une entreprise, il a besoin de fonds. La version 2 qui est en vente actuellement en bitcoin, Paypal, sur le nextcoin market. Le code, même vendu, est sous GPL3.

  • # LC_LANG ?

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

    C'est terrible de venir en parler ici, sans aucune traduction, ni du site, ni des captures écran. Bien sûr, l'audience anglaise est plus large, mais LinuxFr, c'est aussi le site des no-anglophones… le jeu n'est donc pas traduit?

    ⚓ À g'Auch TOUTE! http://agauch.online.fr

  • # Linux ?

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

    Petit détail non précisé : pas de client Linux?

    ⚓ À g'Auch TOUTE! http://agauch.online.fr

    • [^] # Re: Linux ?

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

      La page des exigences pour le client http://catchchallenger.first-world.info/wiki/Client_requirements laisse penser que le client peut fonctionner sous GNU/Linux (mais les binaires fournis sur le site sont pour Windows et MacOS uniquement, il faut donc compiler soi-même ou trouver une distribution pour le faire à sa place).

    • [^] # Re: Linux ?

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

      Si, il me semble qu'il y a un client Linux,puisque j'avais essayé de le compilé pour Linux.

      • [^] # Re: Linux ?

        Posté par . Évalué à 2.

        si vous avez comme moi cette erreur au début :

        Project ERROR: Unknown module(s) in QT: quick qml script

        Vous pouvez au moins installer ces paquets (sous debian/ubuntu/mint):
        sudo apt-get install qtquick1-qml-plugins qtquick1-qml-plugins qtscript5-dev qt5-default qtdeclarative5-dev qtbase5-dev

        bon, ensuite j'ai une erreur à la compilation :

         regex_replace(const basic_string<_Ch_type>& __s,
         ^
        

        /usr/include/c++/4.8/bits/regex.h:2182:5: note: template argument deduction/substitution failed:
        ../../general/base/Map_loader.cpp:581:86: note: mismatched types ‘const std::basic_string<Ch_type>’ and ‘const char [1]’
        const std::string &base64textClean=std::regex_replace(base64text,e,"");
        ^
        make: *** [Map
        loader.o] Erreur 1

        • [^] # Re: Linux ?

          Posté par . Évalué à 1.

          ça ressemble à du Qt 5 que tu compilerais avec du Qt 4

          • [^] # Re: Linux ?

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

            Debian stretch: apt-get install build-essential gcc automake qt5-qmake liblzma-dev zlib1g-dev libssl-dev libpq-dev qttools5-dev qt5-default qtdeclarative5-dev qtscript5-dev libvlc-dev

            Et correction pour debian envoyé sur: https://github.com/alphaonex86/CatchChallenger/tree/version-2

            Mon projet libre: http://ultracopier-fr.first-world.info/, mon jeu libre: http://catchchallenger.first-world.info/

            • [^] # Re: Linux ?

              Posté par . Évalué à 1.

              Yep, j'ai compilé facilement le client ultimate avec mon Qt 5 custom (que j'avais déjà sur mon PC pour d'autres raison), mais le master segfault demain j'essayerai avec un tag :) mais je témoigne que ça compile très bien avec Qt5 sur Debian 8 (Jessie) aussi.

              • [^] # Re: Linux ?

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

                Le master est la version 1 qui n'est plus maintenu depuis plus de 2 ans

                Mon projet libre: http://ultracopier-fr.first-world.info/, mon jeu libre: http://catchchallenger.first-world.info/

                • [^] # Re: Linux ?

                  Posté par . Évalué à 4.

                  C'est pas super malin que ça soit la branche par défaut sur github alors, mais bon c'est pas très grave, j'ai fait un checkout v2.0.0.0 et devine quoi, ça compile nickel et ça plante pas au lancement :-)

                  Bon, après ça demande une clef, comme dirait l'autre çapucépalibreenfincépagratuit ;-)

                  Mais le client single lui, il compile, il se lance, il marche et il ne demande pas de clef.

                  Donc ça va c'est pas la mer à boire à compiler soi-même. Même pour quelqu'un comme moi qui ne connait rien du tout à ton jeu et à ton env de dev (mais qui a déjà compilé du Qt, je le reconnais).

                  Le jour où tu voudras faire un package linux (fut-ce un tar.gz pas intégré aux systèmes des distribs), t'as ça qui peut peut-être t'aider à embarquer tous les bouts de runtime Qt que tu veux sans te prendre la tête avec les noms des packages d'une distrib à l'autre pour tel ou tel module Qt voire QML:
                  https://github.com/probonopd/linuxdeployqt
                  (mais bon la dernière fois que je l'ai essayé ça marchait pas complètement, en tout cas pas aussi bien que leurs pendant windows et macos)

                  Bon j'ai pas essayé ton jeu longtemps parce que j'aime pas trop les rpg-à-la-japonaise, mais ça a l'air prometteur pour ceux qui aiment le genre, bravo :-)

          • [^] # Re: Linux ?

            Posté par . Évalué à 2.

            on dirait que non pourtant :

            qmake --version
            QMake version 3.0
            Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu
            user@login /tmp/CatchChallenger/client/single-player $ qmake
            user@login /tmp/CatchChallenger/client/single-player $ make
            g++ -c -m64 -pipe -std=c++0x -Wall -Wextra -O2 -std=c++0x -Wall -W -D_REENTRANT -fPIE -DCATCHCHALLENGER_XLMPARSER_TINYXML1 -DTIXML_USE_STL -D__linux__ -DCATCHCHALLENGER_CLIENT -DCATCHCHALLENGER_SOLO -DCATCHCHALLENGER_CLASS_QT -DCATCHCHALLENGER_VERSION_SOLO -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_QML_LIB -DQT_WIDGETS_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_SCRIPT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtSql -I/usr/include/qt5/QtXml -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtScript -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -I. -o Map_loader.o ../../general/base/Map_loader.cpp

            • [^] # Re: Linux ?

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

              Essaye avec la version 5.4 minimum.

              Mon projet libre: http://ultracopier-fr.first-world.info/, mon jeu libre: http://catchchallenger.first-world.info/

              • [^] # Re: Linux ?

                Posté par . Évalué à 2.

                Une réponse tardive :

                merci, j'ai mis à jour ma distribution et j'ai maintenant qt 5.4
                Pour compiler tu peux rajouter qu'il faut également ce paquet :

                sudo apt-get install libqt5opengl5-dev

                Ça semble plutôt bien fait comme jeu. Effectivement ça ressemble pas mal à pok*mon mais comme tout est changé ça ne devrait pas poser de problème avec les ayant droit…

                Au début, en version 1 seul joueur, je suis entré dans une maison. J'ai vu des escaliers mais n'ai pas pu monter car je longeais à chaque fois les murs et ne pouvais me centrer sur les escaliers. Ensuite, quand j'étais le long d'un mur près d'une fenêtre et de rideaux, je passais derrière ceux ci.

                Puis j'ai eu ce crash :

                BaseWindow::currentMapLoaded(): map: "/home/login/github/CatchChallenger/client/single-player/datapack/map/main/official/arcania/0.0.tmx" with type: "city"
                The tiled object not exist on this layer
                "transmited: 3B/s"
                "transmited: 3B/s"
                "transmited: 3B/s"
                Zoe: Kicked by: Too many move in sort time, check DDOS limit: (58+2)>=60
                Zoe: Do db_common write: UPDATE character SET played_time=played_time+269 WHERE id=1
                Zoe: Do db_server write: UPDATE character_forserver SET map=49,x=19,y=19,orientation=3,rescue_map=49,rescue_x=20,rescue_y=19,rescue_orientation=3,unvalidated_rescue_map=49,unvalidated_rescue_x=20,unvalidated_rescue_y=19,unvalidated_rescue_orientation=3 WHERE character=1
                Try stop
                removeOneClient(): NULL client at disconnection
                Fully stopped
                "Disconnected to SQLite at "
                "Disconnected to SQLite at "
                "Disconnected to SQLite at "
                "Disconnected to SQLite at "
                "transmited: 2B/s"
                terminate called after throwing an instance of 'std::out_of_range'
                what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
                Abandon

                Bon, j'y retourne, mon fils est impatient de continuer à jouer à CatchChallenger !

                • [^] # Re: Linux ?

                  Posté par . Évalué à 2.

                  nouveau petit retour rapide :

                  • toujours dans la version 1 joueur, j'ai pris la fille, et à un moment ça m'a dit "boy"
                  • ça crashe vraiment souvent
                  • pour ma version de qt, c'est la 5.5
                  • pour la version de catchcallenger, j'ai pris la version avec git clone https://github.com/alphaonex86/CatchChallenger.git je ne sais pas si c'est la dernière version, vu le commentaire plus haut pour la version v2.0.0.0 (qui semble pourtant plus vieille, peut être que ça a été corrigé depuis)
                  • j'ai un peu exploré le jeu mais je ne sais pas trop quoi faire pour sortir de la ville vu que c'est bloqué et je n'ai pas trouvé comment augmenter en compétence.
                  • je n'arrive pas à interagir avec certains objets, genre ordinateurs mais peut-être que c'est juste du décor
                  • visuellement c'est très joli
    • [^] # Re: Linux ?

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

      Le packaging par distro est trop complexe, je n'y suis cassé les dents sur Ultracopier.
      Donc le client marche et est développé sous Linux, mais je ne fourni pas de binaire Linux.

      Mon projet libre: http://ultracopier-fr.first-world.info/, mon jeu libre: http://catchchallenger.first-world.info/

      • [^] # Re: Linux ?

        Posté par . Évalué à 1.

        en général faut laisser ça à des gens qui connaissent la distro, parce que par exemple sous Debian oui ça peut être clairement complexe… mais si le jeu gagne de l’ampleur on peut imaginer que ce sera packagé un jour ^ ce qui lui fera gagner encore plus en notoriété…

        …après je me demande si ya des systèmes de dons intégrés dans apt ce serait intéressant…

        • [^] # Re: Linux ?

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

          C'est le problème: le packaging est tellement complexe qu'il faut que le logiciel soit connu pour être packagé, mais pour être connu, c'est mieux d'être packagé…

          http://devnewton.bci.im

          • [^] # Re: Linux ?

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

            J'ai l'impression que krita a résolu ce problème, ils fournissent un gros binaire qui marche direct partout.

            ⚓ À g'Auch TOUTE! http://agauch.online.fr

            • [^] # Re: Linux ?

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

              s/résolu/contourné

            • [^] # Re: Linux ?

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

              Krita a surtout fait ça pour permettre d’utiliser facilement la dernière version quelque soit la version empaquetée pour la distribution.

              Écrit en Bépo selon l’orthographe de 1990

  • # LE ROI LION

    Posté par . Évalué à -10.

    Je reconnait le personnage du bas issu du film de Disney "le roi lion" : c'est Samba !

    • [^] # Re: LE ROI LION

      Posté par . Évalué à 2. Dernière modification le 23/09/16 à 14:32.

      avec la queue en feu ça s'inspire aussi d'un monstre de poche (monspoche/ montroche / monstropoche ???)

      • [^] # Re: LE ROI LION

        Posté par . Évalué à -10.

        Confondre le Roi Lyon et une sorte de verre luisant c'est comme comparer les loukoums et les bonbons au miel, je ne peu pas te laisser faire cela.

      • [^] # Re: LE ROI LION

        Posté par . Évalué à 6.

        samblamèche

      • [^] # Re: LE ROI LION

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

        poŝmonstro en Esperanto :D

        Écrit en Bépo selon l’orthographe de 1990

    • [^] # Re: LE ROI LION

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

      Simba.

  • # Un MMORPG en ligne ?

    Posté par . Évalué à 3.

    un MMORPG, un jeu de rôle massivement multijoueur. Particularité ? il est indépendant, en ligne et entièrement libre

    Un jeu de rôle massivement multijoueur qui a pour particularité… d'être en ligne ?
    Qué ?

    Une nuance de l'un des termes doit m'échapper.

    • [^] # Re: Un MMORPG en ligne ?

      Posté par . Évalué à 0. Dernière modification le 23/09/16 à 15:46.

      L'aspect MMO n'y est pas, si je me souviens bien.

      L'aspect RPG n'y est pas, sauf si on parle de "RPG" à la Japonaise (donc pas des RPG).

      "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

      • [^] # Re: Un MMORPG en ligne ?

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

        L'aspect MMO n'y est pas (…) L'aspect RPG n'y est pas (…)

        Mince, il reste quoi alors ? :-)

      • [^] # Re: Un MMORPG en ligne ?

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

        Bah on parle de RPG occidental et de JRPG, ce sont donc tous les deux des RPG non?

        Écrit en Bépo selon l’orthographe de 1990

        • [^] # Re: Un MMORPG en ligne ?

          Posté par . Évalué à 3.

          Non.

          Dans un RPG, tu joues un rôle. Tu as des choix qui ont des conséquences (voire "en vrai" du roleplay), des dialogues à embranchements multiples, des histoires différentes selon tes choix…

          Dans un JRPG, tout ce que tu as c'est un tueur de monstres muet (et 9 fois sur 10 amnésique, comme ça c'est plus facile pour le background) qui gagne des XP.

          C'est autant un RPG que moi je suis colombien. C'est à dire, pas du tout.

          "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

          • [^] # Re: Un MMORPG en ligne ?

            Posté par . Évalué à 2.

            Je ne vois pas en quoi le fait de jouer un rôle implique le libre arbitre.

            On peut très bien imaginer jouer le rôle d'un personnage historique, et dans ce cas-là tes actions n'ont pas à avoir de conséquences qui altèrent la réalité historique.

            Jouer un rôle, c'est incarner un personnage, ça ne donne pas nécessairement de liberté quand aux actions de ce personnage.

            • [^] # Re: Un MMORPG en ligne ?

              Posté par . Évalué à 1.

              En tout cas, ça implique plus que de tuer des monstres pour avoir des XP et une plus grosse épée.

              "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

              • [^] # Re: Un MMORPG en ligne ?

                Posté par . Évalué à 2.

                C'est extrèmement réducteur comme vision des JRPG. Que tu n'aimes pas, c'est ton droit, mais tu n'es pas dépositaire du terme RPG.

                • [^] # Re: Un MMORPG en ligne ?

                  Posté par . Évalué à 1.

                  Pas plus que les JRPG ont mérité le terme de RPG.

                  "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

    • [^] # Re: Un MMORPG en ligne ?

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

      C'est moi qui ai restructuré la phrase en modération, j'aurai du enlever « en ligne » du coup. En tout cas l'auteur n'y est pour rien.

      "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

  • # Cross compile pour Mac ?

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

    Le client et le serveur sont développés sous GNU/Linux, puis empaquetés automatiquement pour MacOSX et Windows.

    Est-ce que tu cross compile pour macOS ? Si oui je souhaite vraiment savoir comment tu fais :)

    svn is the IE6 of version control

  • # Go

    Posté par . Évalué à 3.

    Est-ce qu'une version Go est prévue afin de pouvoir faire pousser ses cultures un peu partout dans nos campagnes ?

  • # Diplôme ?

    Posté par . Évalué à 5.

    En France, je crois qu'il faut être habilité pour délivrer un diplôme. Vu la tête de l'image mise en lien, on pourrait très bien t'accuser de vouloir escroquer les gens en leur délivrant de faux diplômes. Je crois que tu devrais changer le nom et appeler ça autrement.

    D'autre part, les Boliviens seront ravis d'apprendre qu'ils sont en voie de développement…

    • [^] # Re: Diplôme ?

      Posté par . Évalué à 2.

      En France, je crois qu'il faut être habilité pour délivrer un diplôme. Vu la tête de l'image mise en lien, on pourrait très bien t'accuser de vouloir escroquer les gens en leur délivrant de faux diplômes. Je crois que tu devrais changer le nom et appeler ça autrement.

      Faut vérifier car en Belgique c'est autorisé. Tout diplôme n'est pas reconnu par l'état ni par le secteur privé (et certains sont reconnu par l'un et pas par l'autre).

    • [^] # Re: Diplôme ?

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

      Le nom est peu être à corriger, certification? Mais ce n'est qu'une idée.
      De faire des certifications (comme CISCO) décentralisé et non falsifiable.

      Mon projet libre: http://ultracopier-fr.first-world.info/, mon jeu libre: http://catchchallenger.first-world.info/

    • [^] # Commentaire supprimé

      Posté par . Évalué à -10.

      Ce commentaire a été supprimé par l'équipe de modération.

Suivre le flux des commentaires

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