A conquista de enviar conquistas

Sou Ben Elliott, engenheiro de software da equipe de recursos do MTG Arena. Se você é um jogador como eu, fica entediado fazendo apenas uma coisa. Você pode gostar mais de alternar entre formatos. Pode ser que entre em eventos rotativos; pode ser que monte um deck para, … bem, intimidar Faisquinha de maneiras cada vez mais criativas.
Em outras palavras, você pode ser um jogador que gosta de ter muitos objetivos.
Há muito tempo o MTG Arena deseja encorajar a exploração e diversos sistemas do jogo foram criados com este intuito. A experiência para novos jogadores é o exemplo mais proeminente de tal objetivo. O MTG Arena busca facilitar sua experiência nesta escalada monumental que é Magic: The Gathering, uma cor e um deck por vez, até você se sentir confortável para jogar contra outras pessoas. Neste momento, com um pouco mais de experiência, incentivamos você a fazer as missões diárias. Deve ser complicado completar cada missão diária com o mesmo deck todos os dias — mas se você for como eu, vai gostar do desafio —, então vai acabar procurando técnicas, estratégias e cards que ainda não havia considerado.
Obviamente, a experiência de novos jogadores e as missões diárias têm um limite de aproveitamento — e você deve saber o que quero dizer. Desde o início do MTG Arena, os jogadores têm pedido por um sistema de conquistas de respeito que permitisse experimentação, criatividade e um distintivo brilhante para mostrar que você conseguiu. Pois bem, os designers e desenvolvedores do MTG Arena têm pensado nas conquistas desde o começo também; tivemos que pensar nos benefícios e percalços, nos desafios técnicos e, é claro, elaborar conquistas únicas, gloriosas e dificílimas. E com o lançamento de Aetherdrift, estamos felizes de anunciar que as conquistas finalmente chegaram!
No entanto, chegar aqui foi uma jornada um tanto sinuosa e
achamos que você iria gostar de dar uma espiada no nosso percurso. Sem mais delongas, foi assim que aconteceu …
Trabalho de campo e prototipagem
Falamos sobre as conquistas há muito tempo, mas a equipe de recursos do MTG Arena começou a trabalhar nelas na primavera de 2024.
Começamos com uma fase de design, definindo os objetivos de alto nível de um recurso como as conquistas e criando uma lista inicial das conquistas que desejávamos — que, a título de curiosidade, tinha 126 delas. Algumas das principais facetas do design que surgiram no começo foram:
- Engajamento: as conquistas devem ser divertidas de caçar e devem guiar os jogadores pela jornada de Magic.
- Diversidade: uma variedade de conquistas deve atender aos gostos de diferentes tipos de jogadores, dispondo de tudo que MTG Arena pode oferecer.
- Flexibilidade: a equipe queria adicionar, alterar e remover conquistas sem atrapalhar demais e dar controle total aos designers responsáveis por criá-las.
Tivemos muito cuidado com o escopo do recurso; se botássemos a carroça na frente dos bois, o recurso não seria conquistável, não é?
Enquanto isso, começamos a prototipagem de como mostrar as conquistas aos jogadores. Modelamos a interface, discutimos vantagens e desvantagens e experimentamos usando nosso cliente de jogo de maneiras nunca antes feitas.
Aqui está um bom exemplo: as notificações popup devem ser exibidas sempre que você obtiver uma conquista. Tínhamos que garantir que elas aparecessem em qualquer tela sem serem muito distrativas, mas sem deixar de notificar quando os jogadores tivessem feito algo notável. Os designers de experiência de usuário prototiparam diversas aparências para as notificações e, talvez mais importante, tínhamos que decidir onde na tela apareceriam. (Decidimos por usar o canto superior direito e manter a animação por um tempo breve.)

Foi nesta etapa que decidimos organizar as conquistas em grupos, tornando-os temáticos e mais fáceis de encontrar em uma lista que está sempre se expandindo. Por isso, também tínhamos que elaborar um método de organizá-las. A aparência desses grupos evoluiu diversas vezes ao longo da prototipagem e do desenvolvimento, com cada iteração melhorando nossas primeiras tentativas. Foi aqui que pensamos em mostrar conquistas em progresso “favoritas” no registro de missões diárias da página inicial. Não foi algo planejado desde o começo, mas esse é um dos benefícios de passar por várias rodadas de prototipagem colaborativa, permitindo-nos descobrir coisas que não sabíamos que queríamos e desafiando-nos a encontrar maneiras de implementar novos recursos em um igualmente novo recurso sem errar a mão.

