¿Cómo verificar si un servidor de juegos puede manejar clientes antes del lanzamiento del juego?


13

Estamos desarrollando un juego basado en iOS con soporte multijugador. Hasta ahora todo parece muy bueno, pero ahora queremos asegurarnos de que el servidor pueda manejar 10000 clientes o no. ¿Alguna idea de cómo puedo asegurarme de que el servidor sobrevivirá tanto tráfico?

Respuestas:


15

Para las pruebas de carga de tráfico hay muchas herramientas, pero también necesitará probar otras cosas que serán específicas para su servidor de juegos porque el tráfico de red es solo una parte de la ecuación: la utilización del procesador y las consultas constantes de la base de datos son otros dos que inmediatamente vienen a la mente como factores importantes que querrá medir (indudablemente también habrá otros factores que deberá determinar en función de su conocimiento de cómo funciona su servidor de juegos).

Una muy buena manera de hacer esto podría ser escribir un programa cliente de " simulación de jugador " y ejecutar múltiples instancias de este en múltiples computadoras. El inconveniente es que esto podría requerir el uso de muchas computadoras, pero algunas universidades locales pueden tener grandes laboratorios de computadoras en los que podría ejecutar estos (el profesor podría estar interesado en los resultados de sus exámenes ya que los profesores universitarios tienden a ser realmente curiosos sobre buena investigación)

Es posible que su cliente no necesite ser tan sofisticado como un jugador, pero puede asegurarse de que haga lo siguiente (no tiene que ser muy inteligente siempre que pueda ser un poco más funcional que un desarrollador de software borracho que Realmente no debería conducirse a casa, por lo que es posible que también desee marcar a los personajes de una manera especial para que puedan hacer cosas tontas como caminar a través de las paredes, tener presupuestos ilimitados para comprar productos seleccionados al azar de los comerciantes del juego, tener un sinfín de suministros de municiones y demás):

  • Enviar texto de chat aleatorio de forma aleatoria
  • Navega en direcciones aleatorias por todo el mundo (pero tiende a estar más cerca de las principales ciudades)
  • Elige al azar disparar armas en direcciones aleatorias cuando hay otros jugadores cerca
  • Compre / venda productos al azar de comerciantes y ocasionalmente bote artículos en todo el mundo
  • Encender cosas al azar al azar (o causar otras formas de destrucción localizada)
  • Molesta a las hordas de animales salvajes y corre hacia una ciudad ocupada con ellos persiguiéndolos, luego decide al azar si cerrar sesión o no (si se elige cerrar sesión, ¿quizás esos animales salvajes comenzarán a atacar a otros en la ciudad?)
  • Sanar jugadores lesionados
  • Dispara hechizos mágicos seleccionados al azar en lugares concurridos
  • Cocine alimentos crudos, procese madera cruda y otros materiales (como minería), etc.
  • ... otras tareas simples que tus jugadores probablemente hagan regularmente

Si estima que tendrá 9,000 jugadores a la vez, intente probar esto con al menos 3 veces ese número para que sepa cómo sus servidores pueden manejar una carga de 27,000 jugadores ocupados simulados (muchos jugadores tienden inactivo, especialmente los tipos sociales).

Además ( y esto es muy importante ), si haces esto, por favor, POR FAVOR, inicia sesión con un personaje normal y graba un video de todos estos jugadores computarizados haciendo cosas estúpidas y comparte ese video con nosotros aquí para que podamos tener un buen reír (estoy pensando que " baile de granero borracho " podría ser un buen título para esta película si puedes encontrar el escenario correcto en el juego). ;-RE


2
Muchas gracias por su respuesta, supongo que tenemos que probar con estos reproductores simulados, y creo que finalmente utilizaremos uno de los servicios en la nube para ejecutar clientes. solo como nota al margen, es un juego multijugador, pero los jugadores solo pueden navegar por el mundo y cazarse entre sí, por lo que casi ninguna de esas tareas que mencionaste se implementará en nuestros clientes de muestra. ¡Espero que la próxima persona con la misma pregunta esté a punto de lanzar un juego de simulación de vida para probar todas esas cosas!
Ali1S232

Bueno, solo prueba lo que se aplica a tu juego (¡de nada!). No sabía nada sobre las características de tu juego, así que traté de incluir muchas posibilidades con la esperanza de que estuviera cubierto.
Randolf Richardson

Algunos juegos también comienzan con un prelanzamiento beta temprano, pero esta puede ser una decisión difícil porque existe el factor desagradable en el que un jugador puede encontrar que no le gusta el juego durante su etapa beta, y luego nunca regresa para probarlo. nuevamente (aunque los problemas que encontraron se resolvieron).
Randolf Richardson

2
-1, respuesta poco realista. Los desarrolladores de juegos femeninos no existen. (Jks, +1, acordó compartir visualmente los resultados de la prueba).
desaceleratedcaviar

3
Agregaré que hice exactamente esto, para un MMO en una consola portátil; los jugadores simulados fueron lo mejor para probar cómo los servidores se enfrentarían bajo estrés. También realizamos una beta cerrada (limitada a unas 500 personas), y utilicé las estadísticas generadas sobre el comportamiento de los beta testers para ajustar a los jugadores simulados para que se comporten tanto como los jugadores reales como pude. Después de que terminó la versión beta, puse en juego 40,000 jugadores simulados para causar estragos en los servidores. ¡Mucho caos!
Trevor Powell

0

Esta es una respuesta a una vieja pregunta, espero que pueda ser útil para aquellos que llegan aquí en buscadores. Netgend tiene una plataforma de prueba de rendimiento que puede emular 50,000 VUsers y puede hacer todas las emulaciones de clientes flexibles.

Ver los blogs , especialmente

  • Redes hechas fáciles
  • extrae campos de las respuestas del servidor
  • Pruebas de rendimiento con datos binarios.

Tenga en cuenta que el procesamiento de mensajes no está restringido a mensajes http, sino que se aplica a todos los mensajes.

Espero que sea útil.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.