MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Concours - Chat + Protocole : Recherche de participants

    Planifier Épinglé Verrouillé Déplacé Concours
    12 Messages 5 Publieurs 636 Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • RedRelayR Hors-ligne
      RedRelay Moddeurs confirmés
      dernière édition par

      Salut tout le monde,

      Je vous en avez parlé il y a 3 semaines environs, j’avais une idée de concours mais il fallait que je prépare le terrain histoire que tout ça se concrétise. C’est aujourd’hui chose faite, je vous propose le concours suivant :

      La mise en place d’un client de chat multi-modulaire qui permettra de liée par exemple le site MFF avec le chat de minecraft et avec un chat se trouvant sur votre launcher par exemple 😉 Bref, peut importe le support, vous pourrez vous connecter à la shoutbox 😉

      La partie core du serveur est déjà opérationnelle, c’est le travail que j’ai fait en amont. Le concours ne se porte que sur le client. Il me reste encore quelques truc a bosser dessus (Empêcher les injections XSS, améliorer le module par défaut et faire le module du forum), mais le nécessaire est la 😉

      #Le concours serait divisé en 2 niveaux :(Le concours serait divisé en 2 niveaux 🙂

      1 - D’un coté, une partie pour les débutants qui consisterai à implémenter le core du client en java standard.
      Ça reviendrait dans un premier temps à implémenter une interface que je fournirais et dans un second temps utiliser les fonctions de cette interface pour construire le core.
      Puis ensuite utiliser ce core pour créer un mod qui permettra de se connecter au core du chat via minecraft.
      Modèle de conception bottom-up donc 😉 C’est à dire qu’on construit d’abord de petites briques et qu’ensuite on les assemblent. Il existe un autre modèle qui s’appel top-down et qui comme son nom l’indique, est l’inverse du premier modèle.
      Dans le modèle top-down, on fait les plans, puis on pose les briques. Généralement d’instinct les gens utilisent le top-down, ici se sera bottom-up, mais dites-vous qu’en amont lors de la construction de l’interface, tout a été pensé façon top-down 😛

      (Bon ça c’était pour la petite anecdote :P)

      2 - D’un autre coté pour ceux étant plus à l’aise ou ceux aimant le challenge 😛
      Faire exactement la même chose, mais cette fois-ci avec des technos web : JS, HTML, CSS.
      Dans le but de faire un module de chat hautement personnalisable qui puisse être incrusté dans le forum.
      Pas d’interface en Javascript mais il faudra vous baser sur l’interface que je donnerai en java. C’est à dire que vos fonctions devront utiliser le même nom.
      Comme ça on gagnera du temps par la suite, et il faut que le projet soit construit de manière logique (voir plus bas) 😉

      L’avantage des 2 niveaux, c’est que tout le monde va pouvoir participer. Le seul point qui demande un peu plus de compréhension et de réflexion, c’est le transfère de données via le protocole UDP.
      Dans le niveau 2, il y a la création d’une IHM en plus et le fait d’utiliser un langage non objet (Javascript) mais à la limite ce dernier point n’est pas vraiment une difficulté.

      #Après le concours(Après le concours)

      Si le développement guidé de ce genre d’application vous plait, on pourra j’espère mettre en place des groupes de travail guidé et cohérent pour continuer les développements des applications clientes.
      Ce qui comprend notamment l’ajout de modules clients pour pouvoir interagir avec le module spécifique du serveur.
      (Car à la fin du concours les application clientes ne seront prévu que pour interagir avec le core du serveur et pas les spécificités de son module)
      Du coup, les clients seront multi-modulaires, d’où aussi cette possibilité de faire des groupes de travail plus facilement.
      (Mais bon, ça pour le concours, que se soit dans le niveau 1 ou 2, pas la peine de se prendre la tête la dessus, de la manière dont le projet sera construit si c’est bien fait, on pourra rendre l’application modulaire assez rapidement 😉 )

      #But du concours(But du concours)

      Le but de se concours pour ceux qui se considère comme “apprenant” (même si dans l’info nous sommes tous voué à être des apprenants perpétuels :P) et les autres, est de se divertir et bien sûr de se fixer des challenges accessibles.
      Mais c’est surtout un excellent entrainement en Java puisqu’on taff le réseaux, le polymorphisme, les applications modulaires etc… bref, plein de chose qu’on ne voit que rarement avec le modding mais qui sont TRÈS TRÈS utile quand on veut faire de gros mods en équipe. De toute façon tout ce qui sera travaillé dans le concours ou dans la suite du développement vous aidera énormément dans vos mods. Tant au niveau conception/architecture que codage pure et dur 😛

      #Récompense(Récompense)

      Quoiqu’il arrive, tout les participants ayant rendu quelque chose et ayant fait un minimum d’effort (juste un hello world ça compte pas bande de troll :P), aurront leurs noms mentionnés de manière visible dans les contributeurs de l’application.

      Pour le gagnant de la première partie, son mod sera utilisé in game.
      Pour le gagnant de la seconde partie, son client chat sera utilisé sur le forum.
      Ce qui à de quoi être très attrayant je trouve, surtout que le mod est prévu pour tout les joueurs de minecraft et tout les forums 🙂
      Imaginez votre client utiliser sur d’autre forums, vous aurez de quoi être fier de vous 😉

      Pour les 2 gagnants : mention spéciale dans les crédits de l’application, puis on prendra leur projet pour la suite du développement (groupe de travail si on y arrive etc… bref, j’en ai parlé plus haut).

      Par contre, il est possible qu’il n’y est pas de gagnant si le résultat final n’est pas satisfaisant et qu’on ne peut pas le reprendre pour la suite du développement.

      #Pour conclure(Pour conclure)

      Le résultat global du projet sera une oeuvre collective bien entendu 🙂
      S’il y a des mots qui vous font peur dans tout ça, ne vous inquiétez pas, vous verrez qu’in fine ce n’est pas si compliqué que ça 😉 Et vu que c’est très guidé, vous saurez exactement quoi faire et par où commencer, surtout pour le 1er niveau 😉

      Pour lancer le concours, j’ai besoin de savoir combien de personne souhaite y participer et dans quel niveau, car il faut un minimum de participant pour que le concours ait un intérêt 😉

      –------------------------------------------------------------------------------------
      Si tu trouves mon intervention pertinente, n'hésite pas a m…

      1 réponse Dernière réponse Répondre Citer 0
      • Superloup10S Hors-ligne
        Superloup10 Modérateurs
        dernière édition par

        @Blackout:

        Faire exactement la même chose, mais cette fois-ci avec des technos web : JS, HTML, CSS.

        Pour cette partie-ci, pourquoi veux-tu utilisé JS plutôt que PHP?

        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • T Hors-ligne
          totos51
          dernière édition par

          J’ai une question, comment gérer les pseudos des membres, car lié avec le forum pourquoi pas, mais cela ne risque t’il pas d’être contraignant au niveau de la vérification de l’utilisateur du pseudo?

          1 réponse Dernière réponse Répondre Citer 0
          • RedRelayR Hors-ligne
            RedRelay Moddeurs confirmés
            dernière édition par

            @‘Superloup10’:

            @Blackout:

            Faire exactement la même chose, mais cette fois-ci avec des technos web : JS, HTML, CSS.

            Pour cette partie-ci, pourquoi veux-tu utilisé JS plutôt que PHP?

            Tout simplement parce que PHP est une techno serveur et que le concours ne porte que sur le client 😉

            @‘totos51’:

            J’ai une question, comment gérer les pseudos des membres, car lié avec le forum pourquoi pas, mais cela ne risque t’il pas d’être contraignant au niveau de la vérification de l’utilisateur du pseudo?

            Voici un schémas qui récapitule un minimum les choses :

            Je gère déjà le système d’authentification et de clef d’utilisateur pour les messages 😉
            Il n’y a pas de soucis a se faire avec ça, tout a été fait en amont. C’est le module qui gère tout ça, mais de base, nous utiliseront un module que j’ai créé par défaut et qui n’est pas lier au forum. (J’ai pas envie de n’avoir que des messages de test sur le forum ( les admins non plus j’imagine xD) et que certains se retrouvent bannis 30 minutes pour avoir fait + de 5 mauvaise requête d’authentification par erreur xD
            Je ne poste pas le code source du serveur car je n’ai pas envie de vous embrouiller, puis il n’est pas entièrement finit, mais comme dit dans le post initial, le nécessaire est là pour débuter le concours.
            Je posterai le protocol et un exécutable pour lancer le serveur par contre, sans ça, vous ne pourrez rien faire 😉

            –------------------------------------------------------------------------------------
            Si tu trouves mon intervention pertinente, n'hésite pas a m…

            1 réponse Dernière réponse Répondre Citer 0
            • RedRelayR Hors-ligne
              RedRelay Moddeurs confirmés
              dernière édition par

              Pas de volontaire ?
              J’ai fait l’interface que vous devrez implémenter.
              J’ai estimé le temps du concours à 2 semaines grand maximum en prenant en compte que vous avez une autre vie à coté du forum :P.

              –------------------------------------------------------------------------------------
              Si tu trouves mon intervention pertinente, n'hésite pas a m…

              1 réponse Dernière réponse Répondre Citer 0
              • jglrxavpokJ Hors-ligne
                jglrxavpok Modérateurs
                dernière édition par

                Passe nous l’interface 😉
                Je regarderais à l’occasion

                Modérateur sur MFF. 
                Mon Github: http://github.com/jglrxavpok
                Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                1 réponse Dernière réponse Répondre Citer 0
                • Superloup10S Hors-ligne
                  Superloup10 Modérateurs
                  dernière édition par

                  Je pense que les 3/4 des membres du forum ne manipulent pas le HTML, le CSS et le JS. Pour ce qui est de l’implémentation du code dans un client Minecraft, c’est pas très facile à faire, regarde Mojang, ils ne l’ont fais qu’à partir de la 1.7.4, sachant qu’en plus, ils utilisent une librairie externe fournie par Twitch.

                  Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                  1 réponse Dernière réponse Répondre Citer 0
                  • RedRelayR Hors-ligne
                    RedRelay Moddeurs confirmés
                    dernière édition par

                    package fr.mff.bridge.client.core;
                    
                    /**
                    * Provide a interface between client and server message
                    * Each time something is send to the server, server will send back the request result code.
                    * @author EyZox for minecraftforgefrance.fr
                    *
                    */
                    public interface ICoreOut {
                    
                    //Output
                    /**
                    * Connects to the server.
                    * Server will send back a session String of 32 max characters.
                    * @param login
                    * @param pass
                    */
                    public void connect(String login, String pass);
                    
                    /**
                    * Disconnects from the server
                    *
                    */
                    public void disconnect();
                    
                    /**
                    * Posts a message to the server
                    *
                    * @param message
                    */
                    public void post(String message);
                    
                    /**
                    * Deletes all message posted before the date in parameters
                    * @param timestamp A timestamp representation of date
                    */
                    public void clear(long timestamp);
                    
                    /**
                    * Posts an anonymous message to the server
                    * @param message
                    */
                    public void broadcast(String message);
                    
                    /**
                    * Send a request to get all message which have their id > the id in params
                    * @param id The client last message id or -1 to get all message
                    */
                    public void getMessages(int id);
                    
                    /**
                    * Sends a request to get all connected users
                    */
                    public void getWho();
                    
                    /**
                    * Sends a command to the server
                    * @param cmd
                    */
                    public void sendCommand(String cmd);
                    }
                    
                    

                    Voila l’interface a implémenter. Tant que vous n’avez pas le prototype, vous ne pourrez pas commencer.
                    Vous disposerez aussi d’une interface déjà implementé qui vous servira pour contruire votre programme.

                    package fr.mff.bridge.client.core;
                    
                    public interface ICoreIn {
                    public void readWho(String user);
                    public void readCommand(String command, int status);
                    public void readMessage(String date, String author, String message);
                    }
                    

                    Donc cette dernière est déjà implémenté, vous n’aurez qu’a utiliser les méthodes.

                    @Superloup :
                    C’est pour ça que je propose 2 concours ^^
                    Pour l’implémentation dans le client minecraft, ce sera très facile, on utilisera un mod, c’est déjà ce que tout le monde fait ici 😉

                    –------------------------------------------------------------------------------------
                    Si tu trouves mon intervention pertinente, n'hésite pas a m…

                    1 réponse Dernière réponse Répondre Citer 0
                    • RedRelayR Hors-ligne
                      RedRelay Moddeurs confirmés
                      dernière édition par

                      Dommage que ça n’intéresse pas grand monde.
                      Pourtant 2 personnes du forum sont venu me poser des questions pour savoir comment manipuler la BDD de son site ingame.

                      –------------------------------------------------------------------------------------
                      Si tu trouves mon intervention pertinente, n'hésite pas a m…

                      1 réponse Dernière réponse Répondre Citer 0
                      • Superloup10S Hors-ligne
                        Superloup10 Modérateurs
                        dernière édition par

                        Une question, avec ton système est-il possible de faire plusieurs channels? Avec des droits différents, selon les channels.

                        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                        1 réponse Dernière réponse Répondre Citer 0
                        • RedRelayR Hors-ligne
                          RedRelay Moddeurs confirmés
                          dernière édition par

                          Non pas pour l’instant, mais j’ai coder la chose de sorte a ce que l’implémentation de cette fonctionnalité soit ridiculement simple 😉

                          –------------------------------------------------------------------------------------
                          Si tu trouves mon intervention pertinente, n'hésite pas a m…

                          1 réponse Dernière réponse Répondre Citer 0
                          • GuguG Hors-ligne
                            Gugu
                            dernière édition par

                            Perso, ça m’intéresse pas vraiment ce concours, donc je n’y participerait pas.

                            Cependant, pour ceux qui débutent en programmation, c’est très bien comme truc a faire !

                            Une GUI, un connexion serveur <–> client, etc… qui permet de bien bosser sur le networking

                            "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                            ― Jordan B. Peterson

                            1 réponse Dernière réponse Répondre Citer 0
                            • 1 / 1
                            • Premier message
                              Dernier message
                            Design by Woryk
                            ContactMentions Légales

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB