Fechar menu lateral

Otimizando Personagens Com Cálculo: O Mínimo que você deve saber para Maximizar seus Atributos

Autor: Emerson Berg Jorge Pereira (ebergp@gmail.com)

Revisores: Rock Fagundes e Wesley de Barros

 

Você já passou horas decidindo se colocava aquele ponto de habilidade em Força ou em Inteligência? Ficou quebrando a cabeça para saber qual melhor skill ‘upar’ para aumentar o dano do seu personagem?

 

O que poucos jogadores sabem é que por trás dessas decisões aparentemente simples está um conceito poderoso do cálculo matemático: a otimização usando derivadas. Sim, a mesma matéria que você talvez tenha visto (ou temido) na faculdade, é uma ferramenta essencial para qualquer min-maxer que se preze.

 

Neste artigo, vamos desmistificar esse conceito e mostrar como você pode usá-lo para tomar as melhores decisões em seus jogos favoritos.

 

O Problema: Recursos Limitados

 

Em quase todo RPG, os recursos são limitados. Você tem um número finito de pontos de atributo, pontos de habilidade ou pontos de perícia. O grande desafio do jogo é alocar esses pontos da forma mais eficiente possível para maximizar o que você deseja: seja o Dano por Segundo (DPS), a chance de acerto ou a sobrevivência.

 

É aqui que o Cálculo entra em cena.

 

O Conceito: Derivadas e Pontos de Máximo

 

Imagine uma colina. O topo da colina é o ponto mais alto, o máximo. Uma derivada, em termos simples, é uma ferramenta matemática que nos diz a inclinação da colina em qualquer ponto (Figura 1).

Figura 1: A derivada é o ângulo da reta (azul) que tangencia um determinado ponto de uma função (vermelho). Os pontos de máximo e mínimo são encontrados onde a inclinação é zero. Fonte: http://www.vc.ehu.es/campus/centros/farmacia/deptos-f/depme/apuntes/gracia/animadas/animadas.htm

Figura 1: A derivada é o ângulo da reta (azul) que tangencia um determinado ponto de uma função (vermelho). Os pontos de máximo e mínimo são encontrados onde a inclinação é zero.

  • Se a inclinação for positiva (derivada > 0), você ainda está subindo. Vale a pena continuar investindo.
  • Se a inclinação for zero (derivada = 0), você chegou ao topo! Investir mais não traz ganhos significativos.
  • Se a inclinação for negativa (derivada < 0), você já passou do topo e está descendo. Os retornos estão diminuindo.

 

Em jogos, estamos procurando o topo da colina, o ponto de retorno máximo para nossos investimentos.

 

Exemplo 1: Maximizando o Dano de Blessed Hammer em Diablo 2

 

Vamos pegar um dos casos mais famosos de build de Diablo II: o Hammerdin. A skill Blessed Hammer é a principal fonte de dano, e seu poder é drasticamente aumentado por uma sinergia da skill Vigor.

 

Nosso objetivo é maximizar o dano do Blessed Hammer. Temos um número limitado de pontos de skill ‘P’ (digamos, 40 pontos, após descontos para skills de pré-requisito) para distribuir entre:

 

  1. Blessed Hammer (skill nível ‘b’): A skill em si.
  2. Vigor (skill nível ‘v’): Sua sinergia principal, que aumenta o dano de Blessed Hammer.

 

Portanto, temos a restrição b+v = P, ou v = P-b. Note que usamos a convenção de chamar as variáveis por letras minúsculas e as constantes por maiúsculas, para facilitar o entendimento das etapas do cálculo.

 

Pelos dados do DiabloWiki, Blessed Hammer é uma skill que começa com um dano médio de 14 no nível 1 e aumenta linearmente por partes: 8 a mais de dano por nível até o nível 8, 10 a mais até o 16 e 12 a partir do 17 (a tabela para no nível 20, vamos assumir que a progressão continua seguindo esse padrão).

 

Chamando este incremento variável de ‘I’ – na verdade é uma constante, mas varia de acordo com o intervalo de ‘b’ –, o dano médio de Blessed Hammer é uma função do nível de sua skill, expressa por:

 

M(b) = 14 + I*(b-1)

 

Cada nível de Vigor aumenta em 14% o dano de Blessed Hammer, ou seja: Dano Final = (Dano Médio de Blessed Hammer) * (1 + (Sinergia de Vigor * 0.14)).

 

Chamando o Dano Final em função do nível ‘b’ de D(b):

 

D(b) = M(b) * (1 + v*0.14)

 

Substituindo v por P-b, para deixar tudo em função de b:

 

D(b) = M(b) * (1 + (P-b)*0.14)

D(b) = (14 + I*(b-1)) * (1 + (P-b)*0.14)

D(b) = (14 + I*(b-1)) + (14 + I*(b-1))*(P-b)*0.14

D(b) = 14 +b*I – I + (14*P – 14*b +b*P*I – b*b*I – P*I +b*I)*0.14

 

Separando constantes de variáveis – as constantes serão zeradas após a derivação, pois a inclinação de uma reta horizontal é zero:

 

D(b) = b*I*1.14 + (-14*b + b*P*I – b*b*I)*0.14  + (14 – I + 14*P*0.14 – P*I*0.14)

D(b) = b*(I*1.14 + (-14 + P*I – b*I)*0.14) + (14 – I +14*P*0.14 – P*I*0.14)

 

