Como equilibrar o ganho de experiência em um RPG

10

Atualmente, estou desenvolvendo um jogo de RPG com um clássico de experiência e mecânica de nivelamento. O jogador mata monstros, ganha pontos de experiência, sobe de nível quando coletar o suficiente e se tornar mais forte.

Como equilibrar a quantidade de pontos Exp necessários para alcançar cada nível e a quantidade de Exp concedida por cada monstro em cada nível?

Philipp
fonte
Obrigado por publicar. Acho que as perguntas com resposta automática para compartilhar informações são ótimas. No entanto, acho que a questão deve ser independente. Se esta pergunta fosse publicada sem a resposta, provavelmente seria fechada demais. Talvez você possa modificar um pouco a pergunta para incluir mais requisitos e especificar o problema exato que você enfrentou? A questão é muito ampla no momento e a resposta é essencialmente "depende do que você deseja".
MichaelHouse

Respostas:

18

A melhor maneira de chegar a uma conclusão a esse respeito é - como a maioria das coisas no desenvolvimento de jogos -, primeiro pense em como você deseja que o jogo seja jogado e depois faça a matemática que resultará no jogo assim.

Quanto tempo você quer que o jogador jogue em cada nível?

Em um RPG para um jogador focado na história, é provável que você queira manter os upgrades como um fluxo de recompensa constante e fazer com que o jogador suba de nível a cada poucos minutos durante todo o jogo. A taxa de upgrades permanece constante; portanto, sua função de minutos por nível é uma constante ( time = c).

Em um jogo mais focado em conquistas, como um MMORPG, você geralmente quer que os upgrades sejam frequentes para iniciantes, mas se tornam cada vez menos frequentes quanto mais o jogador progride. Nesse caso, sua função de minutos por nível seria polinomial ( time = Level ^ c) ou mesmo exponencial ( time = c ^ Level). Tomar o número do nível como está em uma fórmula exponencial é geralmente muito extremo, no entanto. Pode ser uma boa idéia dividi-lo por uma constante para tornar o aumento muito mais lento, mantendo-o exponencial ( time = c1 ^ (1 + Level / c2)).

Eu recomendo que você use uma planilha para calcular os números. Crie uma tabela com uma coluna com os números de 1 ao seu nível máximo esperado e uma segunda coluna com a fórmula do nível. Isso permite que você experimente facilmente diferentes fórmulas para encontrar números que são do seu agrado. Talvez você obtenha melhores resultados ao combinar um polinômio com um componente exponencial?

Lembre-se de que você está vendo o tempo de combate líquido aqui. A hora do jogo em que o jogador está coletando ativamente pontos de experiência. Não conta o tempo que o jogador gasta conversando com os NPCs, comparando seus equipamentos e realiza outras tarefas que não causam progresso diretamente.

No meu jogo atual (um MMORPG), criei a fórmula seconds(level) = 10 ^ (1 + Level / 20). Os primeiros níveis levam apenas segundos de combate real (gratificação instantânea durante a fase do tutorial), os níveis 20 a 40 levam minutos, nos anos 50 se tornam horas por nível e, quando quase o nível máximo de 100, leva semanas inteiras para ser visto progresso.

Quão diferente deve ser a experiência recompensada por inimigo?

Mesmo quando seus inimigos não possuem uma estatística de nível explícita (ou significativa), você desejará projetá-los para serem um desafio equilibrado para um determinado nível de personagem. Mas quanto mais experiência um inimigo deve recomendar para o nível 40 recompensar sobre um recomendado para o nível 30?

A resposta a esta pergunta está intimamente relacionada a quanto mais poderoso o personagem fica por nível e a que distância você deseja permitir que ele esteja à frente ou atrás dos inimigos atuais com seu nível de personagem.

Alguns sistemas de jogo, como o de World of Warcraft, por exemplo, tornam bastante inútil perseguir qualquer combate com um inimigo um pouco abaixo ou acima do nível do personagem do jogador. Qualquer coisa que apenas alguns níveis acima aniquile o jogador, qualquer coisa que esteja abaixo de alguns níveis não será um desafio (e nenhuma recompensa).

Um contra-exemplo seria a série Disgaea. Nesse jogo, você pode derrotar facilmente inimigos com várias vezes o nível de seus próprios personagens quando o joga de maneira inteligente.

Quanto mais restritivo você quiser estar na faixa de nível, o que é uma luta justa para o jogador, mais você precisa garantir que o jogador não fique para trás ou supere o nível dos inimigos que estão lutando atualmente. Quando o jogador fica para trás dos inimigos, o jogo se torna frustrantemente difícil sem triturar. Quando o jogador fica à frente dos monstros, o jogo se torna muito fácil e chato.

Uma boa maneira de manter o jogador dentro da faixa de nível é aumentar a recompensa de exp por nível. Por um lado, permitirá facilmente que o jogador se recupere quando estiver ligeiramente abaixo do nível recomendado. Por outro lado, não permitirá que eles subam de nível eficientemente em inimigos fracos sem avançar para uma área mais difícil.

Uma curva polinomial de exp ( exp = Level ^ c) geralmente funciona bem. Quanto maior o valor de c, mais você força o jogador na faixa de nível atual dos monstros que ele luta.

Lembre-se de que inimigos que levam mais tempo para derrotar também devem proporcionar proporcionalmente mais experiência. Uma batalha que leva 20 segundos deve dar o dobro de exp de uma que leva apenas 10 segundos. Isso estende sua fórmula para exp = (Level ^ c) * minutes_per_combat.

A fórmula final de exp por nível

A fórmula final agora pode ser derivada dos dois. O experience per levelé o time per level in minutesmultiplicado pelo experience gained per minute. Portanto, basta pegar as duas fórmulas que você criou nas duas últimas seções e multiplicá-las. Aí está: Sua fórmula de experiência por nível.

Com um aumento de tempo polinomial por nível, a fórmula seria

exp(level) = (level ^ c1) * (level ^ c2)

Onde

  • c1 depende de quanto tempo você deseja que cada nível demore
  • c2 depende de quão perto você deseja manter o jogador ao nível dos inimigos que eles lutam

O que poderia dar errado?

Mesmo o melhor conceito pensado não pode substituir o teste de reprodução adequado. Se o seu teste de jogo mostrar que os jogadores médios progridem muito mais rápido ou mais devagar do que você deseja, geralmente é um sinal de que você superestimou ou subestimou os níveis recomendados de seus inimigos e quanto tempo leva para o jogador médio matá-los. Tente analisar junto com seus testadores quais são os inimigos mais difíceis de matar em qual nível de personagem e ajuste o valor de exp ou estatísticas de acordo.

Philipp
fonte