Retos de lanzar un juego multijugador en tiempo real

juego multijugador

Hace algunas semanas lanzamos nuestro juego más popular de Facebook a la plataforma iOS en tres idiomas diferentes.

Los desarrolladores están de acuerdo con la importancia de la estrategia multiplataforma. De hecho, esta estrategia es la que estamos siguiendo en Playspace tras ofrecer nuestro juego más popular de Facebook a iOS (iPhone, iPad y iPod). Parchís PlaySpace es un juego multijugador de mesa en tiempo real para iOS y tiene más de 100.000 instalaciones en menos de un mes desde su lanzamiento, principalmente en España, USA, LatinoAmérica y Brasil.

Afortunadamente, hemos adquirido la experiencia y conocimiento de los retos de lanzar un juego en tiempo real gracias a nuestra tracción en Facebook tras el pasado año 2012. Desarrollar juegos en tiempo real escalables no es tarea sencilla y nos hemos encontrado con numerosos problemas y retos que hemos tenido ir aprendiendo y resolviendo sobre la marcha y que ahora hemos aplicado con éxito en nuestro primero juego en iOS, que no será el último (en las próximas semanas lanzaremos dos nuevos más).

Conectividad en un juego multijugador

Todos nuestros juegos son constatemente online. Esto representa un serie de retos adicionales comparado con juegos mono-jugador tradicionales. El mayor de ellos es que el código se ejecuta de forma asíncrona, y por lo tanto, puede fallar. Conexiones a la red defectuosas pueden ocasionar que las operaciones asíncronas tarden más de lo que deberían, y el juego debe abordar estas excepciones adecuadamente. Además, debido a que nuestros juegos se ejecutan desde dispositivos móviles (que normamelmente suelen disponer de una conexión a Internet peor), nuestros retos para paliar los problemas de conectividad son incluso mayores. Toda la arquitectura del motor de juego necesita ser diseñado con esto en mente: el jugador necesita saber cuando se ha producido un error irrecuperable (como una pérdida de conexión total), pero los errores puntuales recuperables deben ser procesados transparentemente para el usuario (siempre y cuando sea posible).

El mayor reto tecnológico de un juego multijugador en tiempo real es resolver los problemas de latencia. La latencia es esencial si quieres ofrecer una experiencia de juego óptima a tus jugadores, porque una mala latencia puede arruinar completamente el juego y que el jugador se frustre. Las razones que pueden afectar a la latencia son la distancia física entre el dispositivo del usuario y los servidores de juego, así como la calidad de la conexión y el tiempo de respuesta del servidor. Cuando comenzamos la expansión de nuestros juegos en los diferentes idiomas, tuvimos que tener precaución para que los servidores de juego estuviesen alojados en proveedor de servicios que nos pudiese garantizar un buen tiempo de respuesta internacional. Por eso, escogimos la plataforma de Amazon Web Services, la cual nos garantiza una alta escalabilidad global.

Mi recomendación para evitar los problemas de latencia desde el punto de vista del diseño de juego, es medir el ping del usuario constantemente y no permitirle jugar si excede un umbral crítico. Es mejor decir al usuario que necesita mejorar su conectividad que permitirle jugar y que se frustre.

Juego multijugador y multi-idioma

Los textos deben ser definidos fuera del código, en algún repositorio que permita el trabajo de traducción. Además, el código para cada elemento del interfaz de usuario debe estar preparado para soportar múltiples idiomas. Algunas veces, por razones de arte y diseño, muchas creatividades deben ser traducidas y adaptadas al idioma local también. El motor de juego ha sido diseñado con estos requerimientos en mente desde el principio. Gracias a esto, nos es posible integrar nuevos idiomas bastante rápido y sencillo sin que el código de la aplicación se vea afectado.

Cuando creamos una experiencia de juego multijugador internacional, necesitamos considerar seriamente cómo unir a los jugadores de diferentes idiomas en los chats. La primera opción fue separar a los usuarios en función de su idioma en diferentes servidores, pero con esta solución no alcanzaríamos en cada servidor la masa crítica de usuarios suficiente para arrancar el juego conocida como “problema del bar vacío”. Para evitar esto, escogimos la opción de permitir a los usuarios jugar juntos y permitirles hablar en el idioma y chat que prefieran.

Así mismo, la internacionalización implica ser capaz de trabajar en diferentes divisas. Afortunadamente para los desarrolladores, las plataformas iOS y Facebook abstraen las complejidades de las plataformas de pago y están constantemente agregando herramientas para la internacionalización del contenido de la aplicación como el nombre del juego, creatividades, logos, etc.

