Partage
  • Partager sur Facebook
  • Partager sur Twitter

Communication serveur/client

    29 juillet 2007 à 0:26:24

    Bon, la c'est assez difficile pour moi vu que c'est le premier jeu réseau que je fait.

    J'ai besoin de savoir ce que les programmeurs font d'habitude coté interactions serveur client.
    Parce que moi je suis nouveau la dedans, et pis je profite des vacances d'été :) (je m'en vais en secondaire 4, ou 3e pour les francais) pour m'améliorer en programmation. J'ai l'intention d'avoir une carrière la dedans... Mais c'est dans longtemps et c'est un rêve :D

    Bon revenons à nos moutons
    Au début j'ai pensé coder quelque chose qui ferait ca:
    -envoyer une requête "whatnew" au serveur.
    -le serveur renvoie tout les éléments nouveaux(il se souvient ceux qu'il m'a donné)
    -puis envoyer une requête "whatdead" au serveur.
    -le serveur renvoie tout les éléments disparus(genre qui sortent du screen ou qui meurent etc...)
    ... mais je vois pas trop comment coder ca avec les animations... :o

    Alors je me suis dit que je pourrais faire ca:
    -a chaque frame le serveur envoie une liste de toute les images(pas les images... juste leur id et leur position eg [[int 923,pos (92,122)],[int 223,pos (1,721)],...])

    mais si ca prend disons 2 bytes pour l'id pis 4 bytes pour la pos ca fait 6 bytes...
    1000 images et pis ca fait 6kb...(c'est bcp 1000 images pour mon jeu), a 30 FPS ca va exiger du 360 kb/s :-°
    disons qu'il y a en moyenne 100 images ca fait 600 bytes *30 ca fait 36 kb/s :euh:
    si il y a 50 utilisateurs connectés ca voudrait dire 1800 kb/s... :'(

    Je me suis dit que un serveur de jeux ca fait pas du 72 Mb/s :waw: quand il y a 2000 utilisateurs connectés...
    :'(

    Alors cette méthode est pas bonne non plus. :colere:

    Je suis a court d'idées...
    Quelqu'un à un algo a proposer ou un site qui donne des trucs/techniques/exemple la dessus?
    Ou une idée ou une proposition...

    c'est pas que je veux faire un truc a 2000 usagers mais ca m'intrigue et si je fait un petit jeu réseau ca va aider la connection...
    • Partager sur Facebook
    • Partager sur Twitter
      30 juillet 2007 à 3:50:25

      Envoyer à chaque frame c'est du suicide lol ^^
      Bon déjà la requête "what's new" ou "what's dead" elle sert à rien, ce qu'il faut c'est fixer un temps x, et toutes les x secondes le serveur envoit au client les données sur les autres utilisateurs (position, état, action, etc).

      Citation : Manux

      1000 images et pis ca fait 6kb


      Faux, il en faudrait 1024 pour que ça fasse 6KB :p
      • Partager sur Facebook
      • Partager sur Twitter
        30 juillet 2007 à 4:09:55

        Faudrait peut-être nous dire quel types de jeux (FPS, RPG, poker, etc...) ça sera? Le processus diffère beaucoup selon les types de jeux.

        [Hors Topic] Sinon tu peux toujours demander a ton prof d'informatique il est la pour ça, en secondaire 4 y'a des cours de programmation qui se donne, enfin c'est pas toutes les écoles non plus qui l'offre.[/Hors Topic]
        • Partager sur Facebook
        • Partager sur Twitter
          30 juillet 2007 à 15:34:20

          Je comprend pas ton histoire des images...

          Je suis moi meme entrain de concevoir un mmorpg et je ne vois ce que tu veux dire...
          1 fps normal exige 4ko/s / joueur en moyenne.

          A+
          • Partager sur Facebook
          • Partager sur Twitter
            30 juillet 2007 à 16:24:26

            Que dirais-tu de séparer ce qui est dynamique de ce qui est statique et d'envoyé tout ce qui est statique côté client et seul les choses dynamique (position des autres joueurs, des objets, des ennemis*, des évènements*) côté serveur...

            * des exemples qui ne s'appliquent peut-être pas à ton jeu.

            l'idée est de coupé vraiment finement tout ce qui n'est pas nécessaire à l'intéraction entre les joueurs et de l'éliminer du serveur... par exemple la carte d'un MMORPG est côté client : tout les objets statiques n'ont pas à être envoyé à chaques requêtes et si la carte change on a qu'à faire une mise à jour. Même les objets "dynamiques" de la carte (coffre, porte, levier) sont placés du côté client tout ce qu'on vérifie avec le serveur c'est les différents événements possible : la porte est elle barrée, le levier effectu-t-il une action. Tout ces objets "dynamiques" peuvent avoir un ID et être manipulé par le serveur.
            • Partager sur Facebook
            • Partager sur Twitter
              30 juillet 2007 à 19:03:35

              Oui mais pour ne pas se faire "hacker" le jeu (un joueur remplace les maps par un plane il faut quand meme gerer les collisions via le serveur sinon ca va etre vite vu...

              Puis tu recois la position tu la stock dans ton mysql disons 60 fois par secondes. Le serveur envoie tout le reste.

              Exemple : Tu te connect le serveur envoie ton ancienne position a toi meme et tout les autres joueurs. le serveur t'envoie ensuite la position de tout les joueurs dans une sphere autour de toi disons de 200 unite ce qui limite le nombre d'envoie au lieu de 4800 joueurs il t'en envoie que disons au hasard 30 !!!
              Et ainsi dessuite a pars que par la suite tu dois gerer le monde les evenement.
              Mais tu preferes utilise des texte bizzares comme }%Z@@)# pour annoncer que les identifiants sont bon.
              Sinon n'importe qui peut contrefaire ton serveur...
              • Partager sur Facebook
              • Partager sur Twitter

              Communication serveur/client

              × 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