cancelar
Mostrando resultados para 
Buscar en cambio 
Quiere decir: 

OPTIMIZACIÓN de Servidores e Infraestructura IT - League of Legends

Hola! --- OPTIMIZACIÓN de Servidores e Infraestructura IT - League of Legends
Nota: NO creo que alguién de Sistemas de League of Legends vea mi respuesta, sin embargo...

No es sencillo hablar de servidores y de redes, ya que el conocimiento de hardware y software a nivel empresa queda relegado por un tema central; costos, inversiones y retorno de la inversión. 

Hablando sin tanto rollo, podría implementarse una sub-red P2P-Cloud para cargar ciertos datos del juego entre los usuarios, así practicamente dado el número enorme de jugadores en el mundo, todos tendrían los paquetes del juego disponibles sin retardo. Esto nivelaría en cierto porcentaje la experiencia de juego. Claro, un conjunto de "servers centralizados" con el control propio de la red. 

Ahora, que sistema usar, con quien aliarse? Es un tema complejo, por que no es accesible a muchas empresas usar superequipos, aunque empresas como Amazon actualmente podría darse el lujo de proveer el servicio a Riot y evitar así parones del sistema; vaya, siempre estaría "status=On" independientemente del trabajo de "intranet" que exista dentro de Riot. Vaya! el flujo de actualizaciones no pararía al mundo de jugadores ... 

Invertir en Servidores Epyc Rome propios? Generar infraestructura IT con conexión directa más allá de T1 para optimizar datos de entrada y salida? No es fácil, nuevamente se requiere no solo el equipo, sino acondicionar espacios, recursos humanos y demás ... La opción con el control perfecto pero muy cara

--- Por ultimo, en el tema software por que no usar Vulkan para que el sistema sea cross entre Windows, Mac y Linux? Las librerias serían muy fáciles de compilar y adaptar, el flujo sería más accesible a desarrolladores. Sin embargo, es un trabajo enorme para un personal contenido, un reto de equilibrio financiero. Por que lo obvio sería tener más personal contratado, pero eso encarecería mucho la inversión anual y su retorno de capital

Mejorar es posible? Claro, siempre se puede ser perfectible, como los cambios fuertes que ha tenido la plataforma ultimamente, pero todo lleva tiempo y recursos y pues el ritmo de trabajo siempre será limitado por las condiciones tanto internas como las externas... estas ultimas como el COVID mismo ... que ha hecho crecer el numero de usuarios exponencialmemente

Ejemplo de lo anterior la empresa Netflix, que viendo como ante el aumento de número de usuarios se ve en la necesidad de cambiar y optimizar servidores: Netflix Servidores AMD Epyc Rome  

En fin, que opinión tendrán los chicos RIOT, usarán servidores dedicados Intel Xeon, usarán Amazon Cloud-P2P services ... Eso nadie lo sabrá 😉 

Saludos !

275432-1P-Epyc-Advantage-chart-1260x709.pngBlockchain-P2P-Network.pngLinux-POP-OS.pngmaxresdefault.jpg

5 RESPUESTAS 5
Inventor de Hextech

Hayo!

En un momento se intentó un actualizador P2P.

Si mal no recuerdo, se generaron ciertos problemas de conectividad (Hay gente que deja el cliente abierto mientras juega otra cosa, y el consumo de subida le generó problemas), de privacidad (Exponía la IP de los jugadores), y el beneficio terminó no siendo tanto como se esperaba, así que se dejó de lado.

Actualmente, Riot tiene servidores alojados en Amazon. Creo que los principales servidores de datos de juego son Amazon si mal no recuerdo. Pero sobre detalles de hardware desconozco totalmente, y reconozco que no es mi fuerte.

Los servidores de juego, sin embargo, son mayormente controlados por Riot, por motivos que desconozco, pero estimo que acceso, control, privacidad y costos son los principales motivadores.

Respecto al software, actualmente el juego usa DirectX 9 en Windows, y, creo OpenGL en MacOs (Esto último no lo tengo confirmado).