Siempre piensa en desarrollar tu juego para que sea multi-idioma. Nunca sabrás dónde tu juego tendrá mayor éxito. Puede que pensases que el juego sería exitoso para Costa Rica pero después de bucear sobre las métricas te das cuenta de que es mucho mejor para Indonesia, por ejemplo.

Desarrollar una aplicación móvil no es lo mismo que desarrollar una aplicación web.

Nuestros juegos anteriores eran todos basados en web, desarrollados en tecnología Flash para ser ejecutados en un ordenador. Esto significaba que los recursos gráficos necesitaban ser re-exportados en formatos más eficientes y en algunos casos rediseñarlos completamente de nuevo debido a cambios en la usabilidad. También existe una diferencia fundamental entre ambas plataformas cuando el juego pasa a los entornos de producción: mientras que en los juegos web los arreglos críticos pueden ser aplicados inmediatamente (algunas veces incluso cuando el juego está en ejecución), los envíos de nuevas versiones al AppStore pueden tardar hasta una semana hasta ser revisados y validades por Apple. Todos los miembros del equipo de desarrollo deben ser conscientes de esto y pensar si los procesos de prueba deben ser rediseñados.

Cuando lanzamos nuestro primer juego, la mayoría de los jugadores eran principalmente de España y jugaban entre las 9:00 PM hasta las 24:00 PM GMT+1. Esto nos permitía hacer mejoras, mantenimientos y tareas pesadas por las noches para no afectar a los jugadores. Como ahora nuestros juegos son completamente globales, tenemos muchísimos usuarios conectados a cualquier hora del día, lo cual nos limita nuestras tareas de mantenimiento y mejoras y nos obliga a perfeccionar nuestros procesos de subida de versiones.

No es oro todo lo que reluce.

Todos los desarrolladores calculan (o deberían) sus métricas de juego para optimizar el embudo de conversión. Lanzar un juego en un único mercado te permite profundizar en estas métricas en distintos bloques de usuarios por los parámetros deseados tales como la edad, género, ballenas, etc. En cambio, cuando lanzas un juego en muchos países y plataformas debes disponer de un sistema de métricas capaz de segmentar toda esta información por mercado y tener la capacidad mental suficiente como para poder analizar y procesar esta información cruzada lo máximo posible. En algunos casos, disponemos de más de tres paneles de control de métricas para un solo juego. También necesitas un equipo de adquisición lo suficientemente rápido y eficaz para optimizar los resultados de dichas métricas analizadas.

Hemos conseguido este objetivo desarollando nuestro propio panel de métricas donde podemos segmentar por juego, canal de marketing, idioma, país, etc. Con este desarrollo somos capaces de tomar un montón de decisiones y ver que “no es oro todo lo que reluce”. Por ejemplo, nos hemos encontrado algunos países muy tentadores donde el coste de adquisición de jugadores era realmente bueno, pero la monetización era realmente mala. Por otro lado, también hemos encontrado países que a simple vista descatarías por sus elevados costes de adquisición, pero cuando analizas su monetización observas que es mayor, por lo que recuperarías la inversión en un determinado plazo de tiempo.

A pesar de todos los retos descritos anteriormente, lanzar un juego multijugador en tiempo real genera muchísimas otras ventajas como el hecho de que un juego multijugador es social de por sí y que la retención de los jugadores debería ser mayor que la de los juegos monojugador.

Existe un mercado enorme para los juegos multijugador en tiempo real free to play en dispositivos móviles, sobre todo en Tablets. Los usuarios están cambiando su comportamiento de juego desde el PC hacia las Tablets. Es algo que ya estamos experimentando en PlaySpace con nuestro primer juego en iOS. Nos encontramos en un momento de cambio donde todos los diferentes géneros y tipos de juego están convergiendo en los dispositivos móviles y donde los juegos multijugador en tiempo real tienen su plaza asegurada en el mercado.

Conclusiones:

  • Ten precaución con los problemas de conexión y cubre todas las situaciones que puedan generar una mala experiencia de juego.
  • Desarrolla el juego para que sea multi-idioma. Nadie tiene una bola de cristal para predecir qué mercado funcionará mejor para tu juego.
  • Ten en cuenta las diferencias horarias y el intercambio de divisas en el diseño del juego.
  • No te dejes engañar por métricas valuadas de forma independiente. Para que una métrica tenga sentido, deber ser medida en su conjunto de métricas que formen el embudo de conversión.

Me gustaría hacer una agradecimiento a las personas que me han ayudado a redactar dicho artículo: Alberto de Rodrigo (CTO), David Pol (iOS Game Developer), Ignacio Arnedo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *