Partage
  • Partager sur Facebook
  • Partager sur Twitter

[jeu web]synchroniser deux joueurs

Anonyme
    17 août 2014 à 23:29:20

    Bonjour,

    Je ne sais pas si je poste dans le bon forum (j'hésitait avec le forum php), si je me suis trompé merci de me corrigé!

    J'ai quelques bases en html/css/js et pour m’entraîner j'ai coder un petit jeu, disons un jeu d'échec.  On peut lancer une partie, et déplacer les pièces sur l’échiquier en cliquant. 
    Pour l'instant le joueur joue tout seul contre lui même.

    J'aimerait faire en sorte que les joueurs puissent se connecter sur le site et crée une partie. Une fois la partie crée, le créateur reçoit une clef qu'il doit transmettre à un ami qui va se connecter, entrer la clef et rejoindre la partie. Ainsi seul les gens qui se connaissent peuvent jouer ensemble!
    Je pense être capable de crée ce genre de système avec du php/mySQL sans trop trop de difficultés.


    Par contre, je n'ai pas d'idée pour faire en sorte que quand les deux joueurs sont connectés ils partagent le même échiquier, c'est à dire que quand l'un déplace une pièce l'autre voit la modification immédiatement sur son écran, et donc que les deux aient le même timmer (qui compte le temps que dure la partie, le temps qu'il reste pour jouer etc..).
     Vers quel langage dois-je me tourner pour implémenter de telles fonctionnalités de synchronisation ? Mon but est avant tout de pouvoir faire jouer les joueurs à tout de rôle, de maniére à ce que chaqun voit sur son écran les modifications de l'autre et ne puisse lui plus jouer pendant ce temps..


    Merci d'avance pour vos réponses! 

    • Partager sur Facebook
    • Partager sur Twitter
      17 août 2014 à 23:51:35

      Tu as déjà les langages en main pour le réaliser, à savoir PHP, Javascript et tes notions de bases de données.

      Ce qu'il te faut maintenant, c'est une méthode que tu ne connais peut-être pas encore : l'AJAX.

      L'AJAX est une façon de travailler utilisant la plupart du temps du Javascript et du PHP pour effectuer des requêtes serveur dynamiquement, je t'invite donc à te renseigner dessus.

      Il y a plusieurs façons de faire de l'AJAX, tu peux le faire en Javascript natif ou en jQuery, et je te conseille vivement l'AJAX en jQuery qui est beaucoup plus simple et rapide à mettre en place.

      Voilà qui pourra t'aider : La méthode expliquant le concept de l'AJAXjQuery.ajax et jQuery.post

      (Quand t'auras lu le cours, mon conseil personnel vise à utiliser les fonctions jQuery afin d'éviter d'implémenter des XMLHttpRequests)

      Je te préviens, créer un jeu web dynamique synchronisé entre deux joueurs n'est vraiment pas évident quand on débute en AJAX, tu vas devoir t'accrocher ^^

      Si t'as besoin de conseils n'hésite pas ;)

      Bon courage ;)

      -
      Edité par J-Edward 17 août 2014 à 23:57:48

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        17 août 2014 à 23:57:19



        Merci beaucoup pour ta réponse, maintenant je n'ai plus qu'a me mettre au travail :p


        Je souhaite crée quelque chose de simple, à savoir:
        -la possibilité de crée une partie de se connecter à une partie dont on connait le nom.
        -un timer généraliser qui bloquerait les possibilité de certains joueurs et laisseraient les autres jouer.. (je pensais pour ça à bettement afficher une image transparente au dessus des boutons du jeu, comme ça le joueur bloqué par l'image ne pourrait plus cliquer sur les boutons et déclencher les actions associés! OK c'est sans doute pas la meilleure technique au monde, mais ça me semble capable de faire ce qu'on lui demande non? :p )

        Du coup je penses qu'avec un peu d'entrainement et de réflexion de je devrais pouvoir mettre en place un systéme de ce genre :)

        j'ai déjà réussit à faire un système d'auto complétion en JS, avec une fonction qui est appelée toute les 0.5s et récupère le texte entrée par l'utilisateur. Puis elle le compare avec les éléments d'un tableau et affiche les éléments qui contiennent la chaîne entrée, et n'affiche pas les autres!

        -
        Edité par Anonyme 18 août 2014 à 0:04:39

        • Partager sur Facebook
        • Partager sur Twitter
          18 août 2014 à 0:03:56

          En fait, tu as besoin d'apprendre vraiment la méthode jQuery si tu décides de programmer en jQuery et non en Javascript natif.

          Cependant, si ce n'est pas à l'ordre du jour pour toi, rien ne t'empêche de continuer à développer en Javascript natif et d'utilier jQuery uniquement pour tes appels AJAX.

          Pour répondre à ta question, je vais te citer un prof que j'ai eu en web à une certaine époque : "jQuery vaut vraiment le coup pour l'AJAX, utilisez-le même si vous ne l'utilisez que pour ça"

          En fait c'est juste que jQuery va te permettre de mettre en transparence pas mal de travail en ce qui concerne l'AJAX et te permettra de réussir à faire de l'AJAX beaucoup plus rapidement et facilement.

          Dans mes débuts, j'avais peur d'apprendre l'AJAX, et c'est jQuery qui m'as mis le pied à l'étrier, donc je te recommande vivement cette méthode ^^

          Je le répète, tu peux très bien utiliser les fonctions jQuery que je t'ai donné et programmer tout autour en Javascript, donc pas d'inquiétude ;)

          Dans un second temps, tu comprendras tout comme moi que ça vaut le coup d'apprendre jQuery même d'une manière générale ;)

          -
          Edité par J-Edward 18 août 2014 à 0:05:23

          • Partager sur Facebook
          • Partager sur Twitter
            18 août 2014 à 7:57:01

            L'AJAX c'est bien mais pour une synchronisation "temps réel" (surtout pour un jeu où un timer est en place) il ne sera pas assez viable est la majorité des requêtes seront faites dans le vide. Pour une solutions optimal il faudra utiliser NodeJS qui est adapté à ce type de projet. Par contre il te faudra déjà de bonnes bases de JS.

            • Partager sur Facebook
            • Partager sur Twitter
              18 août 2014 à 8:16:51

              Tout a fait d'accord avec BoNux, l'AJAX c'est bien, mais c'est pas la réponse à tout... la W3C à standardisé un protocole depuis 2011 pour pouvoir faire du Push coté serveur et qui sert de base maintenant pour les communications temps-réel. Ca s'appelle les Websockets. Maintenant, il est vrai que ca a été démocratisé avec NodeJS mais ca ne veut pas dire que cette norme n'existe qu'a travers NodeJS. il suffit de tapez "Websocket PHP" sur google pour voir plein de librairie plus ou moins bien faites. Apres si ton jeu doit-être compatible avec des anciens navigateurs web, il existe des solutions dites de "fallback" qui vont te permettre de faire la même chose (Push coté serveur) mais avec d'autre technique comme le Ajax Long Polling / Forever Frame etc... pour les navigateurs n'implémentant pas les websockets

              -
              Edité par unnamed38 18 août 2014 à 8:17:48

              • Partager sur Facebook
              • Partager sur Twitter
              FuelDB => Base de donnée web temps réel avec websocket(Presentation)
                18 août 2014 à 8:56:10

                Je ne me suis pas encore vraiment intéressé au NodeJS, mes méthodes commencent peut-être à se faire vielles ^^

                Va falloir que j'y jette un oeil moi aussi, je prends également le conseil ;)

                • Partager sur Facebook
                • Partager sur Twitter

                [jeu web]synchroniser deux joueurs

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown