Partage
  • Partager sur Facebook
  • Partager sur Twitter

Communication Client / Serveur pour un MOBA

    10 mai 2019 à 17:50:45

    Bonjour, je suis actuellement en train de développer un jeu vidéo de type MOBA (ex. League of Legends, DotA2, etc.)

    /!\ Si vous n'avez aucune connaissance dans ce style de jeu vidéo, je pense que vous ne comprendrez pas très bien mon problème. /!\

    Cela fait maintenant 5 mois que je suis sur le projet, j'ai déjà un serveur fonctionnel et un client qui fonctionne, en lançant le programme on atterit sur une map avec des tourelles, des sbires etc., si un autre joueur se connecte on le voit, les mouvements également;

    par ailleurs tout est fluide pour le mouvement, j'utilise un algorithme tout simple:

    - Si on clique sur un endroit de la map, le client envoie les coordonnées au serveur

    - Le serveur de son côté déplace le joueur et envoie les positions et la direction du joueur à touts les clients connectés à une fréquence de 10Hz

    - Le client déplace le joueur "virtuellement" tout en checkant si les positions envoyés par le serveur correspondent avec les positions locales, tout ceci pour éviter les tentatives de cheat et permettre une fluidité tout de même.

    Venons-en à ma question: Maintenant, je dois m'occuper des tourelles et des sbires; il faut savoir que le serveur a sa propre "partie" et tous les clients ont leur partie locale à eux, celles-ci sont en correspondance avec les données communiqués entre client et serveur.

    Je n'arrive donc pas, malgré mes intenses moment de réflexions, à trouver l'algorithme le plus optimisé pour gérer la partie.

    Qui doit gérer l'update des sbires, les attaques, etc. ? Le serveur ? Le client ? La contrainte est d'éviter les tentatives de triche, néanmoins afin d'avoir un rendu fluide et jouable, je n'arrive pas à déterminer un algorithme adéquat.

    Donc, selon vous, quel serait l'algorithme le plus optimisé pour cet situation (vous devez absolument connaître un MOBA pour comprendre parfaitement le cas):

    - Le joueur clique sur un autre joueur donc il le prend comme "target"

    - Le joueur attaque donc cet autre cible

    - Si le joueur clique ailleurs, alors la target change (devient null ou prend une autre cible)

    Qu'est ce qui devrait se dérouler côté serveur ? côté client ? Faut-il que je virtualise un des évènements côté clients ? (autrement appelé dead reckoning si je ne m'abuse)

    Merci pour votre réponse, j'essaie d'être le plus explicite possible, mais comme dit précédemment il est préférable de connaître au moins un MOBA pour bien comprendre mon problème

    • Partager sur Facebook
    • Partager sur Twitter

    Communication Client / Serveur pour un MOBA

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown