Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer un server de jeu avec les sockets

Sujet résolu
    22 juillet 2007 à 13:39:22

    Bon, alors voilà.
    Je désire créer un petit serveur qui servirait à un jeu(très simple donc avec pas trop d'interactions avec le serveur)
    Mais je ne sais pas comment m'y prendre. :-°

    Si on m'avais demandé d'écrire des algorithmes voilà ce que j'aurais fait:
    (ps: je fait toujours des "tests" d'algo en python)

    #serveur
    in_msg,out,in_ip="","",""
    ip_list=[]
    while 1:
        in_msg, in_ip=connection.listen(*args*)#je sait pas trop comment mais on pourrait écrire une fonction qui retourne le message recu et l'adresse dont elle vient
        found=False
        for i in ip_list:
            if i==in_ip:
                out = do_action_with(in_msg,in_ip)
                send(connection,out,in_ip)
                found=True
        if not found:
            ip_list.append(in_ip)
            send(connection,"say_welcome+ask_id+ask_pw",in_ip)
           
     

    Bon je pourrait rajouter 2,3 trucs mais ce serait ca la base.
    do_action_with ne serait qu'un long switch:
    switch in_msg:
    case "ask_date":
        return date;
        break
    case "ask_pts":
        return points[players[in_ip]];
        break
    //etc...
     


    Et puis le client lui ne ferait qu'envoyer des messages au serveurs(après s'y être connecté?) lorsqu'il a besoin de savoir quelque chose ou lorsqu'il a battu un niveau et attendre une réponse du serveur par message.

    Alors voilà quelques questions:
    -UCP ou TCP? o_O
    -Où est-ce que je pourrait apprendre à coder ce genre de chose?(le seul tuto ici n'est pas terminé et puis bon...)
    -Existe t'il d'autres moyens simples :euh: meilleurs que celui ci?

    Oui je sais, je suis pas trop trop débrouillard mais faut me pardonner j'ai juste 13 ans et puis j'ai commencé à coder y'a un an.
    Mais je fait tout mon possible pour apprendre, et peut être un jour devenir vraiment bon :)
    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2007 à 13:57:35

      Salut,
      si tu veux j'ai un bon tuto qui te donnera les bases d'un serveur multi-thread, multi-client: http://khayyam.developpez.com/articles/cpp/multithreads/.
      Apres il te restera plus qu'à implementer ton propre protocole.
      Par contre désolé j'ai pas bien compris se que tu voulait faire avant car je connais pas le python.
      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2007 à 15:13:33

        C'est pas grave. Je vais quand même aller voir ton site.

        EDIT:Ouais, c'est pas tout à fait ce que je cherche mais je suis dans la bonne voie. Mais à propos de ce lien, c'est bien beau avoir le serveur mais ca ne me dit pas comment coder le client...
        • Partager sur Facebook
        • Partager sur Twitter
          22 juillet 2007 à 16:27:53

          Le client c'est plus simple après, sa va dépendre de ton protocole. Tu pourrait séparer la partie jeu pur et la partie réseau (envoit et récupération des données) en faisant un deuxième thread qui gère tout se qui est protocole. Tu peu faire sa sous forme de requete: le client demande une information au serveur et il lui envoit.
          • Partager sur Facebook
          • Partager sur Twitter
            22 juillet 2007 à 18:24:31

            Mouais... Tu connaiterais pas des exemples de jeu(desquels on peut voir la source évidemment) ou juste d'un programme qui demande un info au serveur,et le serveur lui même, pour que je puisse voir les interactions serveur/clients.
            • Partager sur Facebook
            • Partager sur Twitter
              22 juillet 2007 à 18:34:31

              J'ai mon bomberman mais il est pas complètement terminés et puis c'est que mon premier jeu en réseau donc c'est pas vraiment une référence.
              • Partager sur Facebook
              • Partager sur Twitter
                22 juillet 2007 à 18:46:06

                Ok bon sa marche maintenant... mais je mais quoi dans :
                DWORD serveur::ClientThread(SOCKET soc){
                        cout << "thread client démarré" << endl;

                        /*    A mettre ici : code relatif au protocole utilisé    */

                        return 0;
                }
                • Partager sur Facebook
                • Partager sur Twitter
                  22 juillet 2007 à 18:50:11

                  Eh bien justement c'est ici que tu mettra ton protocole, dans une boucle while (je pense) de ce genre: while(m_running && soc>=0)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 juillet 2007 à 21:28:52

                    Youpii ca marche!
                    Merci encore pour le lien!
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Créer un server de jeu avec les sockets

                    × 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