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 2D, 3D et Jeux Discussion :

Architecture d'un serveur multijoueurs niveau emmission avec utilisation thread


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 62
    Points
    62
    Par défaut Architecture d'un serveur multijoueurs niveau emmission avec utilisation thread
    Bonjours je travaille en ce moment sur un serveur multijoueur. Je me pose des questions sur l'architecture, et l'utilisation des threads.
    Pour le moment j'ai:
    -1 thread pour la partie jeu(mouvements, collisions, ect...)
    -1 thread connection(recepetion des connections, ajout joueurs)
    -1 thread reception pour chaque joueurs( reception messages, commandes joueur ect)

    J'aimerai savoir si mon debut est bon, ou si il y a un meilleur moyen.
    Mais surtout je me pose des questions sur l'emission.
    Comment faire?
    1 thread emission pour chaque?
    1 thread s'occupant de toute les emissions?
    Ou autrement?

  2. #2
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    J'ai une tendance à favoriser un système sans thread qui marche qu'un système avec qui ne fonctionne pas...

    En gros, commence par quelque chose sans thread et ensuite, si c'est bien codé le passage aux threads ne sera pas douloureux...

    Voilà c'est dit!

    Par contre, si tu es vraiment motivé:

    Je ferais un thread pour la réception des évenements joueur et j'utiliserais le même pour l'envoi. Cela ferait donc un thread pour la communication. Et je pense que ce serait très bien. Si jamais c'est pas assez bien, ce serait facile de les diviser en 2 threads...

    Sache tout de même que l'utilisation de threads a un coût s'ils sont mal utilisés.
    Tu risques de ralentir le jeu plutôt que de l'accélérer si tu en mets trop...

    Jc

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par goof_22
    Bonjours je travaille en ce moment sur un serveur multijoueur. Je me pose des questions sur l'architecture, et l'utilisation des threads.
    Pour le moment j'ai:
    -1 thread pour la partie jeu(mouvements, collisions, ect...)
    -1 thread connection(recepetion des connections, ajout joueurs)
    -1 thread reception pour chaque joueurs( reception messages, commandes joueur ect)

    J'aimerai savoir si mon debut est bon, ou si il y a un meilleur moyen.
    Mais surtout je me pose des questions sur l'emission.
    Comment faire?
    1 thread emission pour chaque?
    1 thread s'occupant de toute les emissions?
    Ou autrement?
    Si tu peux avoir accès à ce livre : http://www.amazon.fr/exec/obidos/ASI...developpec-21/
    ça t'aidera peut-être. Il faut que je jette un coup d'oeil si tu veux la réponse de ce livre à ton problème.

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    pareil,
    pour moi c'est plutot 1 thread jeu et 1 thread communication (envoi/reception) pour le client
    et 1 thread "jeu" + 1 thread communication PAR client pour le serveur

    mais en même temps, je n'ai jamais codé de jeu reseau
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 62
    Points
    62
    Par défaut
    Un seul thread? Comment faire vu que la fonction de reception attend la reception d'un message avant de continuer. le script bloquera tan k'il n'y a pas eu d'envoi non?
    ps: j'utilise winsock

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par goof_22
    Un seul thread? Comment faire vu que la fonction de reception attend la reception d'un message avant de continuer. le script bloquera tan k'il n'y a pas eu d'envoi non?
    ps: j'utilise winsock
    On utilise la fonction select qui marche sous windows pour les sockets...

    Jc

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 62
    Points
    62
    Par défaut
    Je ne peux pas utuliser winsock? Car sont utilité me plaisai bien.
    La fonction select a quoi comme avantages apat pouvoir régle le delai d'attente?

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Si, naturellement, tu peux C'est juste que c'est un Debianneux fini, l'ami fearyourself

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 62
    Points
    62
    Par défaut
    lol ok... Linux c'est pas trop mon truc, g éssayer mais ça marchais pas aussi bien que ça. Et je suis habituer a windows.
    Bon pour l'emission je vais faire un thread emission pour chaque client. j'espère que ça fonctionnera bien.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/08/2011, 15h39
  2. [Architecture] communication client/serveur client/client
    Par daed dans le forum Général Java
    Réponses: 4
    Dernier message: 28/01/2006, 23h23
  3. Installation d'un serveur Web sous Sarge avec Oracle 10.2
    Par romulus dans le forum Installation
    Réponses: 20
    Dernier message: 05/10/2005, 12h37
  4. [Architecture][Strategie] Client/Serveur Choix d'une architecture
    Par etiennegaloup dans le forum Général Java
    Réponses: 7
    Dernier message: 06/07/2005, 12h00
  5. Quel niveau réel avec uv du Cnam en cour ?
    Par nebule dans le forum Etudes
    Réponses: 6
    Dernier message: 10/04/2005, 17h11

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