comment vérifier si un serveur de jeux peut gérer les clients avant la sortie du jeu?

13

nous développons un jeu basé sur iOS avec un support multijoueur. jusqu'à présent, tout semble vraiment bien mais maintenant nous voulons nous assurer que le serveur peut gérer 10000 clients ou non. une idée comment puis-je m'assurer que le serveur survivra à ce trafic?

Ali1S232
la source

Réponses:

15

Pour les tests de charge de trafic, il existe de nombreux outils, mais vous devrez également tester d'autres éléments spécifiques à votre serveur de jeu car le trafic réseau n'est qu'une partie de l'équation - l'utilisation du processeur et les requêtes de base de données constantes sont deux autres qui viennent immédiatement à l'esprit comme des facteurs importants que vous voudrez mesurer (il y aura sans aucun doute d'autres facteurs également, que vous devrez déterminer en fonction de votre connaissance du fonctionnement de votre serveur de jeu).

Un très bon moyen de le faire pourrait être d'écrire un programme client de " simulation de joueur de jeu " et d'exécuter plusieurs instances de celui-ci sur plusieurs ordinateurs. L'inconvénient est que cela pourrait nécessiter l'utilisation de beaucoup d'ordinateurs, mais certaines universités locales pourraient avoir de grands laboratoires informatiques sur lesquels vous pourriez les exécuter (le professeur pourrait être intéressé par vos résultats de test car les professeurs d'université ont tendance à être véritablement curieux de bonne recherche).

Votre client n'a peut-être pas besoin d'être aussi sophistiqué qu'un joueur, mais vous pouvez vous assurer qu'il fait les choses suivantes (il n'a pas besoin d'être très intelligent tant qu'il peut être légèrement plus fonctionnel qu'un développeur de logiciels ivre qui ne devrait vraiment pas rentrer chez elle, vous pouvez donc également vouloir signaler les personnages d'une manière spéciale afin qu'ils puissent faire des choses idiotes comme marcher à travers les murs, avoir des budgets illimités pour acheter des marchandises sélectionnées au hasard chez les marchands du jeu, avoir une infinité fournitures de munitions, etc.):

  • Envoyer un texte de discussion aléatoire sur une base aléatoire
  • Naviguez dans des directions aléatoires à travers le monde (mais avez tendance à rester plus proche des grandes villes)
  • Choisissez au hasard de tirer des armes dans des directions aléatoires lorsque d'autres joueurs sont à proximité
  • Achetez / vendez des marchandises au hasard auprès de marchands et, parfois, jetez des articles dans le monde entier
  • Allumez au hasard des objets en feu (ou provoquez d'autres formes de destruction localisée)
  • Obtenez des hordes d'animaux sauvages contrariés et courez dans une ville animée avec eux à leur poursuite, puis décidez au hasard de vous déconnecter (s'ils sont choisis pour se déconnecter, peut-être que ces animaux sauvages commenceront à attaquer d'autres dans la ville?)
  • Guérir les joueurs blessés
  • Déclenchez des sorts magiques sélectionnés au hasard dans des endroits bondés
  • Faire cuire des aliments crus, transformer du bois brut et d'autres matériaux (comme ceux provenant de l'exploitation minière), etc.
  • ... d'autres tâches simples que vos joueurs sont susceptibles d'effectuer régulièrement

Si vous estimez que vous aurez 9 000 joueurs à la fois, essayez de le tester avec au moins 3 fois ce nombre afin de savoir comment vos serveurs peuvent gérer une charge de 27 000 joueurs occupés simulés (beaucoup de joueurs ont tendance au ralenti, en particulier les types sociaux).

Aussi ( et c'est très important ), si vous faites cela, s'il vous plaît, s'il vous plaît, connectez-vous avec un personnage régulier et enregistrez une vidéo de tous ces joueurs informatisés faisant des choses stupides et partagez cette vidéo avec nous ici afin que nous puissions avoir une bonne rire (je pense que " danse de grange ivre " pourrait être un bon titre pour ce film si vous pouvez trouver le bon scénario dans le jeu)! ;-RÉ

Randolf Richardson
la source
2
Merci beaucoup pour votre réponse, je suppose que nous devons tester en utilisant ces joueurs simulés, et pensons finalement que nous utiliserons l'un des services cloud pour exécuter les clients. tout comme un sidenote, c'est un jeu multijoueur mais les joueurs ne peuvent que naviguer dans le monde et se chasser, donc presque aucune des tâches que vous avez mentionnées ne sera implémentée dans des exemples de clients! J'espère que la prochaine personne avec la même question est sur le point de sortir un jeu de simulation de vie pour tester toutes ces choses!
Ali1S232
Eh bien, testez simplement ce qui s'applique à votre jeu (vous êtes les bienvenus!). Je ne savais rien des fonctionnalités de votre jeu, j'ai donc essayé d'inclure de nombreuses possibilités dans l'espoir qu'il serait couvert.
Randolf Richardson
Certains jeux commencent également par une pré-version bêta précoce, mais cela peut être une décision difficile car il y a un facteur désagréable où un joueur peut ne pas aimer le jeu pendant sa phase bêta, puis ne revient jamais pour l'essayer (même si les problèmes rencontrés ont été résolus).
Randolf Richardson
2
-1, réponse irréaliste. Les développeurs de jeux féminins n'existent pas. (Jks, +1, a accepté de partager visuellement les résultats du test).
deceleratedcaviar
3
J'ajouterai que j'ai fait exactement cela, pour un MMO sur une console portable; les joueurs simulés étaient la meilleure chose qui soit, pour tester comment les serveurs allaient faire face au stress. Nous avons également organisé une version bêta fermée (limitée à environ 500 personnes) et j'ai utilisé les statistiques générées sur le comportement des bêta-testeurs pour régler les joueurs simulés afin qu'ils se comportent autant que les vrais joueurs que je pouvais gérer. Une fois la version bêta terminée, j'ai mis 40 000 joueurs simulés en liberté pour faire des ravages avec les serveurs. Beaucoup de chaos!
Trevor Powell
0

Ceci est une réponse à une vieille question, j'espère que cela peut être utile pour ceux qui arrivent ici par moteur de recherche. Netgend dispose d'une plate-forme de test de performances pouvant émuler 50 000 utilisateurs et peut effectuer toutes les émulations de clients flexibles.

Voir les blogs , en particulier

  • Le réseautage simplifié
  • extrait les champs des réponses du serveur
  • Test de performance avec des données binaires

Notez que le traitement des messages n'est pas limité aux messages http, il s'applique à tous les messages.

J'espère que c'est utile.

paquet
la source