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++] Développement Client/Serveur: Quel est le principe?


Sujet :

Développement

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut [c++] Développement Client/Serveur: Quel est le principe?
    Bonjour à tous,

    Je voudrais avec un ami développer un jeu de stratégie en réseaux.
    J'aimerais que l'on m'explique clairement le principe global (et plus si affinité) d'une application client/serveur, plus particulièrement d'un jeux.
    Prenons un jeux simple comme un jeux de stratégie. Imaginons qu'il soit essentiellement dédié au multijoueur.
    Imaginons une partie entre le joueur A et le joueur B.
    Intéressons nous au joueur A.
    Il y a donc un Moteur de Jeu. Je n'ai pas une idée très précise de celui-ci. En effet, peu de site ou de forum précise réellement les étapes globales de celui-ci. J'ai donc imaginé:
    - Situation T
    - Gestion des entrées-utilisateur
    - Calcul des modifications que celles-ci impliquent en fonction de la situation T
    - Application des modifications
    - Génération d'un "état de la partie" pour le joueur A
    - Envoi de cet "état" au serveur
    - Réception de l'"état" du joueur B qui induit une situation T+1 qui deviens la sitation T précédente du au fait que ce soit une boucle.
    (Commentaires sur cela fortement appréciés, car même en l'écrivant, je ne suis pas certain que ça fonctionne ).

    Je peux installer cette application. Ensuite je peux la lancer. Je me retrouve sur un menu. Je veux jouer sur internet donc imaginons un hall avec des parties qui s'affichent. Je rejoins une partie. Je joue. Le moteur du jeu tourne. Je voudrais ainsi savoir comment envoyer cet "état" de la partie au serveur. Comment cela fonctionne? Le serveur est-il particulier? Concrètement, qui a-t-il comme fichiers sur le serveur (des .php, des .exe, etc...).

    En clair, que dois-je faire concrètement en c++ pour qu'une information soit envoyée vers un serveur, il y a un "bidule" qui dit "oki jte stock ça" puis pour une demande d'infos "Tiens voila c'est ça que tu voulais". Comment la communication ce fait-elle? Quel est le programme sur le serveur?

    Est-ce que je me trompe totalement ou est-ce que en fait il y a un super secret que personne ne veux révéler?

    Je n'ai peux-être pas mis toutes mes idées dans ce post, je reposterais en fonction des réponses.

    Merci d'avance,

  2. #2
    Membre éclairé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Par défaut
    Bonjour,

    Si tu en as à ce point de reflexion, je te conseille de déjà cmmencer par un Tetris, puis un Tetris en reseau. Parce que vu tes questions, tu as u chemin à parcourir...

    Ceci dit, sans animosité hein.

    Sinon, rapidement :
    - Les clients ne décident pas de ce qu'ils font, ils le demandent au serveur qui gère toutes les commandes. Cela permet d'éviter la triche et de bien synchroniser tous les clients. Limite, les clients ne font que de l'affichage.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Je t'avouerai que je n'ai jamais fait de tetris ou de pacman. Cependant dans mon école nous avons bouffés plusieurs projets en C et en C++, plus ou moins terminés selon les projets. Mais nous n'avons pas vu l'aspect mise en réseau de ceux-ci.

    Le client n'envoie que les entrées utilisateurs au serveur? Oui, intéressant. A tout moment il calcule les changements, envoie des messages d'erreur du style "t'as pas assez de nourriture". Le client pourrait demander tout le temps la mise à jour de l'"état" général.

    Au point de vue du client en C++, comment cela se passe-t-il? Et puis surtout au niveau du serveur? Est-ce un serveur spécial? Qui a-t-il dessus? Un .exe qui tourne en boucle?

  4. #4
    Membre éclairé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Par défaut
    Citation Envoyé par _pouet Voir le message
    Je t'avouerai que je n'ai jamais fait de tetris ou de pacman. Cependant dans mon école nous avons bouffés plusieurs projets en C et en C++, plus ou moins terminés selon les projets.
    Quand je lis ca et ca
    Citation Envoyé par _pouet Voir le message
    Comment cela fonctionne? Le serveur est-il particulier? Concrètement, qui a-t-il comme fichiers sur le serveur (des .php, des .exe, etc...)
    Cela me fait plutot peur. Tu veux faire du C++ et tu parles de fichiers PHP.

    Vous n'avez donc jamais fait de réseau. Je te conseille ce tutoriel afin, déjà, de te familiariser avec le concept d'un réseau et de "comment on fait du réseau ?".

    Enfin, pour ta question, un serveur est, en effet, un programme qui tourne en permanence sur une machine et qui écoute ce que lui demande les clients. Il s'agit, bien entendu, d'un exécutable (pas .exe car cela n'a une signification que sur windows) qui utilise alors différents moyens de communication (le plus souvent les sockets) pour écouter les clients.

    EDIT : Ah oui, j'ai oublié, dans un RTS style Starcraft, c'est une machine client qui fait serveur. Dans ce cas là, en général, la machine fait tourner deux processus un serveur et un client. C'est plus facile et pratique à coder au final.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Pardon pour la confusion, mais c'était pour préciser que je voulais savoir réellement qu'y a-t-il sur ce serveur? tu parles d'exécutable, mais cela a quelle forme? Je te préviens que je ne m'attribue pas des compétences de folie en programmation et en développement, cependant j'aimerais comprendre le principe. C'est un exécutable mais pas un .exe, donc c'est quoi? un .rien? y a pas de point? Est-ce que le serveur stocke quelque chose en fait? Le serveur c'est bien une grosse boite avec une carte de mère, un processeur, un gros disque dur et c'est relié à internet? Donc à partir de là il se met pas en marche tout seul? (ou alors oui, il est devenu autonome). Peut-être que le serveur en fait est le programme qui gère tout cela..

    Tant de questions..

  6. #6
    Membre éclairé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Par défaut
    Euh, tu m'inquiètes là
    Le serveur d'une application client / serveur est un programme qui s'exécute. Le .exe ne signifie rien, mais sur une machine windows, oui ca sera un .exe.

    Il stocke des choses, ca depend du type de serveur et de l'application. Dans le cas d'un RTS, l'exécutable du jeu contient donc le serveur pour, par exemple, jouer en LAN. Le programme se coupe en deux un serveur et un client.

Discussions similaires

  1. Client serveur : quel algorithme choisir
    Par e-medi dans le forum Réseau
    Réponses: 1
    Dernier message: 15/07/2007, 22h54
  2. Quel est le principe de cette technologie
    Par epock29 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/03/2007, 09h54
  3. [client/serveur] Quel est format de requêtes Client/BDD ?
    Par sotuxan dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 05/03/2006, 12h52
  4. Réponses: 7
    Dernier message: 06/04/2005, 19h18
  5. Quel outil pour du développement Client/Serveur (Win XP) ?
    Par jey_bonnet dans le forum Débats sur le développement - Le Best Of
    Réponses: 5
    Dernier message: 02/11/2002, 14h57

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