Descripción general de Game Servers

Game Servers es un servicio de juego administrado que permite a los equipos de infraestructura de juegos implementar y administrar flotas de servidores dedicados para juegos globales. Game Servers proporciona la administración de clústeres de servidor de videojuegos con Kubernetes para la organización de contenedores y Agones para la organización de flota de servidores de videojuegos y la administración del ciclo de vida. Puedes conectar y desconectar clústeres de la administración de Game Servers en cualquier momento sin afectar ninguna sesión de las sesiones de juegos existentes. Después de desconectar un clúster, puedes continuar ejecutando una instalación de Agones de código abierto.

Tú controlas los clústeres del servidor para videojuegos con opciones globales de configuración del servidor para juegos, y definir las reglas para la ubicación y la cantidad de servidores que se deben activar, así como el objeto binario del servidor para juegos que se implementará. Game Servers crea paquetes Agones de forma automática según los lanzamientos administrados de manera central, lo que garantiza que se lancen de forma automática y segura en todos los clústeres administrados. En particular, las sesiones de juegos en curso nunca se interrumpen porque nunca se interrumpe de forma repentina un servidor de juegos en uso.

Recursos de Game Servers

En esta sección, se describen los recursos principales con los que interactúas para administrar los servidores de juegos. En la siguiente figura, se muestra cómo se usan estos recursos para implementar un proyecto de juego.

Una implementación de proyecto de juego de muestra
Figura 1. Ejemplo de implementación de proyecto de juego en Game Servers

Proyecto de Game Servers

Un entorno único, como producción o pruebas, y un proyecto de Google Cloud con Game Servers habilitado. Por lo general, para mejorar el aislamiento y la seguridad, sueles administrar un solo título de juego mediante varios proyectos de Google Cloud, como My Game production y My Game Testing.

Ubicación

La ubicación define el alcance de un recurso y el valor predeterminado es global, que proporciona la mayor disponibilidad y en el que los datos son redundantes en varias regiones de Google Cloud. Puedes configurar manualmente la ubicación de un recurso para una región de Google Cloud específica (no todas las regiones son compatibles). Si deseas controlar dónde se almacenan los datos o cuáles son tus dominios de conmutación por error, anula la configuración global predeterminada con una de las siguientes ubicaciones admitidas:

Ubicaciones admitidas

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • europe-central2
  • europe-north1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • global
  • northamerica-northeast1
  • southamerica-east1
  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • us-west2

Dominio

Game Servers está diseñado para admitir clústeres de Kubernetes que se ejecutan en Google Kubernetes Engine. Para aprovechar los conceptos de las regiones y zonas de Google Cloud, Game Servers presenta el concepto de metarregión de dominios. Un dominio es una agrupación de clústeres de servidor de juegos definida por el usuario según los requisitos de latencia del juego para las poblaciones de jugadores. Los dominios tienen una zona horaria asignada que les permite usar una configuración de escalamiento basada en el tiempo en clústeres dentro del dominio. Los dominios existen dentro de una ubicación.

Clúster de servidor de videojuegos

Un clúster de servidor de videojuegos es un subrecurso de un recurso realm. Cada clúster de servidor de videojuegos corresponde a un espacio de nombres en un clúster de Kubernetes que ejecuta Agones que está registrado en un dominio. Los clústeres de servidores para videojuegos dentro de un dominio deben considerarse equivalentes desde la perspectiva de la experiencia del usuario con respecto a mediciones, como la latencia o el rendimiento del procesamiento. El uso de un espacio de nombres que no sea default requiere que el espacio de nombres se cree en Kubernetes y Agones configurados para usarlo.

Después de crear un clúster de servidor de juegos, Game Servers crea flotas de Agones y escaladores automáticos según sea necesario. Game Servers no altera las gotas de Agones que se crearon de forma manual.

Después de borrar un clúster de servidor de juegos, Game Servers no borra ningún recurso del clúster, incluidas las flotas de Agones y los escaladores automáticos creados por Game Servers.

Implementación del servidor para videojuegos

Una implementación del servidor para videojuegos es un registro global de una versión de software de servidor para videojuegos que se puede implementar en cualquiera o todos los clústeres de servidores para videojuegos en todo el mundo. Una implementación de servidor de juegos es el recurso superior de los recursos de configuración del servidor de juegos y implementación.

Implementa diferentes configuraciones en distintos dominios
Figura 2: La versión 1.0 de la implementación se implementó en el dominio de los EE.UU., la versión 1.1 en implementación para Europa y Japón.

Configuración del servidor para videojuegos

Una configuración del servidor de juegos es un subrecurso de un recurso de implementación de servidor de juegos que especifica el recuento de servidores de juegos, el búfer y la versión del servidor de juego. Debes definir políticas de escalamiento en una configuración de servidor de videojuegos. Las políticas de escalamiento pueden ser estáticas o basadas en el tiempo, como se ilustra en los siguientes ejemplos:

  • Durante las horas pico, debe haber suficientes servidores para admitir N asignaciones por minuto, durante las horas de menor demanda M por minuto.
  • En el caso de los eventos de juegos planificados, aumenta la capacidad reservada por un N% para una fecha y un período.

Implementación

Un lanzamiento es un subrecurso de un recurso de implementación de servidor de videojuegos que asigna configuraciones de servidores de juegos para orientarse a reales. De forma predeterminada, un lanzamiento asigna una configuración de servidor de videojuegos a todos los dominios. Para las pruebas A/B y las pruebas Canary, puedes anular dominios específicos para recibir una configuración alternativa del servidor de juego.

Arquitectura

Game Servers expone una API del plano de control disponible de manera global, mediante la cual puedes controlar los recursos que describen la implementación mediante llamadas a la API, Cloud Console o la herramienta de línea de comandos de gcloud. Esto incluye las siguientes opciones:

  • Creación y modificación de dominios
  • Crear, registrar y modificar clústeres de servidores de juegos en dominios
  • Crear, implementar y actualizar implementaciones del servidor de juegos, configuraciones del servidor de juegos y lanzamientos

Debes tener una cuenta de servicio de Kubernetes a fin de que Agones administre los servidores de juegos en el espacio de nombres que pasas a los servidores de juegos cuando creas un clúster de servidores de juego. Si usas un espacio de nombres distinto al predeterminado, deberías crear esta cuenta de servicio como parte de la instalación de Helm.

Debes tener una cuenta de servicio de proyecto de Google Cloud para que los servidores de juegos se conecten con los clústeres de Agones. Esta cuenta de servicio se crea automáticamente cuando creas un recurso por primera vez, como un dominio o una implementación.

Cada implementación del servidor para videojuegos describe sus parámetros, equivalente a un GameServerSpec de Agones, y especifica una política para orientar los clústeres de servidores para videojuegos, en los que se deben crear flotas de servidores para juegos que ejecuten una compilación en particular. También puedes establecer preferencias de escalamiento de clúster individuales mediante políticas.

¿Qué sigue?