El 13 de junio de 2022, Riot anunció una nueva colaboración con Microsoft para llevar nuestros mayores títulos al Game Pass de Xbox. Dicha colaboración unió a dos de las mayores empresas del mundo de los videojuegos en torno a su amor compartido por los juegos competitivos centrados en los jugadores. Seis meses después, cumplimos esa descomunal promesa y lanzamos nuestros títulos más importantes en el Game Pass.
Ahora queremos hablaros sobre el trabajo entre bastidores que llevamos a cabo durante esos meses y sobre un equipo que, quizás, todavía no conocéis: el de plataformas de jugadores.
¿Qué es el equipo de plataformas de jugadores?
Este equipo se dedica a desarrollar un vínculo entre los títulos de Riot y nuestros jugadores para crear un ecosistema y una comunidad entre múltiples juegos. También se encarga de diseñar una experiencia común para los jugadores, uniéndolos tanto a ellos como el contenido de nuestros diferentes juegos. En otras palabras, el equipo de plataformas de jugadores se encarga de casi todos los elementos de los títulos de Riot que no están directamente relacionados con la experiencia de juego. Esto incluye las funciones de las cuentas independientemente del título, la entrada a los juegos, los elementos sociales, las compras y mucho más, todo ello gracias a portales, integraciones de SDK y API directas.
Dado que este equipo se encarga de todos los elementos secundarios relacionados con la experiencia de juego, tuvo que ocuparse de gran parte del trabajo relacionado con el Game Pass de Xbox. Para lograrlo, fueron necesarias una naturaleza colaborativa, una mentalidad abierta y montones de personas decididas y trabajadoras que pudiesen dedicarse a esto al mismo tiempo que continuaban prestando sus servicios a los juegos actuales y futuros de Riot.
Sin pausa pero con prisa
Dado que la colaboración con Riot Games fue la primera del Game Pass de Xbox en ofrecer juegos gratuitos para PC y móvil, había montones de incógnitas. Además de eso, queríamos mejorar la experiencia de los jugadores al ofrecer recompensas de los juegos a quienes vinculasen sus cuentas. Al enfrentarnos a un proyecto tan importante, intentamos simplificarlo dividiéndolo en elementos para esclarecer las responsabilidades, mejorar la concentración y reducir la cantidad de reuniones sin un propósito claro.
A fin de afrontar este desafío, el equipo de gestión de programas colaboró estrechamente con Microsoft para planificar las estregas más importantes. Esta labor crucial nos sirvió para asegurarnos de que la gente correcta echase mano al proyecto en el momento oportuno. El equipo de gestión de programas estableció ceremonias y rituales en plataformas de jugadores y en otros equipos de todo Riot, como los de títulos, publicidad, asistencia al jugador y demás participantes relevantes para el proyecto. Desarrollaron una estrategia y repartieron problemas complejos entre múltiples equipos de los juegos y cientos de personas del equipo de plataformas.
Diseñando para el Game Pass
Antes de desarrollar nuevos sistemas o de modificar los preexistentes, es necesario comprender cuál es el problema y la solución idónea de cara a los jugadores. El diseño de la experiencia de usuario desempeña un papel vital a la hora de crear experiencias positivas para los jugadores, por lo que fue muy importante durante la colaboración con el Game Pass de Xbox. Aunque el diseño suele asociarse a pulidas interfaces, desempeña un papel todavía más importante a la hora de planificar cómo interactuarán los jugadores con productos y sistemas complejos sin que haya ningún problema. Seguro que estaréis pensando que tampoco puede ser tan complicado que los jugadores vinculen su cuenta al Game Pass de Xbox. Bueno, pues resulta que es complejísimo.
Al principio de la colaboración entre Riot y Microsoft, el equipo de liderazgo de experiencia de usuario se puso en contacto con otros líderes para guiar la creación de escenarios "fácilmente conmovedores" para jugadores y aportar información a múltiples disciplinas y departamentos sobre las fechas, colaboradores y recursos necesarios para hacer realidad dichos escenarios. Se centraron principalmente en los mayores riesgos para una buena experiencia de jugador, porque, cuanto antes asumamos que merece la pena esforzarse por alcanzar una compleja meta entre todos, antes podremos combinar nuestra experiencia para hacer posible lo aparentemente imposible (encontraréis más información sobre el proceso inicial para definir esos escenarios fácilmente conmovedores en el artículo de Medium sobre la experiencia de usuario de Riot Games).
"La colaboración entre dos empresas siempre supondrá un reto enorme: terminología distinta, roles diferentes, suposiciones dispares... Tuvimos que indagar para descubrir cómo funcionaban los sistemas de autentificación de Microsoft y la experiencia de instalación del Game Pass, de tal modo que pudiésemos tener en cuenta parte del proceso durante el desarrollo de la experiencia definitiva y determinar con exactitud qué era necesario para esos escenarios fácilmente conmovedores".
- Cheryl Platz