Agora, usamos o cálculo! Derivamos a função D(b) para encontrar sua inclinação (não entrarei em detalhes como a derivação é feita, embora seja trivial derivar polinômios. Calculadoras científicas online ou mesmo uma consulta no seu browser podem resolver a derivada).

 

D’(b) = I*1.14 + (-14 + P*I – 2*b*I)*0.14

 

Igualando a derivada a zero para encontrar o “topo da colina”:

 

I*1.14 + (-14 + P*I – 2*b*I)*0.14 = 0

b = (I*8.14 + P*I – 14) / (2*I)

 

Substituindo P por 40 do nosso exemplo, e considerando que Blessed Hammer ficará na faixa entre 17 e 24 (I = 12), chegamos que ‘b’, o nível da skill de Blessed Hammer, é igual a 23.49 (Figura 2). Como o nível da skill deve ser um número inteiro, testamos os valores vizinhos:

Figura 2: Calculadoras gráficas podem ser utilizadas para desenhar a função desejada e determinar os pontos de máximo e mínimo, sem a necessidade de utilizar o cálculo com derivadas.

Figura 2: Calculadoras gráficas podem ser utilizadas para desenhar a função desejada e determinar os pontos de máximo e mínimo, sem a necessidade de utilizar o cálculo com derivadas.

 

  • Para Blessed Hammer nível 23 e Vigor nível 17, M(23) = 278 e D(23) = 939.64.
  • Para Blessed Hammer nível 24 e Vigor nível 16, M(24) = 290 e D(24) = 939.60.

 

Figura 2: Calculadoras gráficas podem ser utilizadas para desenhar a função desejada e determinar os pontos de máximo e mínimo, sem a necessidade de utilizar o cálculo com derivadas.

Fonte: https://www.geogebra.org/calculator?lang=pt

 

Nesse exemplo simplificado – não foi utilizado outros multiplicadores, como a skill Concentration– , a melhor forma de distribuir 40 pontos de skill entre Blessed Hammer e Vigor para maximizar o dano é colocando 23 pontos em Blessed Hammer e 17 pontos em Vigor. Perceba o poder do Cálculo: a solução intuitiva de dividir os pontos igualmente (20/20) resultaria em um dano D(20) = 919.60, que é significativamente menor que os 939.64 que encontramos. O Cálculo nos mostrou o caminho para um dano 2.18% maior, o que em um jogos como Diablo II é uma diferença enorme.

 

Exemplo 2: Otimizando Perícias em RPGs

 

Sistemas de RPG de mesa como GURPS e Storytelling são um campo fértil para a otimização. Seu personagem tem um número limitado de pontos para distribuir entre atributos básicos (Destreza, Inteligência) e perícias (Arma Longa, Furtividade).

 

Muitos sistemas de RPG combinam atributos básicos e habilidades ou perícias para determinar dano ou chance de sucesso, algo como: Perícia = Atributo Base + Nível de Dificuldade + Pontos Gastos na Perícia

 

Suponha que você queira maximizar a chance de acerto com uma espada, que depende da perícia Esgrima (baseada em Destreza – DEX). Cada ponto em DEX fica progressivamente mais caro, enquanto cada ponto diretamente na perícia Esgrima tem um custo constante. A função que queremos maximizar, a Chance de Acerto, é uma função que depende da Destreza e da perícia Esgrima.

 

A derivada aqui nos ajuda a entender a taxa de retorno marginal. No início, é mais barato comprar pontos diretamente na perícia Esgrima. Depois de um certo nível, aumentar o atributo DEX (que afeta todas as outras perícias baseadas em Destreza) pode se tornar mais eficiente em termos de pontos, mesmo sendo mais caro.

 

Exemplo 3: Itens e Builds em Jogos Atuais

 

Em ARPGs como Path of Exile ou Diablo 4,  você precisa equilibrar atributos como “Chance de Acerto Crítico”, “Dano Crítico” e “Velocidade de Ataque” em seu equipamento. A função de DPS é uma multiplicação complexa desses fatores. Adquirir muito de um atributo e negligenciar outro leva a uma build subótima. Teorias de otimização multivariada (que usam derivadas parciais) são usadas por jogadores avançados para calcular a combinação perfeita de itens.

 

Em MOBAs como League of Legends, você decide se compra mais Poder de Habilidade (para aumentar o dano das skills) ou Penetração de Magia (para ignorar a resistência do inimigo). A escolha ideal depende dos atributos atuais do seu campeão *e* dos atributos do inimigo. Novamente, é um problema de maximização de dano sujeito a uma restrição (o ouro disponível).

 

Conclusão: Você já é (quase) um Matemático

 

Você pode não resolver equações na hora do jogo, mas seu instinto de jogador já lida com conceitos de cálculo o tempo todo. A sensação de “acho que agora vale mais a pena upar outra coisa” é, intuitivamente, você percebendo que a “derivada” do retorno daquela habilidade caiu.

 

Entender formalmente esse conceito tira a adivinhação do processo e transforma a criação de personagens e builds em um quebra-cabeça matemático profundamente satisfatório. Da próxima vez que for distribuir pontos, lembre-se da colina e pergunte a si mesmo: “Estou ainda subindo, ou já cheguei no topo e deveria investir em outro lugar?”.

 

A resposta, muitas vezes, está no Cálculo!

 

Referências