La evolución de los servidores de videojuegos online

Jul 18

La evolución de los servidores de videojuegos online

Introducción
Daremos un paseo por la historia de los servidores de videojuegos online, llendo de la actualidad hacia el pasado revisando los pros y contras así como de las implicaciones de la tecnología y costes de estos, para acabar dando una visión del futuro para los servidores destinados a empresas y los desarrolladores independientes.

Crear un juego multijugador siempre ha sido y seguirá siendo algo costoso, teniendo en cuenta los actuales costes del mantenimiento de los servidores y de la infraestructura que conlleva.

Algunos ejemplos de juegos que cierran sus servidores tras algunos años funcionando: FIFA, NBA, Madden NFL, Los Sims, Monster Hunter Tri,… incluso World of Warcraft en Korea…

gameservers

Puede que os preguntéis por qué, o quizás ya seáis conscientes de los gastos que tiene un servidor de juegos, en función de los usuarios, es difícil saber si los beneficios de un juego serán suficientes para tenerlos siempre online. He escrito este artículo porque una de las reglas de la gamificación es incluir otros jugadores en la partida, una de las cosas que más me apasionan de este mundo y evitar cosas como las que pasan con WoW, (necesitan más de 9 supercomputadoras para que funcionen) que perdió más de dos millones de jugadores en un año (2011 a 2012) es lo que vamos a tratar en este artículo de evolución de los servidores de juegos online.

mmo_subs

 

Mantenimiento de un servidor online hoy en día
Para poder dar una perspectiva histórica de la tecnología de un servidor necesitamos saber primero en qué consiste su mantenimiento. Y este depende de los operarios que lo mantienen.

Algunas de las tareas a realizar son:

  • Implementación y despliegue de parches:
    puede que una de las cosas más complicadas porque pone en riesgo todo el sistema.
  • Prevención y respuesta rápida a ataques:
    los hackers maliciosos intentan echar abajo el sistema por diversas razones, muchas veces por dinero, encargos de la competencia u otros motivos, por eso, el personal que se ocupa de mantener el servidor ha de tener altos conocimientos de seguridad de sistemas, o al menos, una parte del equipo debe ser este tipo.
  • Escalabilidad:
    es normal que mientras más compras se hacen del juego que usa el servidor, mayor uso se le dé, el estudio del ancho de banda y el uso de diferentes nodos hará que la complejidad del servidor se defina al principio y no en la fase de producción, es por eso, que las productoras de juegos lanzan versiones beta, como el actual Final Fantasy XIV donde ponen a prueba la eficiencia del servidor en alta carga y así poder observar el comportamiento de los jugadores y los valores máximos de lag/balanceo, con estos es posible realizar los ajustes necesarios para que el servidor fluya más suavemente y corregir posibles bugs.
  • Balanceo de carga:
    sh_full

    es precisamente el punto anterior el que permitirá definir el algoritmo de balanceo, existen diferentes aproximaciones o estrategias para comprehender el balanceo, dependiendo del tipo de juego, puede tratarse de un juego online como Quake o Half-Life donde cualquier usuario se puede convertir en el servidor al abandonar la sesión el host creador de la partida. En este caso, el servidor sólo hace de nodo que reparte la información al resto de clietes (como una red P2P),…o como en el caso de ser servidores masivos se trata de encontrar un nodo más cercano al usuario y ,usando algoritmos probabilísticos, intentar ajustar la conexión (latencia) de cada cliente y reflejar sus interacciones con el juego en el servidor donde se aloja una gran parte de la lógica del juego , no como en el caso anterior donde la lógica del servidor es sólo paso de mensajes.

  • Copias de seguridad y gestión de los datos:
    manejar un gran volumen de datos es algo que no puede hacer una única máquina, es por eso que se establecen distintos servidores y se interconectan, para mantener los datos sincronizados se crean las llamadas granjas de servidores, un clúster de máquinas que escriben los datos a la velocidad que demanda la tasa de transferencia que genera el conjunto de usuarios de un juego determinado.
    Las copias de seguridad se deben hacer diariamente, de hecho existen implicaciones legales de esto, pensad que redes como Twitter usando servidores Apache modificados (Hadoop) y bases de datos NoSQL llegan a escribir por día más de 12TB de datos de los twitts, 4 PicoBytes al año, un servidor de un juego masivo online con millones de usuarios puede llegar a multiplicar estos tamaños porque las estructuras de datos que guarda son más complejas, teniendo en cuenta que almacenan:
    – posiciones de los personajes del usuario, rutas, etc.
    – historiales de misiones, logros, zonas de juego, información relevante al juego
    – objetos, equipamientos, configuración del personaje , relaciones, mensajes con otros usuarios, sus propiedades públicas en el mundo, etc.
  • Aprendizaje de los datos y grafos sociales de un servidor de juegos: las acciones de los jugadores proporcionan muchísima información de tus usuarios, tanto de tipo computacional: direcciones ip’s, dispositivos, patrones de comportamiento,etc. Así como humana, es decir, de qué tipo de actitudes podemos encontrar por usuarios o grupos de usuario. Observar la conducta de los usuarios de Minecraft, construyen maravillas juntos, se organizan, etc., ¿no sería de alguien inteligente aprovechar esta colaboración para crear herramientas que les facilite la tarea?. El aprendizaje de los datos a partir de los grafos sociales se puede hacer con lenguajes de nueva generción como Pig, para más información de esto escribí un artículo de cómo funciona Twitter aquí. Diseñar mecanismos autómaticos que reúnan a grupos de usuarios para realizar tareas conjuntas como raids, mercadería y ferias, competiciones, etc.
    Cuando un servidor se satura y no es capaz de mantener un ping adecuado para la media de usuarios el mecanismo de aprendizaje automático debería mudar a los usuarios manteniendo el estado actual de la partida, a un servidor con ping promedio mejor, es algo que se puede observar en juegos como Call of Duty: Modern Warfare 3

 