Tras haber establecido el flujo de trabajo inicial, el equipo de experiencia de usuario se puso manos a la obra para determinar qué necesitaría cada elemento interactivo a fin de crear un proceso de incorporación fluido para los jugadores, sin importar quiénes fuesen ni de dónde proviniesen. El equipo se aseguró de que los jugadores veteranos de Riot que vinculasen su membresía del Game Pass desde un juego o mediante el cliente de Riot disfrutasen de una experiencia tan fluida como un nuevo jugador que llegase desde la aplicación del Game Pass por primera vez.
Unir plataformas de dos empresas distintas suele traer consigo problemas que no había sido necesario resolver con anterioridad ni en el cliente de Riot ni en Xbox. Por ejemplo, el modelo de seguridad de Microsoft brindó al equipo de plataformas la oportunidad de experimentar con una mayor estandarización de las plataformas de autorización e identidad. Comunicarnos abiertamente y colaborar de forma activa con Microsoft ayudó a establecer nuestras metas y nos sirvió para asegurarnos de progresar en la dirección adecuada.
"No somos la primera integración que llevan a cabo, pero el método empleado en nuestro caso era lo suficientemente distinto como para colaborar con nosotros para conseguirlo. Fue un esfuerzo colaborativo, en el que modificamos ambas partes del código base para añadir lo que necesitaban. Las originales características de Microsoft no habrían funcionado de lo contrario, y eso no encajaba con nuestro calendario".
- Luther Baker
Empezando por la documentación inicial (fase a la que se suele llamar predocumentación), los diseñadores tuvieron que descifrar qué estaba ocurriendo e identificar los prerrequisitos necesarios preguntándose cómo llegar al resultado que querían. Empleando diversos métodos, como el mapeo de escenarios y los flujos de usuario, Microsoft y los diseñadores del equipo de plataformas colaboraron para crear multitud de artefactos compartidos con los equipos de ingeniería, producción y control de calidad a fin de asegurarse de que los flujos concordasen con las expectativas y de establecer un flujo constante de información con el que analizar qué servicios y funciones había disponibles para ofrecer la mejor experiencia posible.
"En este caso, es mejor equivocarse con la experiencia de usuario porque es probable que la gente avise si nota algo que no le parece del todo correcto. Es mejor crear algo mal y rápido para hablar sobre ello que intentar dar con la respuesta correcta y, después, crear algo".
- Melody Seng
Los artefactos evolucionaron constantemente, incluso tras terminar. Se descubrieron casos excepcionales que requerían más investigación y más pruebas para resolverlos. Trabajar mano a mano con ingenieros y equipos técnicos resultó crucial para llegar a un entendimiento mutuo.

La creación de servicios casi en tiempo real
A fin de ofrecer la mejor experiencia de usuario posible en Riot y el Game Pass de Xbox, quisimos que los jugadores desbloqueasen al instante el contenido tras vincular una cuenta activa del Game Pass de Xbox, y eso requirió mucho ingenio. El equipo de experiencia del contenido colaboró con el de cuentas (que forma parte del departamento de plataformas) y acordó que este último enviaría un mensaje al equipo de acontecimientos de Riot (el nuevo enfoque de Riot en lo referido a la comunicación por mensajes) cada vez que un jugador vinculase o desvinculase una cuenta de Xbox. Tras recibir dicho mensaje, el servicio encargado de analizar el asunto del mismo reacciona al acontecimiento en cuestión y lo procesa. Dado que los jugadores pueden vincular una cuenta de Xbox sin una membresía activa del Game Pass a la de Riot, el equipo también necesitaría preguntar a la API de Xbox utilizando el identificador generado al vincular la cuenta, mientras que el equipo de cuentas almacenaría dicho identificador en un nuevo servicio. Sin embargo, esto solo servía para resolver parte del problema, ya que seguiríamos necesitando comprobar si los jugadores tenían una membresía activa del Game Pass de Xbox.
El equipo de experiencia del contenido (que forma parte del departamento de plataformas) creó el servicio de suscripción (GSS), del que Riot se fía ciegamente para determinar el estado del Game Pass de cada jugador. Gracias a esto, los servicios que necesitasen comprobar algo relacionado con contenido que dependiese de una suscripción contactarían con el GSS y recibirían una respuesta muy fiable con poca latencia en la que se indicarían los beneficios del jugador en cuestión. El GSS consigue dichos datos consultando las cuentas vinculadas de cada cuenta y utilizando la API de Microsoft para comprobar si los jugadores tienen una membresía activa del Game Pass. Además, transmite esos datos a otros servicios de Riot a través de un vínculo HTTP API, de tal modo que los demás equipos puedan darle uso a la información, como en estos casos:
- Plataforma de acceso al contenido: añade contenido de suscripciones al inventario de los jugadores.
- Martech: muestra anuncios según el estado actual del Game Pass de los jugadores.
- Asistencia al jugador: los agentes de asistencia al jugador utilizan la información para procesar las solicitudes de los jugadores relacionadas con suscripciones de Xbox.
- Experiencia de la web (WebEx): sirve para mostrar el estado de las suscripciones de los jugadores en la página de gestión de la cuenta.
Cuando un jugador vincula su cuenta de Riot a la del Game Pass de Xbox, el GSS consulta la API de Xbox de Microsoft para descubrir el estado del Game Pass del jugador en cuestión utilizando el identificador generado al vincular la cuenta, guarda dicha información en una base de datos duradera, actualiza la información con regularidad, y hace que sea posible consultarla dando acceso al cliente a través de la API. ¿A que es supersimple?
Los jugadores pueden activar el Game Pass en cualquier momento tras vincular sus cuentas de Riot y Xbox. Sin embargo, el servicio solo podría consultar regularmente la API de Xbox si los jugadores tenían una membresía activa. A fin de ofrecer la mejor experiencia posible, queríamos que los jugadores obtuviesen acceso al contenido de la suscripción de inmediato tras vincular y activar su Game Pass, por lo que era necesario realizar esas consultas con frecuencia. Pero ¿qué frecuencia? Sería estupendo consultar el estado cada minuto, pero no es buena idea enviar millones de solicitudes por minuto a un API para comprobar el estado de algo, sobre todo teniendo en cuenta que el 99 % de las veces no cambiaría nada entre una consulta y la siguiente.
El equipo decidió centrarse en ocasiones en las que pudiesen reaccionar a interacciones de los jugadores desde el lado de Riot. Por ejemplo, un momento perfecto para comprobar el estado del Game Pass es cuando un jugador inicia el cliente. Sin embargo, esa comprobación depende de consultar a un HTTP externo, lo que se tarda en hacer alrededor de 1 s, mientras que el cliente principal del GSS, la plataforma de acceso al contenido (CAP), necesitaba una respuesta en menos de 50 ms, pues ese paso forma parte de la ruta que se ha de seguir para recuperar el inventario de los jugadores. No había forma de incorporar una llamada externa de 1 s en 50 ms, así que el equipo tuvo que ponerse creativo. Decidieron recuperar el valor almacenado en la última comprobación o tras la vinculación de las cuentas y activar una comprobación asíncrona en segundo plano si el valor almacenado se obtuvo hace más de 2 minutos. Si el servicio detectaba un cambio en el estado del Game Pass tras la comprobación asíncrona, enviaba un mensaje a través del servicio de mensajería de Riot al cliente del juego a fin de que el juego otorgase acceso a los beneficios en cuestión a través de la CAP, asegurándose de que los jugadores recibiesen el contenido de la suscripción sin la necesidad de reiniciar el cliente de forma manual.
"Nuestro objetivo principal consistía en reducir la latencia tanto como fuese posible, pues hemos establecido requisitos de tiempo bastante estrictos. Básicamente, la CAP tiene 50 ms para hacer una llamada y recibir una respuesta a fin de descubrir si un jugador concreto tiene el Game Pass activo o no, lo que casi nos convierte en un servicio en tiempo real. Si no respondemos durante dicho periodo, la llamada de la CAP expirará y, quizás, el jugador en cuestión no reciba el contenido que debería tener".
- Vasily Katraev
Wild Rift no utiliza el sistema de la CAP en el inventario de sus jugadores, por lo que necesitaría consultar de forma directa si cada jugador tiene una suscripción activa al Game Pass. Para cumplir el requisito de latencia de 50 ms, el equipo de experiencia del contenido reubicó sus servicios relacionados con la CAP y la gestión de cuentas en cuatro centros de datos repartidos por el mundo, con la idea de estar tan cerca de los jugadores como fuese posible.
Simulacro de lanzamiento y alternativa para las limitaciones de la base de datos
Unos días antes de hacer llegar esta función a los jugadores, el equipo llevó a cabo un simulacro de lanzamiento con el que poner a prueba la vinculación de cuentas de Riot y del Game Pass de Xbox. Gracias a ello, detectaron múltiples errores críticos y los solucionaron antes del lanzamiento real.
Una de nuestras mayores preocupaciones era la cantidad de usuarios que recibiría el servicio de los beneficios, que es el responsable de otorgar acceso a los artículos de todos los títulos de Riot a los jugadores. Recibimos muchísimas solicitudes para comprobar los beneficios, ¡hasta 800 000 por minuto en algunas regiones! Para desbloquear los beneficios, cada una de estas solicitudes ahora consulta a otro sistema para saber si un jugador tiene el Game Pass y otorgarle acceso a los beneficios. Debido al esfuerzo y la complejidad adicionales que traía consigo este proceso, existía el riesgo de recibir respuestas lentas y poco fiables, lo que afectaría a otras partes del proceso.
El equipo llevó a cabo pruebas de carga en múltiples situaciones, pero acabaron percatándose de que un simulacro de lanzamiento les serviría para asegurarse de haber desarrollado un sistema sólido. Esa idea les permitiría "activar el sistema" por completo, menos la parte que hacía que el contenido del Game Pass de Xbox se otorgase a los jugadores. Gracias a ello, descubrieron el nivel de estrés que el sistema soportaría y cómo se comportaría con exactitud antes del lanzamiento oficial. Durante el simulacro, el equipo descubrió un fallo de configuración en las conexiones, lo que habría provocado el fracaso del lanzamiento y evitado que los jugadores recibiesen sus beneficios.
También se topó con un problema que afectaba a la capacidad de escritura de nuestra base de datos: la arquitectura* preexistente les impedía modificarla para afrontar la mayor carga de jugadores que habría durante el inicio de la colaboración. Una táctica que se suele emplear en la implementación de servicios como este es lanzarlo por tandas. El equipo decidió intentar controlar el flujo de jugadores al ralentizar la campaña de marketing. Esta medida serviría para repartir las oleadas de jugadores a lo largo de un periodo de tiempo superior, y el equipo dispondría de capacidad suficiente como para ofrecer el servicio a cada nueva tanda de jugadores conforme se publicase más material de marketing. Cooperando estrechamente con el equipo de marketing, fueron capaces de mantener la capacidad de escritura a menos de un 50 %.
*Desde entonces, hemos modificado la tecnología de nuestra base de datos para implementar un escalado más horizontal en lo relativo a los cambios de las cuentas.

Buena actitud ante todo
Además de la impresionante destreza técnica necesaria para integrarnos en el Game Pass de Xbox, las habilidades sociales también desempeñaron un papel fundamental. Ser humildes, mantenernos curiosos, ser capaces de colaborar con otros y comunicarnos abiertamente tanto a nivel interno como de forma externa con Microsoft resultó crucial. Aunque este proyecto solo ha durado seis meses, fue necesaria la participación de cientos de personas, cambiar de horario laboral y aprender a dominar nuevos sistemas. Tuvimos que dar un paso atrás y dejar a los expertos en la materia asumir el control y dirigir la situación de diferentes formas para que ninguna persona o equipo dirigiese el cotarro sin sentido alguno.
"El enfoque que adoptó la gente en este proyecto y su disposición en lo referido al mismo han marcado la diferencia".
- Nate Portner
Esta colaboración ha sacado a relucir muchos de los valores de Riot Games. Durante todo el proceso, el equipo nunca dejó de preguntarse cómo afectaría la experiencia a los jugadores. Se propusieron respetar al máximo ese aspecto, y todo Riot se unió para colaborar en algo que afecta a todos los títulos de la empresa.
"Todas las disciplinas hicieron un trabajo fantástico al pensar cómo afectaría cada decisión a los jugadores. No queríamos crear expectativas erróneas para ningún jugador".
- Matt Hawkins
Conclusión
Aunque tuvimos mucho más que hacer de lo que podemos incluir en esta publicación técnica, esperamos que hayáis aprendido algo sobre el equipo de plataformas del jugador y los servicios que desarrollaron para la colaboración entre Riot y el Game Pass de Xbox. Han sido necesarios el esfuerzo y la dedicación de cientos de personas para crear y seguir desarrollando experiencias increíbles para los jugadores.