

En nuestro seminario web bajo demanda, el ingeniero socio principal Aaron Moon analiza cómo dominar los lanzamientos de juegos multijugador, desde la arquitectura del servidor hasta las pruebas de escala.
O siga leyendo a continuación para obtener información sobre:

La clave para diseñar la arquitectura de un juego es considerar la eficiencia desde el principio. Centrarse en las métricas, el registro, la telemetría y la monetización demasiado pronto puede provocar una sobrecarga excesiva en la arquitectura del juego. Incluir todo eso en su servidor de juegos en tiempo de ejecución puede reducir el retorno de la inversión (ROI) y aumentar el costo total de propiedad.
En su lugar, comience con un producto mínimo viable (MVP) lo antes posible. Haga que el servidor funcione, el cliente funcione, su código de red y su sistema de emparejamiento estén bloqueados y luego construya desde allí. También debería considerar contratar a su proveedor de alojamiento desde el principio; puede proporcionarle soluciones e infraestructura prediseñadas que pueden ahorrarle tiempo de desarrollo.

Cuando se trata del diseño de tu juego, ¿cómo se ve lo simple? La imagen de arriba muestra un diseño complejo no solo con una instancia de servidor de juegos, sino también con muchos procesos auxiliares en la misma máquina, incluidos ejecutables de emparejamiento, registro y métricas.
Esta complejidad no necesariamente se vuelve evidente hasta que comienzas a realizar pruebas a escala, que es cuando puedes comenzar a darte cuenta de que estas cosas no funcionan bien juntas cuando hay miles de jugadores. Además, es posible que los servicios auxiliares no tengan ningún límite de recursos, por lo que pueden comenzar a canibalizar recursos en la máquina y afectar el rendimiento del jugador. Mantener las cosas simples puede ayudar a mitigar estos problemas.

En términos de diseño de servidor de juegos, lo simple es empaquetar cosas en una única instancia de servidor, como un único ejecutable y un emparejador resistente (tal vez alojado en un servicio backend en lugar de en una máquina). De esta forma, cuando uno de los servidores del juego se pierde, no se lleva consigo a otros jugadores y el área afectada sigue siendo pequeña. A escala, si tienes un servidor de juegos con este diseño que no funciona correctamente, no afectará tu experiencia de jugador.

Para ayudar a minimizar el riesgo de costos, no mantenga procesos auxiliares como depuración, observadores y emparejamiento en la misma máquina. Si te encuentras en una situación en la que un servidor de juegos muere y tienes máquinas en la nube a las que se escala, estás dejando los procesos auxiliares "zombis". Todavía están consumiendo recursos, lo que le cuesta dinero a tu estudio y no tienes forma de cerrarlos.
En su lugar, considere hacer que los procesos auxiliares, como el emparejamiento y la depuración, sean subprocesos del servidor del juego; manténgalo simple. Luego, si pierdes el servidor del juego, este se lleva consigo los subprocesos, en lugar de dejarlos ejecutándose en segundo plano. En este caso, si el servidor deja de funcionar, puede activar otro sin los recursos y costos adicionales asociados con los procesos "zombis".
Es una buena idea tener en cuenta cómo interactúa el bucle del juego con la infraestructura y cómo la infraestructura respalda el juego. Por ejemplo, si su juego tiene salas y casamenteros, debería haber una razón para entrar y salir de las salas y sesiones de esas salas.
Piensa en el tipo de diseño de sesión que tienes: ¿estás creando un juego persistente como un MMO o un juego de sesión corta en el que los tiempos de ejecución se reinician cada vez? Cada diseño de bucle de juego puede tener riesgos y recompensas. A continuación se presentan algunas consideraciones clave a la hora de diseñar sesiones de juego cortas, largas y persistentes.
En juegos multijugador con sesiones de larga duración, puede haber problemas como pérdidas de memoria, aumento del uso de RAM y más, que pueden no aparecer hasta que ejecutes el juego a escala.
A continuación se detallan algunos riesgos asociados con sesiones de juego de larga duración:
Todavía existen riesgos y consideraciones sobre la experiencia del jugador para sesiones de juego cortas. Incluso si tu partida de dos jugadores dura sólo dos minutos, facilitar cientos de miles (o más) de esas partidas simultáneas puede ser costoso y presentar riesgos.
Aquí hay algunas consideraciones para sesiones de juego cortas:
Estos son los pros y los contras de los juegos de sesiones cortas:
Ventajas:
Contras:
En los juegos multijugador persistentes (como los MMO), puede haber ciertos problemas y riesgos. Por ejemplo, soportar situaciones como migraciones de jugadores entre servidores significa que necesita un sistema backend más sólido, que incluya servidores costosos y discos duros potentes.
A continuación se presentan algunas consideraciones para los diseños de sesiones de juego persistentes:
Estos son los pros y los contras de los juegos persistentes basados en sesiones:
Ventajas:
Contras:
Es una buena idea prepararse para posibles problemas en la experiencia del jugador a gran escala. Iniciar, ejecutar y actualizar un juego multijugador puede ser caótico, por lo que es importante realizar pruebas situacionales de "resiliencia al caos" y asegurarse de que el backend de su juego esté configurado para manejar ese caos.
Por ejemplo, ¿qué sucede si todos salen del juego e intentan volver al emparejamiento al mismo tiempo? Averiguar la respuesta del backend a esa situación y configurarlo para manejar ese problema puede ahorrarle dolores de cabeza (y ayudar a proteger su reputación) a largo plazo.

Es probable que tengas que parchear tu juego durante el lanzamiento. Por eso es importante construir su infraestructura con la capacidad de aplicar parches durante la producción y el lanzamiento. Esto puede ayudar a que el caos del día del lanzamiento y la aplicación de parches sobre la marcha sean mucho más rápidos y fluidos, y el impacto en los jugadores puede ser limitado.
Una forma de abordar esto es ejecutar varias versiones de tu juego simultáneamente. Sin embargo, también deberá asegurarse de que su infraestructura pueda manejar múltiples versiones. Además, necesitarás tener un sandbox con todas las diferentes versiones.
Si ya ha incorporado la capacidad de ejecutar varias versiones simultáneamente, no habrá tiempo de inactividad ni interrupciones para los jugadores cuando aplique el parche.
Las pruebas de escala frecuentes son fundamentales, por lo que encontrar un proveedor que pueda ayudarlo debe ser una consideración importante al seleccionar sus servicios.
Una cosa importante para escalar la prueba es la teselación y desfragmentación del servidor. La teselación de servidores es una consideración de costos importante. Básicamente, primero desea utilizar máquinas metálicas económicas para el alojamiento. A medida que su base de jugadores fluctúa, también querrá eliminar rápidamente las máquinas en la nube más caras, lo cual es más rentable.
Game Server Hosting (Multiplay) evita la asignación a máquinas que son más costosas, lo que nos permite eliminarlas más rápidamente cuando el número de jugadores disminuye.
La capacidad de nuestro sistema para hacer esto depende de la vida útil de su partido. Las duraciones más cortas de las partidas nos permiten finalizar más rápidamente las asignaciones en máquinas costosas. Los partidos más largos significan que no podemos apagar las máquinas hasta que termine el partido.

¿Listo para crear tu próximo juego multijugador? Aquí hay algunos recursos para comenzar: obtenga más información sobre cómo escalar con Game Server Hosting, consulte nuestro seminario web bajo demanda sobre Game Server Hosting y Matchmaker, y explore las soluciones multijugador que ofrecemos a continuación.