quakelive

Los primeros servidores
Podemos encontrar aún hoy en día, servidores Quake 1 abiertos, no son dependientes nada más que de un pequeño servidor que hace de host de repositorio de nombres e IP’s de los nodos que alojan partidas, es decir, máquinas que pueden ser máquinas servidores o clientes que han lanzado el juego en modo servidor.

Es fácil comprender por qué no han cerrado, el coste de este tipo de servidores es prácticamente nulo, se puede montar con un Apache corriente y un MySQL, nada comparado con los servidores actuales. Yo mismo he montado varios servidores de este tipo para juegos de Jams como Ludum Dare o para juegos producidos y que actualmente están funcionando, los cuales pienso mantener hasta que siga vivo.
Por lo tanto la gran diferencia entre un servidor muy costoso y otro que no lo es viene determinada por la lógica de juego, si está o no incluída en la conexión, es costoso sino, no lo es. Los servidores de Quake 3 de QuakeLive hoy en día necesitan que seas un usuario Pro (pagando una cuota de unos 40$) para que puedas crear un servidor dedicado en tu máquina, así tenemos una estrategia híbrida, ahora pasaremos a discutir esta estrategia como solución al problema del cierre de servidores en esta maravillosa evolución de los servidores de videojuegos online.

Pros y contras de un servidor online con lógica de juego incluída
– Tecnología:
Incluir la tecnología de un juego en un servidor es ya de por sí complejo y costoso, recientemente he podido jugar a varios juegos multijugador online en PS3 y PC, por ejemplo en Lord of the Rings:Guardians of Middle-Earth, el ping es bastante bueno y suele haber gente con la que jugar, sin embargo al salir el nuevo LOTR: War in the North, los usuarios se aburrieron del anterior y se mudaron a este. Algo curioso es que en los foros la gente pedía que las partidas, al guardarse online, que si jugabas en casa de un amigo con tu cuenta, que no importara qué nivel tuvieras, esto es un mecanismo de protección del servidor para que no aumentes de nivel a otro usuario, como pasa en Diablo 3. Por lo tanto la tecnología es un pro o un contra dependiendo de cómo se diseñe la estrategia de despliegue de la lógica del servidor, lo mejor es usar una estrategia híbrida, es decir, una parte mínima de la lógica del juego para comprobar que los datos enviados por los usuarios son correctos, teniendo máquinas que están haciendo de host para ello…aunque a veces es difícil comprobar cosas como el uso de dispositivos especiales, como es el caso de CoD:MW3, los mandos con hacks para apuntar – agacharse – disparar al ver a un enemigo, cosa que se soluciona poniendo un servicio de reporte de los usuarios cheaters que otros jugadores puedan detectar.

– Hacking:
Esto es un contra, claro, tener una tecnología vanguardista no nos libra de posibles ataques, el uso de trampas para estar por encima del resto de jugadores… En los servidores de juegos es una tendencia “espiar” a los jugadores, almacenando los mensajes, conversaciones de VoIP sobre el juego, etc., para poder analizar las conductas de sus participantes y poder banear, castigar o avisar a los que no cumplan las normas: insultando, amenazando, etc. Es algo que está a la orden del día. El coste es alto si tenemos en cuenta que debemos revisar miles de conversaciones reportadas o conversaciones donde se ha detectado un uso inadecuado del lenguaje , o de forma despectiva / amenazadora (cyber-bulling) contra otros jugadores.
Otro contra del hacking es que aunque el servidor incluya lógica del juego, los mensajes pueden ser analizados y replicados, es el caso de los servidores piratas, servidores privados de World of Warcraft, Guild of Wars, etc., que siguen estando en funcionamiento en estos momentos y que hacen perder dinero a Blizzard y otras empresas que los diseñaron, pensad en la inversión que hay que hacer no sólo en tecnología sino en personal cualificado para dar soporte al servicio (foros, administradores de juego, beta testers, etc).

– Experiencia de usuario
No todo podía ser malo, la experiencia que proporciona un juego online con lógica juego en el servidor puede proporcionar un mejor manejo de eventos sociales dentro del gameplay. Poder cambiar el juego desde el servidor y convertirlo en otra cosa, es algo que mejora la experiencia de juego desde el punto de vista del jugador ya que se puede mantener vivo durante más tiempo y atraer nuevos jugadores. Lo que permite pagar las facturas del servidor.

 

Tu propio servidor, el futuro para empresas e indies

Existen nuevas ofertas para desarrolladores independientes, servidores gratuitos hasta un número de clientes concurrentes que suele ser 100 aproximadamente ,para servidores lanzados en tu propia máquina, y 20 para servidores mantenidos por terceros (al que le han llamado nube). Es difícil de predecir el futuro, pero con los datos que disponemos ahora mismo de la evolución de los servidores, podemos decir que el crecimiento de ventas de dispositivos móviles apoyan el nuevo auge de la contratación de servidores que distribuyan el contenido que estos dispositivos consumen.

Esta nueva situación ha permitido que florezcan de forma bestial el número de juegos online para plataformas móviles, estimo que esto será un boom expansivo, debido a la reducción de precios por servidores y tecnología multijugador. Aún así, debemos balancear bien el coste del servidor y los ingresos habituales del juego que lo use. Utilizar una implementación híbrida de servidor online con parte de lógica del juego en el mismo y que sea fácilmente reemplazable/escalable ya no es tan trivial.

Los precios a partir de 100 usuarios concurrentes en un servidor de nube (mantenido por terceros) es de 90$ al año aproximadamente, es muy poco dinero teniendo en cuenta las laboriosas tareas que eso conlleva. Aunque el éxito del juego depende sobre todo, del gameplay online que del servidor.

Para empresas no-indies, con mayor poder adquisitivo, los precios son distintos, 230$ al año para un servidor de un juego de 100 usuarios concurrentes. Aunque la opción elegida por las empresas en principio será no confiar en terceros sino comprar el software e implantarlo en sus propias máquinas ya que es más barato, aprovecharán estos mismos servidores para alojar actualizaciones y otro tipo de servicios online para no depender de terceros, un ejemplo de ello son las descargas de nuevas versiones para no tener que esperar a la revisión de un juego por parte de los markets y así es más fácil de mantener aunque requiere la descarga desde los servidores propios de la empresa…

Las grandes empresas como Google, Amazon o Apple, han montado sus propios servidores de juegos online genéricos ,donde almacenan información como los logros, las tablas de puntuaciones, etc., además, disponen de varios tipos lógicas de partidas, online en tiempo real, por turnos,… ésta última modalidad funciona especialmente bien en juegos para dispositivos móviles, debido a que jugar online en tiempo real con 3G a un juego como Respawnables, es complicado cuando se tienen pings de 2segundos o pérdidas constantes de la conexión; es por eso que los usuarios suelen preferir juegos con turnos y notificaciones…esto ha hecho que hayan proliferado los juegos como Rizzle, Letterpress, Apalabrados (Angry Words), etc. y al igual que pasa en otros juegos, los hacks son algo inevitable que ocurra al crecer su número de usuarios, la naturaleza humana no ha cambiado y seguimos queriendo ser “mejores que los demás”.

El presente y el futuro de las empresas de videojuegos está vinculado a los servidores online, cualquier juego actual usa servicios de descarga, puntuaciones, conexión con redes sociales, etc. Estos mensajes son de Plantas versus Zombies 2 para iOS:

PvZ2[11315] : GAME_CENTER: Succeeded submitting achievement with ID=(off_the_green)
PvZ2[11315] : GAME_CENTER: Achievements successfully submitted, clearing pending queue.
PvZ2[11315] : productsRequest:didReceiveResponse:
PvZ2[11315] : requestDidFinish:

intento comprender que PopCap, está haciendo un uso intensivo de sus servidores porque se lo puede permitir, balanceando la carga de logros con Game Center pero externalizando las promociones, moviéndolas a su propia web ya que es algo que puede cambiar de una forma más flexible y más barata: tiendas online y webs de promoción.

¿Vamos hacia la nube?

En principio todo apunta a que la computación en nube es lo que terminará por implantarse, debido a que los costes son menores si no disponemos de la infraestructura que proporcionan este tipo de servicios, por ejemplo, el uso de procesamiento de datos enviados desde móviles: reconocimiento de patrones, reconocimiento de voz, procesamiento de grandes volúmenes de datos sociales, etc. Pero hemos visto que usuarios de juegos han sabido replicar el comportamiento de un servidor que necesita un supercomputador en un hosting web básico, el futuro es incierto, aunque sabiendo esto, sabemos también que el presente es el futuro y que las cosas no cambiarán a menos que haya un cambio radical hoy, ahora mismo!.

sfxt-lag-warriors-album

Aunque nos venden la tecnología de los servidores de nube para permiter una mejor gestión del balanceo de carga, y evitar las largas esperas en cola para entrar a jugar. ¿Lograrán estos servidores funcionar a largo plazo? Esto lo veremos pronto…mientras, es conocido el lag debido a los problemas de aislamiento de conexiones como en Street Fighter, Tekken, etc. donde se han creado nuevas reglas de ganar/perder combates!

 

 

Artículos relacionados

  • ...

Exprésate dejando un comentario:

Introduce el captcha

Por favor escriba los caracteres de la imagen captcha en el cuadro de entrada