Crear logros es un logro

Antes de nada, me presento: soy Ben Elliott, ingeniero de software del equipo de funciones de MTG Arena. Si tienes un estilo de juego parecido al mío, seguro que te aburres haciendo una sola cosa. Quizá prefieras ir alternando entre formatos, darle vidilla a la cosa participando en eventos en rotación o construir un mazo muy concreto para…, bueno, sacar de quicio a Sparky de formas de lo más creativas.
En otras palabras, quizá seas el tipo de persona que disfruta teniendo varios objetivos en el juego.
En MTG Arena llevamos mucho tiempo queriendo animar a los jugadores a explorar, y el juego tiene varios sistemas dedicados precisamente a eso. La experiencia para jugadores nuevos es un claro ejemplo: MTG Arena te permite ir descubriendo algo tan grande y complejo como Magic: The Gathering de color en color y de mazo en mazo hasta que te sientas capaz de enfrentarte a otros jugadores de carne y hueso. Llegados a este punto, cuando ya tienes algo más de experiencia, te proponemos que explores el juego con las misiones diarias. Seguramente no puedas completarlas con el mismo mazo cada día (aunque si eres como yo tal vez disfrutes del reto de intentar construir un solo mazo que te permita completar casi todas las misiones diarias), así que quizá busques técnicas, estrategias y cartas que en un principio hubieras dejado pasar.
Sin embargo, es evidente que la experiencia para jugadores nuevos y las misiones diarias no pueden abarcarlo todo (quizá ya te huelas por dónde va esto). Casi desde los albores de MTG Arena, los jugadores llevan pidiendo un sistema de logros como es debido: una forma de explorar, tantear cosas nuevas y dar rienda suelta a la creatividad para conseguir una insignia como prueba irrefutable de su hazaña. Pues resulta que los diseñadores y desarrolladores de MTG Arena también llevamos pensando en los logros desde entonces. Reflexionamos sobre las ventajas, inconvenientes y dificultades técnicas y buscamos ideas para los logros más únicos, gloriosos y complicados a rabiar. Por todo ello, nos hace mucha ilusión que, con el lanzamiento de Aetherdrift, ¡la función de logros ya esté disponible!
No obstante, no negaré que fue un proceso con algunos altibajos.
Pensamos que a los jugadores les gustaría echar un vistazo entre bambalinas para descubrir cómo llegamos hasta aquí. Así que, sin más dilación, érase una vez…
Preparativos y prototipos
En el equipo de funciones de MTG Arena llevábamos años y años pensando y discutiendo sobre los logros, pero no nos pusimos manos a la obra de verdad hasta la primavera de 2024.
Empezamos con una fase de diseño inicial en la que delimitamos los principales objetivos de una función como esta y creamos una lista preliminar de los logros que queríamos (inicialmente, teníamos 126). Estas fueron algunas de primeras las características fundamentales del diseño que se nos ocurrieron:
- Participación: los logros deben ser divertidos de conseguir y deben ayudar a los jugadores a avanzar en Magic.
- Diversidad: debe haber una variedad de logros que cubra todo lo que ofrece MTG Arena para apelar a distintos tipos de jugadores.
- Flexibilidad: el equipo quería tener la posibilidad de añadir, modificar y eliminar logros sin alterar los demás y que los diseñadores que los crearan tuvieran un control total sobre ellos.
He de decir que los diseñadores pensaron largo y tendido acerca de la envergadura de esta función, ya que un exceso de ambición haría que fuera una tarea imposible de terminar.
Por otro lado, empezamos a crear distintos prototipos sobre cómo presentar los logros a los jugadores. Hicimos pruebas con la interfaz de usuario, analizamos sus más y sus menos y experimentamos con el cliente del juego de formas totalmente nuevas.
Aquí va un buen ejemplo: debían aparecer notificaciones emergentes siempre que se completara un logro. Teníamos que asegurarnos de que pudieran mostrarse en cualquier pantalla, de una forma que los jugadores no se distrajeran, pero supieran que habían hecho algo remarcable. Los diseñadores de experiencia de usuario crearon varias opciones para estas notificaciones y, aún más importante, decidieron en qué parte de la pantalla aparecerían (acabamos acordando que se mostrarían brevemente en la esquina superior derecha de la pantalla).

Durante la fase de prototipos decidimos agrupar los logros por temáticas para que fueran más fáciles de encontrar en una lista que no dejaría de crecer. Así pues, también tuvimos que diseñar la forma en la que queríamos organizarlos. Estos grupos fueron cambiando de apariencia durante la fase de prototipos y desarrollo, y con cada nueva versión íbamos puliendo las anteriores. Durante estas iteraciones surgió una idea que nos pareció de lo más útil: añadir a la barra de las misiones diarias de la página de inicio un icono que mostrase la progresión de un logro que los jugadores eligieran como “favorito”. No estaba pensado desde el principio, pero esta es una de las ventajas de crear y revisar un prototipo en equipo: descubrimos cosas que no sabíamos que queríamos y tuvimos que encontrar formas de implementar funciones nuevas en una función nueva sin que se nos fuera de las manos.

Por otra parte, los ingenieros empezaron a idear formas de implementar eficazmente los logros en los sistemas existentes. Recuperamos algunas técnicas que desarrollamos cuando mejoramos la experiencia para jugadores nuevos con el objetivo de unificar la creación de logros y añadimos recursos para satisfacer los nuevos requisitos de algunos de los logros. También queríamos asegurarnos de que la función rindiera correctamente en un juego de este calibre, una restricción que se suele pasar por alto en productos como MTG Arena, sobre todo si la gente está acostumbrada a trabajar en proyectos más pequeños o independientes. Se trata de un juego con miles y miles de jugadores de todo el mundo que acceden a través de una gran variedad de dispositivos y programas. ¿Cómo se vería afectado el rendimiento cuando se implementaran los logros? Esta es una de las cosas que tuvimos que tener en cuenta desde el inicio del proceso de diseño, para reducir al máximo posible el impacto negativo en los servidores y el rendimiento del juego.
Por último, es importante mencionar que, aunque los logros fueran responsabilidad del equipo de funciones, sabíamos que sería imprescindible colaborar con otros equipos. La mayoría de los logros se consiguen durante un juego de Magic, por lo que creímos necesario que las reglas del juego fueran tan importantes para los logros como lo son para las cartas.
Empezamos a esbozar el esqueleto de los logros con el equipo de colecciones, ya que los logros que se alcanzan durante una partida tienen requisitos técnicos únicos que no afectan a los que suceden fuera de las partidas. También colaboramos con el equipo de contenido para asegurarnos de que los logros nuevos fueran sostenibles, incluido el nuevo elemento estético vinculado a esta función (es decir, ¡los títulos!). Quien haya desarrollado un sistema de logros sabe bien que afectan a todas las facetas del juego. En el caso de MTG Arena, esto va desde las interacciones en las partidas hasta abrir sobres, construir mazos, jugar en distintos formatos… Y suma y sigue.
Es más fácil crear y mantener un software cuando las piezas complejas funcionan independientemente las unas de las otras. Sin embargo, esto le importa poco a una función como los logros, ya que dependen de todo lo demás.
Estuvimos inmersos en esta fase hasta el verano de 2024, a finales del cual conseguimos que varias piezas del rompecabezas funcionaran de forma independiente. Teníamos una página de logros rudimentaria (aunque usáramos marcadores de posición en lugar de datos de logros reales), algunos logros implementados en el servidor (aunque todavía no aparecieran en el cliente), muchas cosas en desarrollo y piezas intermedias para unirlo todo (como una página para ver y seleccionar los títulos).
Una odisea veraniega
A principios de verano, gran parte del equipo de funciones se tomó un descanso de los logros.
Quizá haya que explicarlo… o no, según lo bien que recuerdes el año pasado: 2024 fue un año irrepetible para MTG Arena debido a algunas colecciones complejas y prominentes, como Horizontes de Modern 3. Con ellas, llegaron oportunidades únicas de desarrollar funciones que estuvieran a la altura de este tipo de colecciones. Al mismo tiempo, nos dimos cuenta de que nos habíamos encallado buscando la manera de desarrollar de forma efectiva y sostenible los logros que se cumplen mientras juegas (más complicados de resolver que los que no). Decidimos poner en marcha este plan:
- Una parte del equipo se encargaría de las mayores dificultades que presentaban los logros durante las partidas.
- El resto del equipo de funciones dejaría de lado los logros para trabajar en otras cosas.
Los miembros del equipo que no trabajaron en los logros crearon unas cuantas funciones interesantes, como la posibilidad de vender mazos preconstruidos en la tienda y un emporio que todos conocemos (también llamado “Escondite del horizonte de la Rana psíquica”). Siempre había una parte del equipo dedicada a las funciones menores, las mejoras de comodidad y las correcciones de errores, por lo que, aunque no estuvieran trabajando en los logros, ¡le sacaron un buen provecho a este periodo!
Mientras tanto, la implementación de los logros durante las partidas empezó a tomar forma. El equipo encontró la manera de implementar estos logros en la forma en la que se expresan las habilidades de Magic: The Gathering. Cuando un jugador entra en un juego, comprobamos qué logros pueden verse afectados durante la partida y hacemos que el motor de reglas cargue esos logros como algo parecido a una habilidad. (Ojo, los logros no son habilidades como tal para evitar que interactúen con otros efectos que sí se fijan en las habilidades, y esto es algo que tuvimos que tener en cuenta al implementar el sistema de esta forma). Cuando se dan las circunstancias que desencadenan un logro o que hacen que progrese, el juego lo registra. La forma en que la señal del logro actualiza el progreso del jugador es similar al funcionamiento del medidor de las misiones diarias. Para que los diseñadores pudieran reutilizar las mismas señales para los logros y crear logros fácilmente, hicimos que los desencadenantes de los logros pudieran procesar parámetros, es decir, partes del texto de reglas que pudiéramos añadir o retirar según fuera necesario para crear una plantilla para los desencadenantes.
Pongamos como ejemplo el logro “Crecimiento y fuerza”, que dice así: “Lanza 250 hechizos de Elfo o Hidra a lo largo de cualquier cantidad de juegos”. El texto de reglas del desencadenante de este logro es el siguiente:
Siempre que lances un hechizo de {SubtypeParameter 1} o un hechizo de {SubtypeParameter 2}, {UpdateAchievement}.
En este caso, sustituimos SubtypeParameter # por el subtipo Elfo o Hidra, respectivamente. Estas fantásticas piezas nuevas, SubtypeParameter # y UpdateAchievement, no forman parte del lenguaje de Magic: The Gathering como tal, pero lo importante es que son elementos que el motor del juego entiende. De esta forma, el motor del juego puede cargar correctamente los desencadenantes de los logros y verificarlos junto con los disparos y estados del juego habituales. Una ventaja de hacerlo así es que el motor de reglas también cuenta los desencadenantes de las cartas que cumplen estos parámetros según las reglas del juego. Por ejemplo, un Cambiaformas cuenta para el logro “Crecimiento y fuerza”, porque es de todos los tipos de criatura (Elfo e Hidra incluidos).
Para cuando terminó el verano, el aspecto técnico de los logros durante las partidas había avanzado lo suficiente, ya nos habíamos despedido de Horizontes de Modern 3 y estábamos listos para seguir trabajando en los logros.
Hacia la línea de meta
De finales de verano hasta otoño, nos dedicamos exclusivamente a unir todas las piezas de la función, implementar los logros que faltaban y pulir la interfaz y la experiencia de usuario. Dividimos los logros en dos grupos: uno para los generales y el otro para los logros asociados con cada color de Magic. Empezamos a tener versiones definitivas de las imágenes, iconos y texto de muchos de los logros, nos aseguramos de que las pantallas funcionaran en todos los dispositivos móviles y con todas las opciones de visualización, y añadimos herramientas para que el equipo de control de calidad pudiera poner a prueba logros concretos más fácilmente. Por aquel entonces, esperábamos poder estrenar la función con Magic: The Gathering - Cimientos y, viendo lo que nos quedaba por hacer, parecía factible.
Aunque los ingenieros manifestaban un optimismo prudente, teníamos que estar completamente seguros de que los logros funcionarían bien con una gran cantidad de personas jugando simultáneamente. Para ello, elaboramos una simulación: creamos un montón de “jugadores” automatizados que se comportaran como jugadores reales, activamos los logros y nos sentamos a ver qué pasaba. Por suerte, ¡fue muy bien! Tal y como esperábamos, los servidores aguantaron.
A pesar de ello, a medida que seguíamos desarrollando y probando los logros, sentíamos que faltaba algo. Teníamos la impresión de que llegaban al bien, pero no al sobresaliente. No es solo que al proyecto le faltase un repaso, es que lo pedía a gritos. No queríamos descartar algunos de los logros más creativos por miedo a que no funcionaran adecuadamente con los posibles escollos que quedaran en el sistema. Tampoco queríamos estrenar la función sin la opción de poder hacer el seguimiento de un logro favorito en la barra de misiones, ¡porque nos parecía una idea estupenda! Por otro lado, no dejaban de aparecer errores que, por mucho que no fueran flagrantes, nos daban un poco de reparo. ¡Y queríamos que el equipo de control de calidad pudiera revisarlo todo con calma! Además, se cernía sobre nosotros uno de los valores más importantes del equipo de MTG Arena: no hacer horas extra.
A medida que se acercaba la fecha de lanzamiento de Magic: The Gathering - Cimientos, tuvimos que decidir si nos sumábamos o si nos echábamos para atrás. Al final, pensamos que, aunque fuera posible estrenar la función con Magic: The Gathering - Cimientos, queríamos darle el cariño que se merecía, aunque esto significara lanzarla más tarde de lo esperado. Se acercaban las fiestas y un nuevo lanzamiento, así que optamos por estrenar los logros con la siguiente colección principal, Aetherdrift. Por suerte, siempre desarrollamos nuestras funciones para que se puedan aplazar sin problemas (algo muy recomendable en la industria del software), así que hicimos nuestra magia y pospusimos el lanzamiento.
Durante las semanas siguientes, tuvimos claro que habíamos tomado la decisión correcta: seguimos encontrando errores, excepciones y experiencias que resultarían desconcertantes para los usuarios. Técnicamente, podríamos haber lanzado los logros antes, pero no habrían cumplido nuestras expectativas ni las de los jugadores. Al tener más tiempo de lo previsto, pudimos limar las asperezas y acabar de pulirlo todo (algo que hacía mucha falta). Modificamos los logros para que se leyeran mejor en el cliente, añadimos las animaciones de movimiento tan flamantes que tienen y les dimos un toquecito de estilo a las notificaciones. La función no solo llegó al sobresaliente, sino que, tal y como esperaba el equipo, se llevó la matrícula de honor.

¡Logros conseguidos!
En la versión de los logros que debutó con Aetherdrift, hay un total de 63 logros generales y 50 logros asociados a un color de Magic (diez por cada color), lo que suma un total de 113 logros. Es cierto que no alcanza la cifra inicial de 126, pero eso se debe a que el equipo eliminó algunos logros en la fase de desarrollo porque hubieran podido incitar comportamientos indebidos entre los jugadores o simplemente porque no eran divertidos. ¡En ningún caso fue porque no logramos que funcionaran! Hubo algunos logros que se alejaron del concepto original, pero casi todos los que planificamos inicialmente acabaron en la versión final de la función. Estamos satisfechos con la cantidad y variedad de logros: los hay de muchas dificultades y para muchos estilos de juego, y están bien repartidos entre todos los colores.
También incluimos un montón de recompensas para los logros: avatares, gestos y protectores de cartas nuevos, además de elementos cosméticos y títulos inéditos que te permitirán alardear de tu poderío ante tus oponentes.

Estamos muy orgullosos de todo el empeño que pusimos para que los logros vieran la luz del día. Nos esforzamos mucho para hacer las cosas de forma responsable, sostenible y con esmero, y esto no fue una excepción. No son retos genéricos y cualesquiera, ¡sino que podrás obtener logros artesanales, hechos a mano con mucho amor!
Como siempre, el equipo de MTG Arena estará al tanto de cómo recibe la comunidad esta novedad y retocará los errores que vaya encontrando. Si tienes algún comentario o sugerencia, no dudes en ponerte en contacto con nosotros. ¡Somos todo oídos!
Gracias por leerme. ¡Disfruta de los logros y hazte con todos!