2017-01-29 1 views
1

J'ai quelques connaissances en utilisant nitro-net pour développer mes jeux. A partir de maintenant, je vous envoie les données du joueur comme celui-ci:Bonne façon d'envoyer des données d'un joueur en java

  • joueur attaque
  • client envoie des données au serveur que le joueur a attaqué
  • Server envoie ces données à tous les autres connectés client
  • Les clients qui reçoivent les données vérifient quelle action a été envoyée ex ("attack_left")
  • Une instruction if vérifie quelle action a été envoyée, puis le client exécute le code pour cette action

Est-ce la meilleure façon de gérer l'envoi de données à un serveur et ensuite à plusieurs clients? Devrais-je simplement envoyer un objet joueur complet à la place?

Merci!

+0

Il n'y a pas de réponse facile ici - cela dépend fortement des ressources du serveur, de la vitesse à laquelle vous voulez que votre client soit, de la rapidité du réseau, de la complexité des données de votre lecteur, etc. – Dunno

Répondre

0

En général, oui. Il est préférable de n'envoyer que les données dont vous avez besoin. Envoyer les informations du personnage entier peut rapidement devenir un problème s'il y a beaucoup d'autres joueurs connectés au serveur. Par exemple, si vous avez 10 joueurs attaquant tous en même temps, le serveur reçoit 10 commandes d'attaque de chaque client. Le serveur devra alors envoyer chacune de ces commandes attaquantes à chaque autre client connecté. Vous obtenez donc 90 commandes [10 x 9 = 90] envoyées par le serveur. Si chacune de ces commandes envoie l'information du personnage entier, cela peut facilement devenir incontrôlable.

Si seulement un nombre limité de joueurs est connecté à la fois, vous pourrez peut-être vous en sortir en envoyant l'information du personnage entier, mais vous devriez décider du nombre de joueurs que vous voulez supporter pour votre partie.