Cuando entras al universo de un juego, eres transportado temporalmente fuera de tu realidad actual.

La industria del juego ha comercializado con éxito el escapismo y, con la llegada de la computación en la nube y Edge, los jugadores pueden escapar al mismo mundo sin importar su ubicación real.

No sorprende entonces que, según Statista, se espera que la industria de los videojuegos alcance unos ingresos de 372.000 millones de dólares en 2023, unos 30.000 millones de dólares más de lo proyectado para la industria de los centros de datos.

Pero los dos sectores están interrelacionados, y el primero depende en gran medida del segundo.

Golpeando la red

Inicialmente, los desarrollos de juegos solo necesitaban que la computadora o el dispositivo del usuario fueran lo suficientemente potentes para ejecutar el estado actual de la técnica. En 1989, la Game Boy de 8 bits podía soportar un juego simple como el Tetris; pero una llegada más reciente, los Sims 4 más complicados (lanzados en 2014) necesitaban un sistema operativo de 64 bits y un procesador AMD Ryzen 3 1200 de 3,1 GHz de 4 núcleos como mínimo.

Pero junto con sus crecientes demandas locales, los juegos se han vuelto en línea, lo que permite a los jugadores en diferentes lugares competir o colaborar entre sí, en juegos cada vez más complejos. Esto significa que los juegos ahora tienen requisitos cada vez mayores de red, ancho de banda e infraestructura digital, cuyos matices varían según el caso.

Riot Games es uno de los principales desarrolladores de juegos en la industria. La compañía es particularmente conocida por su juego de batalla multijugador en línea League of Legends ( LoL ) de 2009 y el juego de disparos en primera persona de 2020, Valorant.

La empresa también funciona, casi en su totalidad, con Amazon Web Services (AWS).

“Los juegos se componen de algunas cargas de trabajo diferentes, y la infraestructura de cómputo para ellas también tiende a cumplir con diferentes requisitos”, dijo a DCD David Press, ingeniero principal sénior de Riot Games .

Los juegos en línea tienen muchas capas. Desde el sitio web donde se puede descargar el juego o donde los jugadores pueden acceder a información adicional, hasta la plataforma donde Riot recopila datos sobre los jugadores y los usa para tomar decisiones basadas en datos, hasta el servicio de la plataforma que admite todo el juego

Todos estos, en su mayoría, no requieren ninguna infraestructura diferente a la de una empresa digitalizada en un sector diferente. Las cargas de trabajo pueden ser diferentes, pero como explicó Press, no son 'especiales'.

Donde los videojuegos se cruzan con lo único, es en los propios servidores del juego que albergan la simulación.

“Si se trata de un juego de disparos en primera persona como Valorant, donde estás en un mapa corriendo y usando tus armas para tratar de derrotar al otro equipo, es una simulación de muy alta frecuencia”, explicó Press.

GettyImages-1357434535 (1).jpg
– Getty Images

Protocolo rápido

Esa alta frecuencia presenta un tipo diferente de carga de trabajo. La simulación tiende a ser muy pesada para la CPU, y Riot está ejecutando miles o decenas de miles de estos partidos, todos a la vez y en todo el mundo.

“Por lo general, es una gran flota homogénea de cómputo”, dijo Press. “Entonces, desde la perspectiva de la red, también es un poco diferente. Estas máquinas envían una gran cantidad de paquetes de protocolo de datagramas de usuario (UDP) muy pequeños”.

La simulación está creando un mundo 3D para el jugador del juego. El servidor tiene que generar, en tiempo real, cosas como los movimientos del personaje y las diferentes jugadas; en League of Legends , esto podría ser lanzar un hechizo que se mueve por el espacio y golpea a otro jugador.

Esa simulación tiene que correr increíblemente rápido.

“Estamos ejecutando la simulación muy rápidamente, y debemos poder distinguir entre un hechizo o una bala que golpea a otro jugador o falla, y luego debemos transmitir todos esos cambios a todos los jugadores que están en ese mundo.”

"Todos estos pequeños paquetes UDP llevan la información de que esta persona se mudó aquí o que esta persona lanzó este hechizo, y eso sucede tal vez 30 veces por segundo o 120 veces por segundo, según el juego".

Los paquetes UDP funcionan en los juegos porque se ejecutan sobre el Protocolo de Internet para transmitir datagramas a través de la red. A diferencia del protocolo TCP utilizado en otras aplicaciones, los paquetes UDP son pequeños y pueden evitar la sobrecarga de las conexiones, las comprobaciones de errores y la retransmisión de datos faltantes, lo que significa que pueden moverse muy rápidamente.

Pero la velocidad a la que esto puede transferirse, la latencia, también depende de la infraestructura digital disponible, y para que la nube sea compatible con la industria del juego, tiene que llegar al Edge.

League of Legends se lanzó en 2009 y, en ese momento, se ejecutaba en una infraestructura local. Pero a medida que la cantidad de personas que jugaban creció primero de cientos a miles, hasta llegar a cientos de millones, alojar esto únicamente en las instalaciones se volvió imposible.

