ADVERTISEMENT

| Tech

Cómo Roblox soporta millones de jugadores simultáneos en juegos como ‘Grow a Garden’

Mientras los juegos más exitosos atraen a decenas de millones de jugadores simultáneos, los ingenieros se aseguran de que los jóvenes de Internet nunca tengan que lidiar con problemas de buffering.

Cómo Roblox soporta millones de jugadores simultáneos en juegos como ‘Grow a Garden’

Tan solo el fin de semana pasado, la plataforma social y de juegos Roblox alcanzó un máximo de 30.6 millones de jugadores activos simultáneos, según anunció la compañía. Un juego en particular, el simulador viral de jardinería Grow a Garden, batió récords y alcanzó un máximo de 21.6 millones de jugadores simultáneos.

Mientras que juegos anteriores de gran éxito, desde Fortnite hasta World of Warcraft, se ejecutan principalmente en servidores gestionados por sus propios desarrolladores y editores, Roblox se distingue por el hecho de que sus juegos y experiencias son creados por desarrolladores externos. Estos desarrolladores tienen la libertad de actualizar y ajustar el código de su juego en cualquier momento, ya que se espera que los servidores de Roblox gestionen la carga de tráfico, incluso actualizando la experiencia sin problemas para los jugadores que ya han iniciado sesión.

“A la mayoría de los informáticos nos enseñaron que nunca se debe publicar el código completo de una sola vez, y lo hacemos cuando el tráfico es bajo”, dice Anupam Singh, vicepresidente de ingeniería de Roblox. “En nuestro caso, es casi lo contrario”.

Las actualizaciones de juegos populares suelen atraer a grandes cantidades de jugadores, y nadie quiere quedarse atascado con una versión antigua del software mientras en redes sociales y chats circulan capturas de pantalla de las nuevas funciones. Como Roblox evita imponer límites a cuándo y cómo los desarrolladores experimentados actualizan sus juegos, el código, las imágenes y otros recursos deben distribuirse de manera casi instantánea a través de su red de servidores y su sistema de distribución de contenido, tan pronto como hayan sido validados bajo sus estándares.

Roblox tiene un sofisticado sistema de funcionamiento

Es uno de los varios desafíos que han llevado al equipo de ingeniería de Roblox a desarrollar un sofisticado sistema de planificación de capacidad y resiliencia, pruebas rigurosas y personal de ingeniería de guardia para los fines de semana, cuando los jugadores acuden en masa a la plataforma.

La compañía cuenta con una red de 24 centros de datos perimetrales en todo el mundo, que gestionan gran parte de la experiencia de juego. Cuando los jugadores pulsan el botón de jugar para iniciar un juego específico, se conectan al centro de datos más adecuado mediante un algoritmo que tiene en cuenta factores como el servidor en el que juegan sus amigos, su ubicación geográfica con respecto a los servidores y la velocidad de conexión entre el dispositivo del jugador y cada servidor. El sistema en su conjunto a veces considera hasta 4 mil millones de combinaciones de jugadores y servidores por segundo, y la compañía lleva años optimizando el proceso con el objetivo final de gestionar la incorporación de 10 millones de jugadores a las partidas en tan solo 10 segundos.

Después de todo, los usuarios de Internet de hoy ya no están acostumbrados a retrasos en la carga al lanzar contenido nuevo, especialmente los usuarios más jóvenes que constituyen gran parte de la audiencia principal de Roblox.

La clave está en los servidores perimetrales

Estos servidores perimetrales, además de la capacidad adicional de computación en la nube que puede optimizarse para satisfacer la demanda de los fines de semana, están conectados a dos centros de datos centrales que gestionan servicios como el sitio web de Roblox, el filtrado de contenido y los algoritmos de recomendación, así como el sistema de publicación de juegos. Los servidores perimetrales se conectan a estos servidores centrales a través de una red privada global, con ancho de banda redundante disponible en caso de ser necesario.

“En este trabajo he aprendido que cortar cables es algo muy habitual”, afirma Singh.

Durante esos fines de semana ajetreados, hay un horario rotativo de ingenieros de guardia listos para responder a cualquier incidente. Incluso los altos ejecutivos participan, dice Singh, y se espera que los trabajadores de guardia tengan una computadora aprobada por Roblox y una buena conexión a Internet durante esos turnos. Cuando ocurre lo inesperado, un gestor de incidentes lidera la respuesta, capaz de dar órdenes a todos —incluidos los ejecutivos—; infraestructura como la transcripción de IA está disponible para cualquier llamada necesaria. La empresa se esfuerza por evitar culpar a otros para resolver los incidentes de manera adecuada y rápida, y los gestores de incidentes tienen la facultad de asignar los recursos necesarios para realizar el trabajo.

“El personal de guardia tiene la capacidad de decir: ‘Está bien, denles 2,000 servidores más, si eso es lo que se necesita ahora mismo’”, dice Singh.

Si surge un problema que limita la capacidad, la empresa cuenta con sistemas establecidos para reducir gradualmente los servicios, aunque intenta evitar afectar a los jugadores que ya están participando en un juego y no funcionará sin algunas funciones necesarias, como el filtrado de contenido de texto.

El día a día de una semana en Roblox

El lunes, los ingenieros responsables del código relacionado con los incidentes del fin de semana se reúnen para analizar lo sucedido, y el martes, la empresa comienza a planificar la capacidad para el fin de semana siguiente. Es también cuando Roblox celebra el TACO Tuesday —martes de prueba de capacidad real—, un acrónimo de “test actual ability on Tuesday” (probar la capacidad real el martes), lo que significa que los ingenieros realizan pruebas que limitan los recursos disponibles para el código y garantizan su correcto funcionamiento en condiciones de alto tráfico. A partir de este año, Roblox también ha implementado un sistema de “pruebas de caos”, que introduce deliberadamente errores, limitaciones de capacidad y reinicios de procesos en el sistema para garantizar su correcto funcionamiento bajo presión.

Al igual que los creadores de juegos de Roblox, los ingenieros también pueden actualizar su código en cualquier momento, con cientos de implementaciones posibles durante un día laborable. Y para el viernes, el equipo está listo para desplegar y probar cualquier capacidad adicional en la nube necesaria según las proyecciones de demanda para ese fin de semana. Tomar decisiones semanales sobre la capacidad es esencial en un mundo donde los juegos pueden viralizarse en poco tiempo.

“Cada tres o cuatro semanas hay un nuevo gran impacto, así que hemos modificado nuestra planificación de capacidad para que sea semanal”, dice Singh. “Y, sinceramente, nos encantaría que fuera casi diario, así que si hay un impacto en un día, aún deberíamos poder encontrar capacidad”.

Author

Author

Sobre el autor

Steven Melendez es un periodista independiente que vive en Nueva Orleans.

ADVERTISEMENT

ADVERTISEMENT