IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

[C réseau débutant] jeu


Sujet :

Développement

  1. #1
    Membre régulier
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Points : 87
    Points
    87
    Par défaut [C réseau débutant] jeu
    bonjour !

    j'ai créé il y a peu un petit jeu de bataille navale en C mode console, et j'aimerai maintenant le faire en multijoueur sur internet, deux joueurs devront s'affronter.

    seul problème, je n'ai jamais fait ce genre de chose, et même si je comprend les bases du client/serveur (j'ai fait quelques petites applications clients basées sur les protocoles http, smtp...) et les sockets en C, je vois pas très bien comment m'organiser pour mon truc

    ce que je pense :
    il me faut une application serveur, et une application client.
    l'application serveur ouvre le port de mon pc concerné par le jeu, et contient un interpréteur de données, en fait il faut que je m'invente un protocole de transfert de données maison c ça ?

    l'application client est chargée de se connecter a l'ip de l'hote.

    problèmes, il faut envoyer les données vers l'application de l'adversaire, sous quelle forme ? je ne vois pas (structures ? tableau ?qu'est-ce que je peux transmettre...??)


    bref j'ai besoin d'un peu d'aide pour y voir plus clair
    je ne trouve pas vraiment de site sur ce sujet particulier

    voici l'application telle quelle est pour le moment, un joueur ne peut jouer que contre le pc : http://astrosurf.com/nicoastro/tempC-C++/bataille/


    merci de votre aide

    a+
    --
    Heimdall

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 259
    Points : 97
    Points
    97
    Par défaut
    Bonjour.

    Désolé, je n'apprte pas de réponse au problème mais ca doit faire 6 mois que je bataille à demander partout la même chose !!!
    Je m'interesse aussi au réseau et j'aimerais faire un jeu de cartes sur internet. Alors bonne chance pour avoir des réponses.

    @ +

  3. #3
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut Re: [C réseau débutant] jeu
    Citation Envoyé par Heimdall
    bonjour !
    ce que je pense :
    il me faut une application serveur, et une application client.
    l'application serveur ouvre le port de mon pc concerné par le jeu, et contient un interpréteur de données, en fait il faut que je m'invente un protocole de transfert de données maison c ça ?
    Tout a fait. Tu auras un serveur sur ta machine qui ecoutera un ou des ports de connexion. Le client n'ayant plus qu'a se conencter sur cette machine.
    Ensuite pour que le client et le serveur se comprenne, il va te falloir definir un protocole d eocmmunication plus ou moins compliquer. Un protocole simple serait mieux. Tu pourras ensuite utilise rune librairie comme ssl pour le faire cryptage des donnees (mais ce n'est pas le plus important dans l immediat)

    Citation Envoyé par Heimdall
    l'application client est chargée de se connecter a l'ip de l'hote.

    problèmes, il faut envoyer les données vers l'application de l'adversaire, sous quelle forme ? je ne vois pas (structures ? tableau ?qu'est-ce que je peux transmettre...??)
    Tu envoies les donnes sous forme de chaine de caractere ou binaire selon ton protocle predefini. (tu peux crypter comme j ai dit auparavant)
    Pour transmettre tu utiliseras bien entendu les socket d'Unix ou les winsocks sous windows.

    Citation Envoyé par Heimdall
    bref j'ai besoin d'un peu d'aide pour y voir plus clair
    je ne trouve pas vraiment de site sur ce sujet particulier
    J'espete que cela va t aider et si tu veux plus d'information demande.

    Citation Envoyé par Heimdall
    merci de votre aide

    a+
    De rien.

  4. #4
    Membre régulier
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Points : 87
    Points
    87
    Par défaut Re: [C réseau débutant] jeu
    [quote="nyal"]
    Tout a fait. Tu auras un serveur sur ta machine qui ecoutera un ou des ports de connexion. Le client n'ayant plus qu'a se conencter sur cette machine.
    Ensuite pour que le client et le serveur se comprenne, il va te falloir definir un protocole d eocmmunication plus ou moins compliquer. Un protocole simple serait mieux. Tu pourras ensuite utilise rune librairie comme ssl pour le faire cryptage des donnees (mais ce n'est pas le plus important dans l immediat)

    l'application client est chargée de se connecter a l'ip de l'hote.
    [\quote]

    ok donc j'ai compris le principe, maintenant pour définir mon protocole, ça veut dire que le serveur doit comprendre ce que le client lui envoie, et lui renvoyer une réponse ?(test ?)

    Tu envoies les donnes sous forme de chaine de caractere ou binaire selon ton protocle predefini. (tu peux crypter comme j ai dit auparavant)
    Pour transmettre tu utiliseras bien entendu les socket d'Unix ou les winsocks sous windows.
    ok pour le chaines de caractères, mais ça va pas aller du tout pour mon truc vu que c'est un jeu basé sur une grille.... je dois transmettre les coordonnées de tir (après qu'elles ont été vérifiée), donc un tableau de deux entiers par exemple...

    transmettre un tableau c'est des donées binaires ça ?
    (un peu comme si je sauvais un tableau dans un fichier binaire ?)



    en gros pendant la partie ça se passerai ainsi :

    saisie des coordonnées de tir joueur 1
    vérification que les coordonnées sont dans la grille
    si oui envoyer tab_tir[2] a joueur 2
    joueur 2 reçoit tab_tir[2]
    les coordonnées de tir sont testées, si case déjà tirée ou bateau coulé présent on revoit un message pour dire de rejouer

    si la case est vide, on renvoit un message "tir dans l'eau" par exemple...
    --
    Heimdall

  5. #5
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut Re: [C réseau débutant] jeu
    Citation Envoyé par Heimdall
    ok pour le chaines de caractères, mais ça va pas aller du tout pour mon truc vu que c'est un jeu basé sur une grille.... je dois transmettre les coordonnées de tir (après qu'elles ont été vérifiée), donc un tableau de deux entiers par exemple...

    transmettre un tableau c'est des donées binaires ça ?
    (un peu comme si je sauvais un tableau dans un fichier binaire ?)
    Ce n'est pas impossile de transmettre des chaines de caractere. Le bianire ou la chaine de caractere est un mode de codage des donnees ca n'influe en rien sur la donnee en elle meme.
    Il suffit juste d'ecrire d'un cote dans un format donnee et de la recuperer de l'autre dans le meme format.

    Par exemple, pour envoyer les deux coordonnees, tu peux soit envoyer en binaire deux int representants les deux coordonnees (ou le tableau c'est pareil) mais tu peux aussi envoyer une chaine de caractere contenant les deux coordonnes converti en ASCII et separe par un caractere special.

  6. #6
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut Re: [C réseau débutant] jeu
    Citation Envoyé par Heimdall
    ok donc j'ai compris le principe, maintenant pour définir mon protocole, ça veut dire que le serveur doit comprendre ce que le client lui envoie, et lui renvoyer une réponse ?(test ?)
    Oui tout a fait. Il y a un echange entre les deux. Tu fais une action et tu envois au serveur. Le serveur va alors traiter l'action et il va te repondre. Soit en envoyant la nouvelle grille ou en te disant que ton action est impossible ou il n'a pas compris le message envoye. (Ce sont des exemples)

    Citation Envoyé par Heimdall
    ok pour le chaines de caractères, mais ça va pas aller du tout pour mon truc vu que c'est un jeu basé sur une grille.... je dois transmettre les coordonnées de tir (après qu'elles ont été vérifiée), donc un tableau de deux entiers par exemple...

    transmettre un tableau c'est des donées binaires ça ?
    (un peu comme si je sauvais un tableau dans un fichier binaire ?)
    Ton probleme n'est pas du point de vue reseau mais C par exemple.
    Il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    typedef struct {
        int     titi;
    }           trame_t;
    
    /* cote serveur */
    write(sd, &titi, sizeof(titi)); 
    
    /* cote client */
    
    read(sd, &titi, sizeof(titi));
    C'est du code et cela n'a pas trop de rapport.

    Citation Envoyé par Heimdall
    en gros pendant la partie ça se passerai ainsi :

    saisie des coordonnées de tir joueur 1
    vérification que les coordonnées sont dans la grille
    si oui envoyer tab_tir[2] a joueur 2
    joueur 2 reçoit tab_tir[2]
    les coordonnées de tir sont testées, si case déjà tirée ou bateau coulé présent on revoit un message pour dire de rejouer

    si la case est vide, on renvoit un message "tir dans l'eau" par exemple...
    Oui c'est possible. A toi de definir ton protocole de communication client-serveur.

  7. #7
    Membre régulier
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Points : 87
    Points
    87
    Par défaut Re: [C réseau débutant] jeu
    Citation Envoyé par gl


    Ce n'est pas impossile de transmettre des chaines de caractere. Le bianire ou la chaine de caractere est un mode de codage des donnees ca n'influe en rien sur la donnee en elle meme.
    Il suffit juste d'ecrire d'un cote dans un format donnee et de la recuperer de l'autre dans le meme format.

    Par exemple, pour envoyer les deux coordonnees, tu peux soit envoyer en binaire deux int representants les deux coordonnees (ou le tableau c'est pareil) mais tu peux aussi envoyer une chaine de caractere contenant les deux coordonnes converti en ASCII et separe par un caractere special.

    ok j'avais bien compris ça, mais ça me parait un peu mal approprié d'envoyer les données en chaine de caractères puisque ça oblige a "décoder" le message une fois reçu pour en extraire les info utiles... chose qu'on a pas a faire qd on envoit en binaire
    --
    Heimdall

Discussions similaires

  1. [Turbo Pascal] [Débutant] Jeu de la vie
    Par Zeo72 dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 15/06/2008, 00h54
  2. [débutant] jeu à base de dés
    Par Tilk*sg1 dans le forum C++
    Réponses: 10
    Dernier message: 04/06/2008, 16h28
  3. Réponses: 12
    Dernier message: 11/05/2008, 22h05
  4. [Débutant] jeu du Yam
    Par miagistevn dans le forum Général Java
    Réponses: 6
    Dernier message: 16/05/2006, 22h55
  5. [Débutant] Jeu Morpion en C++ avec OpenGL
    Par Paulinho dans le forum OpenGL
    Réponses: 2
    Dernier message: 31/03/2006, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo