Que função de pontuação / nível é frequentemente usada?

9

Em muitos jogos, você aumenta um nível quando atinge uma certa pontuação, e os níveis posteriores são mais difíceis de alcançar do que no começo.

Eu estou suspeitando que é algum tipo de função exponencial que é usada, por exemplo, em WoW.

Alguém sabe de uma boa função exponencial para esse fim?

Sandra Schlichting
fonte

Respostas:

11

Não existe um padrão, nem existe realmente nenhuma razão para que exista. As pessoas parecem gostar do crescimento exponencial, pois elas se sentem cada vez mais poderosas e enfrentam proporcionalmente mais desafios a cada vez, mas, na verdade, isso só é verdade se a maneira como você acumular pontos também não mudar proporcionalmente. . Se a experiência por vitória aumenta com a mesma taxa que a experiência por nível, então há pouco sentido em aumentar - ambos poderiam permanecer constantes.

Além disso, a implicação é que você não pode simplesmente escolher uma função para como deseja que a sua curva de experiência vá sem saber como deseja que sua acumulação de experiência ocorra. E essa é uma decisão de design de jogo com base no tipo de experiência que você deseja, e não em uma que possamos oferecer.

Ainda assim, para responder à sua pergunta: o tipo de função que você já viu em outros lugares é algo parecido com isto, um polinômio trivial com um fator de escala:

threshold_for_next_level = x * nível atual y

Os valores típicos podem ser x = 1000, y = 1,5. por exemplo:

level 1 = 1000
level 2 = 2828
level 3 = 5196
...
level 10 = 31623
etc.

Se você deseja que a inclinação seja mais íngreme, você aumenta y. Se você deseja que os números sejam maiores, você aumenta x.

Você pode querer ter números mais arredondados; nesse caso, basta arredondar o resultado final para 2 ou 3 dígitos significativos ou o milhar mais próximo, o que você quiser.

Lembre-se de que esses valores não têm sentido isolados. Se exigir 15000 de experiência para ir do nível 15 ao nível 16, você deve garantir que o design do seu jogo torne prático para um personagem do nível 15 acumular 15000 pontos de experiência durante o jogo normal. Não faz sentido ajustar a curva após o teste, porque isso geralmente consome muito tempo - você deve começar com uma curva que corresponda aos prêmios que o seu jogo concede de uma maneira que se adapte ao seu projeto pretendido.

Kylotan
fonte
4

Moria / Angband (e todos os seus spinoffs, incluindo - debatably - Diablo) baseiam seus sistemas no nível de monstro correspondente ao nível do jogador, para ver o que você ganha, com requisitos crescentes de XP por nível além disso.

Em Diablo , existem níveis ótimos de monstro que você pode matar, dentro de 5 níveis positivos e negativos. Parece algo assim (desculpas se isso não for exato, fãs do Diablo):

XP Gain = monsterBaseXP * (5-|(characterLevel-monsterLevel)|) / 5
(where result cannot drop below 0)

Exemplos de personagem Nível 16: Nível do monstro A: 16. Ganhe 100% do XP base de monstro. Nível do monstro B: 13. Ganhe 40% do XP base de monstros. Nível do monstro C: 20. Ganhe 20% de XP base de monstro. Nível do monstro D: 23. Ganhe 0% do XP base de monstros.

No Angband (o modelo que eu prefiro), é algo como isto:

XP Gain = monsterBaseXP * monsterLevel / characterLevel.

Portanto, se você matasse um monstro de nível 50 quando estivesse no nível 5, ganharia 10x o XP que um personagem de nível 50 que matasse o mesmo monstro ganharia. Eu gosto disso, é de alto risco, alta recompensa. Eu perdi milhares e milhares de caracteres em Angband por causa disso. Mas quem faz, bem, são os lendários. Eu acho que atingi o nível 29 instantaneamente do nível 1;) Da mesma forma, um personagem do nível 50 que mata um monstro de nível 5 ganha 1/10 do XP, um personagem de nível um que ganha por matar esse monstro. Além disso, como os XPs básicos também aumentam, isso significa que matar monstros de baixo nível ainda pode render alguma recompensa, mas diminuir demais e se tornar totalmente inútil.

Em ambos os jogos, eles usam adicionalmente multiplicadores no XP necessário (em uma escala crescente), no entanto, e a proporção entre esse e o nível ideal de monstro que o XP recebe fica gradualmente mais acentuada.

A forma mais simples dessa idéia é fazer o seguinte. Decida quantos monstros de nível igual a você, você deve matar cada nível para classificar (ignorando recompensas de missões, etc.). Digamos 100 - independentemente do seu nível. Diga que se o jogador mata um monstro de igual nível para si, ele ganha 1XP.

Usando uma fórmula semelhante ao Angband para recompensar aumento e redução de acordo com o nível de monstro, sua tabela de nivelamento é linear:

1: 100xp
2: 200xp
3: 300xp

...E assim por diante. Acho que esse é o ponto de partida mais fácil - ajuste conforme o necessário, inclua XPs base de monstros, pontos de corte de nível etc. no conteúdo do seu coração.

Engenheiro
fonte