Os engenheiros também começaram a pensar em maneiras de inserir as conquistas em nossos sistemas que já existem. Reutilizamos algumas técnicas desenvolvidas enquanto melhorávamos a experiência de novos jogadores para alcançar uniformidade na criação das conquistas e adicionamos suporte para satisfazer alguns dos novos requisitos que certas conquistas exigiriam. Também queríamos garantir que o recurso funcionasse em escala — uma restrição geralmente esquecida em jogos como MTG Arena, especialmente se você está acostumado a trabalhar em projetos menores e/ou independentes. Em um jogo com tantos jogadores, ao iniciá-lo em variados dispositivos e softwares do mundo inteiro, qual seria o impacto no desempenho ao habilitar as conquistas? Essa é uma das coisas que, desde o começo, tínhamos que tomar muito cuidado ao criar para gerar um impacto minimamente negativo nos servidores e na jogabilidade.
Por fim, embora o maior trabalho fosse para a equipe de recursos, sabíamos que precisaríamos de bastante colaboração entre equipes. A maioria das conquistas ocorre dentro de um jogo de Magic e queríamos garantir que pudéssemos escrever conquistas que levassem em conta as regras tanto quanto os cards levam.
Começamos a planejar a arquitetura das conquistas com a equipe de conjuntos de cards, já que qualquer relação com a jogabilidade teria requisitos únicos. Também nos juntamos com a equipe de conteúdo para garantir que todas as conquistas novas fossem sustentáveis, inclusive o novo tipo cosmético que vem com o recurso (os títulos!). Quem já fez um sistema de conquistas sabe que ele abrange cada ponto do jogo. Para o MTG Arena, representa tudo, de interações em partida à abertura de boosters, da construção de decks a jogar formatos diferentes … a lista é grande.
Softwares são mais fáceis de criar e manter quando todas as peças complexas não precisam levar em conta o que as outras peças complexas estão fazendo. Um recurso como conquistas ri deste ideal, pois ele leva tudo em consideração.
Esta fase terminou no verão de 2024 e, ao final, tivemos diversas peças do quebra-cabeça funcionando de forma independente. Fizemos uma página de conquistas rudimentar — usando placeholders em vez de dados de conquistas reais —, algumas implementadas no servidor — ainda sem exibição no cliente — e diversas alterações e peças intermediárias que ajudariam a juntar tudo, como uma página para visualizar e selecionar títulos.
Uma odisseia de solstício de verão
No início do verão, a maior parte da equipe de recursos tirou uma pausa do trabalho nas conquistas.
Dependendo da sua memória do ano passado, o nível de … explicação necessária pode ser diferente, mas 2024 foi especial para o MTG Arena, com algumas coleções importantes e complexas, como Modern Horizons 3. Isso nos deu oportunidades únicas de criar recursos que tivessem a ver com tais tipos de coleções. Ao mesmo tempo, percebemos que o trabalho em algumas conquistas era bloqueado pela busca de formas eficientes e substanciais de desenvolver conquistas dentro de partidas (um desafio inerentemente mais difícil). A solução foi:
- subdividir a equipe para discutir as partes completas das conquistas dentro de partidas e
- concentrar o restante da equipe de recursos nos recursos que não são conquistas.
A parte da equipe de recursos que não trabalhou nas conquistas produziu recursos interessantes. Adicionamos a possibilidade de vender decks pré-construídos na loja; além disso, certos empórios (originalmente Horizon Hideaway de Psychic Frog) surgiram. A qualquer momento, metade de equipe de recursos trabalha em recursos menores, melhorias de qualidade de vida e correções de bugs. Fique tranquilo, esta parte da equipe estava investindo bem seu tempo!
Enquanto isso, a implementação das conquistas dentro de partidas começava a tomar forma. A equipe determinou a inserção conforme a linguagem das habilidades de Magic: The Gathering. Quando um jogador inicia um jogo, verificamos quais conquistas podem ser relevantes naquele jogo e mandamos o mecanismo de regras carregar aquela conquista como algo parecido com uma habilidade. (Observação: esta não é uma habilidade de verdade, evitando assim que as conquistas interajam com outros efeitos durante uma partida que levam em consideração as habilidades — sim, tivemos que pensar nisso ao implementar o sistema desta forma.) Quando ocorrem as circunstâncias que desencadeiam a conquista ou seu progresso, o jogo as registra. O sinal de conquista atualiza o progresso do jogador da mesma forma que fazem as métricas de missões diárias. Para possibilitar que os designers reutilizassem os sinais de conquista e conquistas de autor mais facilmente, também adicionamos a habilidade de acionadores de conquistas tomarem parâmetros: partes do texto de regras que poderíamos inserir ou retirar conforme necessário para modularizar o acionador.
Como exemplo, considere a conquista “Crescimento e Força” que exige que você “Conjure 250 mágicas de Elfo ou de Hidra ao longo de qualquer quantidade de jogos”. O texto de regras deste acionador de conquista é:
Toda vez que você conjurar uma mágica de {SubtypeParameter 1} ou de {SubtypeParameter 2}, {UpdateAchievement}.
Em nosso exemplo, substituímos nº de SubtypeParameters com os subtipos de Elfo e Hidra, respectivamente. Essas belas novas palavras-chave SubtypeParameter nº e UpdateAchievement não são parte da linguagem de Magic: The Gathering, mas o que importa é que existem e que o mecanismo do jogo as entende. Agora o mecanismo de jogo pode carregar estes acionadores de conquista e verificá-los com os outros acionadores e estados de jogo. Um bônus desta abordagem é que o mecanismo de regras também considera acionadores de cards que cumprem estes requisitos conforme especificidades das regras — por exemplo, um Morfoloide pode progredir na conquista “Crescimento e Força”, já que um Morfoloide é todo tipo de criatura (o que inclui Elfo e Hidra).
No fim do verão, a tecnologia das conquistas dentro de partidas estava formada, Modern Horizons 3 estava disponível e estávamos prontos para encerrar as conquistas com entusiasmo.
Perto da linha de chegada
No fim do verão e no outono, mergulhamos na integração das peças dispersas do recurso, implementando as conquistas restantes e polindo a interface e experiência de usuário. Dividimos as conquistas em dois “conjuntos”: um para as principais com foco geral e outro para aquelas associadas a cada cor de Magic. Começamos a fazer as artes, ícones e textos finais para todas as conquistas. Garantimos que cada tela funcionasse em todos os layouts de dispositivos móveis. Adicionamos ferramentas para QA que lhes permitissem testar conquistas específicas mais facilmente. Naquele momento, esperávamos ter o recurso pronto para lançamento juntamente com Magic: The Gathering Foundations e, com base no trabalho que restava, parecia possível.
Enquanto os engenheiros tinham otimismo calculado, precisávamos saber que o recurso funcionaria com um grande número de jogadores simultâneos, então fizemos uma simulação. Criamos vários “jogadores” automatizados que agiriam como jogadores reais, habilitamos as conquistas e assistimos aos procedimentos. Por sorte, tudo deu muito certo! Os servidores aguentaram conforme esperado.
Ainda assim, conforme o tempo passava, ao longo do desenvolvimento e dos testes, sentimos que faltava algo. O recurso estava mais para “bom o bastante” do que para “excelente”. O polimento de cada peça do recurso não era um desejo, era uma necessidade. Não queríamos cortas as conquistas mais criativas porque não tinham uma progressão fácil ao longo das partes complexas do sistema. Também não queríamos lançar sem o componente já mencionado de “acompanhar uma conquista marcada como favorita no registro de missão”! Foi uma ótima ideia! À medida que continuávamos encontrando bugs, embora não fossem sérios, eles instigavam uma desconfiança. Queríamos que a equipe de QA tivesse tempo de testar tudo! Um dos valores mais importantes que a equipe do MTG Arena defende apareceu: nada vai ficar faltando.
Conforme o prazo de Magic: The Gathering Foundations se aproximava, enfrentamos um momento “ou vai ou racha”. Decidimos que poderíamos lançar em Magic: The Gathering Foundations, mas decidimos dar a devida atenção ao recurso, ou seja, postergar o lançamento. Dada a chegada das festas e do cronograma, passamos o recurso para Aetherdrift, o próximo grande lançamento. Por sorte, como todos os nossos recursos, foi fácil movê-lo para outro lançamento — algo sábio de se fazer na indústria de softwares.
Nas semanas seguintes, crescia a confiança de que havíamos tomado a decisão certa. Continuamos encontrando bugs, casos raros e experiências de usuário esquisitas no recurso. Tecnicamente, lançar as conquistas antes teria funcionado, mas não conforme nossos padrões e de nossos jogadores. O tempo adicional nos permitiu eliminar os bugs e adicionar um polimento muito necessário. As conquistas no cliente ficaram mais legíveis e ganharam até animações e suas notificações ficaram mais estilosas. O recurso não só nasceu, ele floresceu, conforme a equipe esperava.

Conquistas concluídas!
Na versão das conquistas lançada em Aetherdrift, há 63 conquistas “principais” e 50 associadas às cores de Magic (dez de cada cor), totalizando 113. Sim, é um pouco menos que a lista inicial de 126, mas a equipe cortou algumas conquistas no meio do desenvolvimento porque sentimos que elas poderiam encorajar comportamentos problemáticos ou porque não eram divertidas de alcançar. Não foi porque não conseguíamos fazê-las funcionar! Algumas outras foram refeitas, mas a maioria das que foram planejadas no início chegaram ao recurso finalizado. Ficamos felizes com o número e a variedade de conquistas; há várias dificuldades, equilíbrio de cores e estilos de jogo.
Também incluímos belas recompensas pelas conquistas: novos avatares, emotes, protetores e até novos cosméticos: os títulos, uma nova maneira de mostrar aos oponentes que você é um biscoito durão.

Ficamos muito orgulhosos de todo o trabalho que envolveu a entrega das conquistas para você. Como em todos os nossos trabalhos, a equipe se esforçou muito para fazê-las com responsabilidade, sustentabilidade e foco. Estas não são listas rotineiras, são conquistas “feitas à mão” e elaboradas com amor para você!
Como sempre, a equipe do MTG Arena continuará monitorando as respostas da comunidade sobre o recurso e amarrando pontas soltas à medida que as encontrarmos. Compartilhe sua opinião conosco, pois estamos sempre disponíveis!
Obrigado por ler e boa caçada!