La migración a otro sistema de video probablemente está contemplada. Hace ya un tiempo publicaron que están organizando el código ingame en clusters mejores organizados que el spaggeti que era originalmente. Pero no es tan sencillo retocar código ya existente a ese nivel, y el beneficio (Que principalmente a estas alturas sería principalmente incluir Linux) no es tan alto como para justificar el costo humano y riesgo potencial de romper lo ya existente.

Estimo más probable un update de DirectX 9 a uno posterior que saltar a Vulkan directamente. Esa imagen comparativa de uso de CPU está comparando una librería enfocada a entornos integrados (OpenGL ES) que no se usa en ninguna versión de LoL vs Vulkan, así que no aporta demasiado a la discusión.

Los desafíos de Netflix son diferentes a los servidores de Riot. La carga de los servidores de datos de juego tienen un incremento de solicitudes durante uno o dos días cada dos semanas principalmente, mientras que Netflix necesita garantizar un ancho de banda constante, así que basarse en su infraestructura puede que tampoco sea demasiado útil.

En cualquier caso, es cierto que difícilmente alguien encargado del tema vea la discusión. Los servidores de datos de juego se deciden en Riot Central, y lo regional como mencioné necesita otros detalles que cada encargado regional sabrá.

Pero, al menos, podemos entretenernos debatiendo al respecto e intercambiando información entre nosotros 😉

Suerte!


Hola! Gracias por comentar

Claro que es complicado tener datos concretos sobre Riot y su funcionamiento "in-situ", por lo cual especulamos muchas cosas y otros datos los compartimos por ciertos conocimientos o experiencia laboral relativa a empresas. Si tienes toda la razón sobre que dentro de los ejemplos que dí, hay cosas que han intentado y otras que no. 

--- El ejemplo de Vulkan, es por que estan desarrollando para Android ya en estos momentos, las librerías que tiene el grupo https://www.khronos.org/ son multiplataforma; o sea, los servidores usan Linux o BSD, si centralizaran e hicieran homogenea su programación con Vulkan, no importaria del todo configurar para tanto hardware existente, sea nVidia, AMD o Intel, ARM, etc ... las librerias correrían sin problema para cualquiera; un solo codigo, una sola libreria, recursos financieros centralizados y ahorro en costos

De hecho mencioné PopOS! Linux, por que en esta distro, cuando instalas League of Legends y juegas, da más FPS y tiene menor consumo de recursos CPU-RAM que su equivalente Windows además de un Ping más bajo. El riesgo es que al ser Linux, los jugadores generen modificaciones "libres" del sistema, perdida de propiedad intelectual, etc. Aunque MacOs sea algo semejante a Linux hay mas restricción y protección de los datos del juego mismo, al igual que el control en Windows. El punto es hacer un solo trabajo y hasta el port para consolas en juegos futuros sería sumamente fácil... 

Comparto PopOs! --- https://pop.system76.com/
Video de ejemplo --- Abajo

 

 

 

 

 

 

 

En contexto, como ventajas en global, es que la latencia servidor y usuarios sería casi conexión directa. Mencioné Amazon, por ejemplo por que al usar su P2P-Cloud permite que AWS que es Linux al fin y al cabo, trabajar de forma fluida y con actualizaciones remotas vía terminal de una sola vez para toda la sub-red. 

Ejemplo: https://aws.amazon.com/es/gamelift/?hp=tile&so-exp=below
Amazon con 45ms de Latencia Global y si juntamos Akamai Service la seguridad de datos estaría completa
Ejemplo: https://www.akamai.com/es/es/products/performance/

--- Sobre hardware, entiendo el punto de que Netflix y Riot tienen necesidades diferentes, pero a nivel de Servers, es mejor estar sobrados que limitados. Por ejemplo Steam (Proton) y Epic Games, tienen Servidores AMD Epyc, como los del ejemplo que dí, al igual que nVidia para su Cloud Gaming Service, Google Stadia y Xbox con el mismo tipo de Servers AMD Epyc ... Lo malo, es que barato no es ... pero más barato que Intel, vaya que si ...

Ahora entiendo que solo especulamos y nuevamente, nadie de RIOT verá nuestro dialogo; retomo tu frase:

"Pero, al menos, podemos entretenernos debatiendo al respecto e intercambiando información entre nosotros"

 Gracias por compartir !! Saludos 

whatis-architecture-gl.6abd0239166c2e39b38e19c6ce29ce32f9129e39.png
 

Hayo!

Respecto a Vulkan, si bien es una librería multiplataforma, el salto desde lo que tienen ahora hasta Vulkan no aportaría demasiado.

El código que habla con DirectX, o OpenGL normalmente se encapsula bastante temprano en su implementación, y una vez que está encapsulado no hay diferencia entre trabajar con uno u otro.

Pasar a Vulkan sería un costo mucho mayor que las funciones que, probablemente, las pocas veces que tienen que recordar que manejan 2 plataformas diferentes. El beneficio multiplataforma no sería tanto, ya que LoL seguiría limitado a PC por su interfaz, así que solo se añadiría Linux, cuyo mercado es bastante menor que los 2 ya soportados, y varios de los usuarios de Linux ya acostumbran a tener un Windows o MacOS por temas de compatibilidad precisamente.

Como mencionas, puede que hasta haya posibles implicaciones de seguridad al portar el juego a Linux, así que, menos motivos para querer incluirlo, y, en consecuencia, menos motivos para querer dar el salto a Vulkan.

Al final, te quedas con riesgos y pocos beneficios de hacer ese salto. Tener una tecnología multiplataforma no sirve si no te interesa soportar más plataformas

 

Como mencioné antes, Riot ya usa Amazon para su servicio de actualización. Los CDN son de Akamai si mal no recuerdo. Se puede ver mirando las conexiones del cliente al momento de actualizar.

 

Respecto a lo de "es mejor estar sobrados que limitados", desde el punto de vista del cliente puede ser cierto, pero no desde la empresa.

Si pagas por un servicio que te asegure soportar una carga que solo tendrás 2 días cada 2 semanas, estás pagando de más 12 días de cada 14.

En este caso, es mucho mejor un sistema de recursos dinámicos, que, quizás siendo más caro por cada Mbps, terminas ahorrando ya que durante 12 días no estás pagando lo que solo necesitas 2, e incluso si rompes la predicción puedes adaptarte.

Steam y EpicGames no pueden predecir su carga tanto como puede hacer Riot. Ambos hospedan juegos de terceros, cada uno con su propio ciclo de actualizaciones, mientras que Riot tiene un calendario para cada parche, y los micro parches que rompen los ciclos suelen ser actualizaciones menores.

Si te imaginas una gráfica de la carga que tienen los servidores de descarga de Riot, vs los de Steam o EpicGames, podrás visualizar la diferencia a la que me refiero.

 

GameLift parece interesante para servidores en partida. Sin embargo, por ejemplo, para LAS solo tienen disponibles los servidores que están en BR, y LAN tendría que conectarse a BR o a NA, mientras que tienen 4 regiones diferentes para NA.
https://aws.amazon.com/es/about-aws/global-infrastructure/regional-product-services/

No hay demasiada información sobre que latencia manejan esos países a esos servidores. Solo un "41ms" promedio de conexión a sus servidores, sin información estadística. Viendo su distribución de regiones, me suena que tienen a todo NA con conexiones de baja latencia, y compensan las de otros países en el promedio con eso. Incluso considerando que tengan varios puntos de presencia en la región con baja latencia (Cosa que dudo), no sería una solución ideal para LATAM, o las regiones del este (JP, Oceania, TR, Rusia).

Me gustó el concepto y la idea, y que Amazon esté atrás le da peso, pero le falta desarrollo regional para reemplazar los servidores de LoL (Precisamente Riot es de las empresas que más empujó los servidores regionales).

 

Suerte!


Escurridizo
Escurridizo

Pero, ¿está todo eso relacionado con la caída del servidor? Y de ser así, ¿por qué solo en LAN?

Hola Maiky, es posible que se deba a la ubicación física de los servidores en LAN. Esperemos que se arregle pronto!