Sacadas do Desenvolvedor: Construtor de decks inteligente

Sacadas do Desenvolvedor: Construtor de decks inteligente

Saudações, pessoal! Eu sou Tian, cientista de dados sênior da equipe de Hearthstone, e estou aqui para falar do novo Construtor de decks inteligente e, espero, tirar umas dúvidas que pipocaram na comunidade desde que o recurso foi lançado.

Vamos começar com uma introdução simples ao recurso antes de entrar com tudo naquilo que todo mundo quer mais ver: ciência!

HS_Blog_Divider_Filigree_Bar.png

O que é o Construtor de decks inteligente?

Qualquer um sabe que criar um deck de Hearthstone pode ser diversão garantida e algo muito recompensador para jogadores experientes, mas tem gente que ficou um tempo sem jogar, gente que começou a jogar agora, gente que não tem tempo e gente que precisa de uma ajudinha para transformar a própria coleção de cards num deck que aguenta o tranco no ranqueado. É aí que entra o recurso de construção de decks inteligente. Com ele, vamos fazer o trabalho pesado e botar você para jogar com um deck consagrado e eficaz em poucos cliques!

Para usar a recomendação inteligente, comece criando um deck Padrão de qualquer classe, usando quantos cards quiser. Depois de clicar em “Completar Deck” ou “Pronto”, completaremos de forma inteligente o restante do deck com base nos cards que você escolheu, usando somente cards da sua coleção. Para dar um exemplo de como podemos completar um deck, se você escolher Oondasta e Fazer-se de Morto e der o controle para o Hearthstone, o Construtor de decks inteligente vai levar diversos fatores em consideração e, então, montar o que ele considera o melhor deck possível, como o célebre Caçador de Último Suspiro com Kathrena Friálgida.

03_27_HS_DeveloperInsights_SmartDeck_BlogDecklist_800x1000_JY_v01_enUS.png

Simples assim. Comece um deck do zero ou escolha alguns cards que você sabe que vai querer usar e nós cuidamos do resto, criando um deck incrível para você.

HS_Blog_Divider_Filigree_Bar.png

Como funciona:

Para ir direto à engenharia envolvida, o sistema de construção de decks inteligente tem duas camadas, cada uma com diversas subcamadas que vão preencher automaticamente o deck. Vamos falar sobre como cada uma dessas camadas opera para criar o deck que você quer:

Primeira camada da criação de deck: de olho no meta

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_300x400_JY_v01_H.jpg

Para evitar qualquer confusão, vamos falar rapidamente sobre o que queremos dizer quando mencionamos o “meta”. Meta é a abreviação de “metajogo” e serve para descrever as tendências atuais de decks, sobretudo nos modos ranqueados. Ao montar um deck, muitos jogadores tentam levar em conta o meta atual e incluem cards que vão ajudar contra decks que eles provavelmente vão enfrentar. Para dar um exemplo, num meta voltado para armas (com muitos decks populares contendo cards de armas), os decks provavelmente vão incluir Gosma Ácida do Pântano ou Gosma Glutona, para destruir as armas e reagir ao meta de forma eficaz.

Na primeira camada da criação (a camada do meta), tentamos montar o melhor deck possível com base no que está popular no meta, no que você já pôs no deck e no que está disponível na sua coleção. Para determinar o que é considerado o meta, usamos um algoritmo computacional para agrupar decks populares do mesmo tipo básico em subgrupos. Cada subgrupo representa um tipo de deck jogado no meta atual, como “Caçador de Segredo”, “Sacerdote de Dragões”, “Paladino Ímpar”, etc. O conteúdo de cada deck nesses subgrupos pode variar ligeiramente, mas, no fim das contas, eles são do mesmo tipo. Em termos de aprendizagem de máquina, esse processo é conhecido como “clustering”. Nosso algoritmo de clustering analisa dados que consistem em milhões de variações de decks, cada qual sendo um ponto de dados e cada ponto de dados representando um vetor em centenas de dimensões. Usando as informações agregadas em combinação com outras soluções matemáticas, o algoritmo preenche dinamicamente o deck até ele estar completo ou a segunda camada de “preenchimento” ser acionada.

Como jogadores com níveis de habilidade diferentes invariavelmente usam decks, padrões de jogo e desafios diferentes, o meta provavelmente vai variar com base na sua posição no ranking. Para resolver isso, temos diversas subcamadas para o processo de preenchimento do metadeck. Se for um jogador de ranque próximo do 20, você provavelmente vai obter um deck com meta diferente de um jogador com ranque de Lenda. Além disso, o nosso fluxo de relatórios de meta é atualizado com frequência, para que o seu deck esteja sempre atualizado.

Depois de tentar criar um deck eficaz no meta usando o que já estava no seu deck e na sua coleção, passamos para a segunda camada de criação:

Segunda camada de criação: preenchimento

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_300x400_JY_v01_G.jpg

Se a camada do meta não conseguir encontrar 30 cards para o deck usando sua coleção, a segunda camada, conhecida como camada de “preenchimento”, entra em cena. Ela garante que o deck fique completo e que ele use os melhores cards disponíveis. Primeiro, se o jogo concluir que não consegue formar um deck eficaz no meta usando a sua coleção, ele vai tentar formar o melhor deck possível com seus cards disponíveis. A ideia central do algoritmo de preenchimento é fazer um deck equilibrado com bons cards e uma curva de mana aceitável. Agora a pergunta é: como determinamos se um card é bom ou não para o seu deck?

Sem considerar sinergias únicas e potencial para combos, cada card tem um “poder” individual quando é usado num deck em cada classe. Esse número não é constante e muda dinamicamente com base nas condições atuais do deck. No entanto, a determinação do poder do card geralmente se baseia em três fatores:

  • Impacto no jogo: a contribuição do card para a taxa de vitórias do deck.
    • Por exemplo, Elemental da Água tem uma contribuição para a probabilidade de vitória maior que Corsário Terrível para Magos.

  • Pote de custo de mana: coleção de cards com o mesmo custo de mana.
    • Se o nosso objetivo é encontrar um card para ocupar uma vaga no pote de 1 ou 2 de mana, Escudeira Argêntea pode ser uma boa escolha, mas é quase certo que ela não serve para o pote de 5 de mana.

  • Evitando a saturação de um pote de mana:
    • Se já houver 10 cards no pote de qualquer quantidade de mana, evitamos adicionar outros cards na mesma faixa de custo, a não ser que sejam muito melhores que as alternativas.

Durante o processo de preenchimento, escolhemos dinamicamente o card com melhor poder para incluir no deck. Em termos matemáticos, o poder do card é uma função que consiste em termos transformados da contribuição para a taxa de vitórias somados a diversos termos de penalidade. Nosso objetivo a cada busca é encontrar, entre todas as soluções factíveis, o card que maximiza a função objetiva.

HS_Blog_Divider_Filigree_Bar.png

Coisas diversas, regras, e restrições

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_3Steps_600x260_JY_v01.png

Além da matemática avançada e dos métodos de aprendizagem de máquina, também implementamos diversas regras para o controle de qualidade nessas duas camadas de criação para garantir que o seu deck faça sentido. Por exemplo, se você já tem o Príncipe Keleseth no deck não finalizado, vamos tentar ao máximo evitar qualquer card com custo de dois de mana.

O Construtor de decks inteligente também tem um recurso de “recarga” para quem quer testar diferentes decks. Se você não puser nenhum card no deck e nos pedir recomendações repetidas vezes num curto período de tempo, vamos tentar fornecer diferentes decks a cada clique no botão. O recurso só é acionado quando o deck inicial é deixado vazio.

Quanto a restrições, por enquanto o Construtor de decks inteligente só está disponível para a criação de decks Padrão, mas estamos estudando o suporte ao modo Livre. Além disso, o recurso de recomendação de um único card visto ao tentar criar um deck com cards que não estão na sua coleção não utiliza no momento o sistema de recomendação inteligente.

HS_Blog_Divider_Gems.png

Fique à vontade para compartilhar decks bacanas que você criar com as recomendações de deck inteligentes e, se tiver alguma pergunta, deixe nos comentários abaixo. Nos vemos na Taverna!