Bonjour à tous et à toutes
Je suis actuellement (enfin dans mes temps libres) en train de développer un jeu MMORPG.
Je vous arrête tout de suite! Je ne fais pas un MMORPG ultra compliqué comme wow, flyff, rappelz, ou tout ce que vous voulez. Je fais un projet moyennement complexe et en version simplifiée pour commencer (ma première version fonctionnelle consiste uniquement à gérer la connexion des utilisateurs ainsi que leurs déplacements).
Bon, donc pour en venir à ma question, j'aimerais que quelqu'un m'explique le fonctionnement d'un deamon.
J'ai déjà cherché ailleurs, mais personne n'a su me donner une réponse précise.
Comment dois-je diviser les tâches dedans ?
Suis-je sensé créer un cahier des charges juste pour le serveur ? lister tout ce qu'il doit faire, puis séparer ça en module ?
Voici la meilleure réponse que j'ai eu sur ce sujet :
Est-ce une bonne chose ? avez-vous une meilleure solution ? est-ce que ces modules doivent tous communiquer par message ou ils devraient tous avoir un pointeur sur les autres afin de faire des appels directs de méthode ?J'ai aussi déjà fais des recherches là dessus, et globalement on peut lire que 1t/client ça donne tout de suite beaucoup de threads et qu'on perd alors de l’efficacité, mais que 1t/tâche permet d'avoir une bonne moyenne : Tu peut prendre par exemple :
Thread 1: Base de donnée;
Thread 2: Logs;
Thread 3: Connecter/Déconnecter les client;
Thread 4: Recevoir les données;
Thread 5: Envoyer les données;
Thread 6: Gérer le monde ou la map/carte;
(parce que sur mon client, je fonctionne : Engine est maître, Sound, Network, Graphics, Event sont d'autres modules simplement. Chaque module tourne dans un thread et fais ce qu'il doit faire. Ils communiquent tous en appels direct excepté Network, qui envoie les messages reçus sosu forme de structure à engine, pour qu'il puisse les traiter. mais plus j'y pense, plus je me demande si je devrais pas "inclure" Engine dans Network...)
Merci et bonne journée
Partager