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

Réseau et multijoueurs Discussion :

Architecture serveur mmorpg multi threader.


Sujet :

Réseau et multijoueurs

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Points : 148
    Points
    148
    Par défaut Architecture serveur mmorpg multi threader.
    Bonjour !

    Je suis développeur réseau (dans mon projet ce n'est pas mon boulot) et chef de projet de naruto abunai ( http://naruto-abunai.com ) et j'ai un problème avec la gestion des clients côtés serveur.
    Voici mon ancienne architecture :


    et voici celle qui devrait prendre sa place :


    Sachant que chaque thread peut contenir maximum 50 (nombre au hasard si vous avez une idée je suis preneur) clients, il y aura donc plusieurs threads.

    Voici mes trois question :

    - Est-ce une bonne architecture ou alors je devrais tout reprendre a 0 en fonction de vos conseils ?
    - Devrais je utiliser un thread uniquement pour les paquets UDP ?
    - Ou dois-je updater le monde ? dans les threads qui recoivent ou alors dans le thread principale ?

    Merci d'avoir pris le temps de lire.
    Cordialement,
    Maxime

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Je penses que gere les threads de la sorte c'est du suicide.

    Créé toi un thread manager ou quelque chose du genre, et ensuite penses tache. Tu t'épargneras bien des soucis

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Points : 148
    Points
    148
    Par défaut
    J'utilise boost pour les thread.
    Mais le schéma est vraiment très schématique je voulais juste montrer a peu près ce qu'il se passe.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Même si c'est schématique, je ne vois pas bien l'intérêt...

    L'utilité première des threads normalement est de parralèliser les tâches.
    Pourquoi tu aurais besoin d'un pool de thread gérant chacun un nombre parfaitement arbitraire de connexions ?
    C'est pas ce qui coûte du temps processeur...

    Il vaut mieux un thread pour chaque tâche: réception des données réseau, traitement des données joueur (éventuellement un pool), IA, environnement, etc...
    Après tu vois ça comme tu veux, mais moi ça me parait plus efficace et plus simple !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Points : 148
    Points
    148
    Par défaut
    Je comptais utiliser toutes les possibilités des multicore qui seront très nombreux quand j'aurais finis si je finis bien sur, mais tu as raison 1thread/tache sera suffisant.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Erreur de conception encore.

    while(c'est pas clair){
    Ne pas penser thread.
    Ne pas penser thread.
    NE PAS PENSER THREAD !
    }

    Merci de votre attention.

    Raisonne tache, puis dispatche tes taches dans tes threads dans deux modules séparés de ton programme. Sans quoi tu ne va jamais t'en sortir puisque obligé de gerer des problemes de thread (complexes et difficilement debuggable) un peu partout dans ton code. Si tu fais comme ça, tu fonce tout droit dans le mur. Et en TGV.

Discussions similaires

  1. Problème Socket Java architecture Serveur multi Client
    Par abdelhak_z dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 23/03/2015, 13h42
  2. Architecture Serveur Multi-thread ou pas
    Par Richard Cypher dans le forum Général Java
    Réponses: 10
    Dernier message: 11/07/2008, 14h43
  3. Réponses: 19
    Dernier message: 03/01/2007, 14h49
  4. [C#] Création d'un serveur multi-threader
    Par Yotho dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/12/2006, 11h39
  5. architecture serveur multithread
    Par hisoka dans le forum Développement
    Réponses: 2
    Dernier message: 25/11/2006, 21h05

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