No solo la gran cantidad de jugadores del juego creó problemas, sino que la difusión global del juego también introdujo nuevos desafíos. La latencia es directamente proporcional a la distancia entre el jugador y el servidor del juego, por lo que la TI distribuida se convirtió en un requisito para permitir una calidad de juego razonable.

AWS outpost.jpg
– AWS

Mudanza a la nube

Riot Games comenzó a trasladar sus cargas de trabajo a AWS en un proceso lento, y aún continúa.

“Comenzamos esa carga de trabajo de migración por carga de trabajo”, dijo Press. “Los sitios web fueron probablemente lo primero que movimos a AWS y luego, nuestras cargas de trabajo de datos se trasladaron a AWS bastante pronto. Y eso está siendo seguido por la plataforma del juego y el servidor del juego. Todavía estamos en el proceso de migrarlos”.

La empresa hizo esto construyendo una capa de abstracción que, internamente, se llama R-Cluster.

“[R-Cluster] computación de resúmenes, incluidas redes, balanceadores de carga, bases de datos, todo lo que necesitan los servidores de juegos de plataforma de juegos. Esa abstracción puede ejecutarse tanto en AWS como en nuestra infraestructura local, por lo que nuestra estrategia fue crear primero esa capa y migrar League a esa abstracción. Todavía se ejecutaba principalmente en las instalaciones inicialmente. Pero luego, una vez que la mayor parte de League se migró a esa abstracción, pudimos comenzar a mover más fácilmente las cargas de trabajo a AWS y nada tuvo que cambiar con LoL una vez que se dirigió a esa abstracción”.

Ese proceso se realiza región por región, y en lugar de que Riot dependa de tener centros de datos empresariales en cada región, el juego se realiza en AWS, ya sea una región de AWS, una zona local o puestos avanzados que se implementan en los datos locales de Riot.

La decisión de qué servicio de AWS usar depende de la accesibilidad en la región, y qué servicio reduce la latencia para el cliente. Según Press, Riot apunta a una latencia de menos de 80 milisegundos para League of Legends y de menos de 35 milisegundos para Valorant .

Pero según Press, se puede encontrar un equilibrio en esto. Si pusiera un servidor de juegos en cada ciudad, el servicio corre el riesgo de segmentarse demasiado.

“Si colocamos una ubicación de servidor de juegos en cada gran ciudad de los Estados Unidos, eso sería demasiado porque dividiría la base de jugadores y tendría muchas menos personas con las que enfrentarse”, dijo Press. "Es un equilibrio entre una mejor latencia y hacer que el tiempo de emparejamiento sea demasiado largo, o emparejar jugadores con otros en diferentes niveles de habilidad".

Dan Carpenter, director del segmento de juegos de América del Norte en AWS, estuvo de acuerdo: “Desea que el servidor en sí esté cerca de todos los jugadores, pero también que funcione en una capacidad de red, para que la gente de todo el mundo, ya sea alguien en Corea jugar contra alguien en Dallas, aún puede tener una experiencia similar dentro del juego en sí.

“Eso se representa desde una perspectiva de hardware, donde, por supuesto, tiene el servidor de juegos que se presenta al usuario final pero también necesita escalar muy rápidamente en el back-end, especialmente para los grandes eventos que ocurren en los juegos”.

Torneos masivos

Para juegos como LoL , que se clasifican en 'esports', los jugadores pueden participar en torneos multijugador masivos, y esos juegos ocurren simultáneamente, y la infraestructura debe estar cerca de cada usuario final.

“Necesita ese hardware cerca del usuario final, pero también con redes de alto rendimiento, almacenamiento y una variedad de otras facetas dentro del ecosistema de infraestructura que se requieren para conectarse”.

AWS actualmente ofrece 31 regiones de nube a nivel mundial y 32 zonas locales (regiones de nube más pequeñas). Cuando ninguna de estas opciones proporciona una latencia lo suficientemente baja, Riot puede recurrir a AWS Outposts.

“En ciertos casos, un Outpost, que es una pieza de hardware de AWS que instalaríamos en un centro de datos físico, podría usarse para estar más cerca de los clientes y permitir más oportunidades informáticas en el Edge”.

Los puestos avanzados acercan la computación perimetral, los servidores de juegos y el almacenamiento al cliente, que luego se conecta a la red troncal global de AWS a través de la gran fibra que conecta las regiones.

No es perfecto

Por supuesto, siempre habrá algunos lugares donde uno simplemente no puede obtener una latencia tan baja. Como ejemplo, Hawaii. Pero en su mayor parte, con Edge Computing trabajando junto con la nube, la infraestructura necesaria para los juegos en línea como los que ofrece Riot es lo suficientemente sólida como para brindar una experiencia de juego sólida.

Por supuesto, esto cambia a medida que exploramos las tecnologías de juegos de próxima generación, como las que usan realidad virtual y las que se transmiten completamente a través de la nube. Pero eso es para otro artículo.