Como implementar um sistema de experiência?

14

Atualmente, estou escrevendo um pequeno jogo baseado em ganhar experiência ao matar inimigos. Como sempre, cada nível requer mais experiência do que o nível anterior e, em níveis mais altos, matar inimigos concede mais experiência.

Mas tenho um problema ao equilibrar esse sistema. Existem algoritmos pré-criados que ajudam a calcular como deve ser a curva de experiência necessária para cada nível? E quanta experiência um inimigo médio em um nível específico deve fornecer?

RoflcoptrException
fonte

Respostas:

14

Você gostaria de algum tipo de curva exponencial, provavelmente algo como:

base_xp * (level_to_get ^ factor)

base_xp é uma constante que decide quanto xp você precisa para subir de nível.
level_to_get é o nível que você está buscando; no nível 1, esse será o nível 2. O
fator é outra constante que decide quanto de aumento de xp você precisa para cada nível.

Ter uma base_xp de 200 e um fator de, digamos, 2, dá algo assim:

insira a descrição da imagem aqui

Enquanto uma base_xp de 50 e um fator de 2,6 fornece:

insira a descrição da imagem aqui

O segundo tem uma taxa de xp inicial muito mais baixa, mas você precisa de mais xp rapidamente.

Quanto ao monster xp, isso é algo que você deseja testar. Experimente vários valores. Você quer algo que não seja muito alto (você se tornará rapidamente dominado), mas não muito baixo (os jogadores não querem triturar). Pense em quantos inimigos 'padrão' você gostaria que o jogador matasse no nível 10-> 11, por exemplo.

O Pato Comunista
fonte
3
Você pode querer uma curva mais nítida do que as aqui. O RuneScape , por exemplo, tem uma curva muito íngreme, quase semelhante a uma curva logarítmica (é claro / girado); veja aqui . Pelo menos na minha experiência pessoal, parece funcionar MUITO bem para oferecer muitas recompensas rápidas no início e, quando você chega a níveis mais altos, é ajustado para períodos de reprodução mais longos até que os últimos níveis durem SEMPRE, mas de alguma forma o jogador tolera isso. 99s são bastante frequentes, apesar do STEEP !! curva para chegar lá.
Ricket
Eu certamente diria que as curvas aqui seriam rasas.
The Duck Comunista
por favor não exp. curve =, (- o nivelamento leva muuuuito tempo com ele e ainda mais quanto mais perto você estiver do seu objetivo, plssss no =. (
Dave O.
Uma linha linear não funcionaria. Se você precisar de 1000xp a mais por nível, à medida que se fortalecer, verá que leva cada vez menos tempo para subir de nível.
The Duck Comunista
1
A função mostrada ( base_xp * (level_to_get ^ factor)) é na verdade uma função quadrática, pois level_to_geté o valor x e não o fator, e se não me engano, base_xpdeve ser adicionado e não multiplicado, a fim de traduzir a função para cima? Desculpe se isso é apenas eu sendo exigente quanto à semântica, só quero ter certeza disso, porque o gráfico dessa função definitivamente não fornece nenhum exponencial antigo.
chockie
6

Não há resposta certa para a questão de quanta experiência um inimigo deve dar ou de quão acentuada deve ser a curva de experiência. Pode ajudar a pensar no tempo de jogo necessário para subir de nível para cada nível e depois basear a experiência necessária por nível e a experiência média recompensada por inimigo nisso.

Este artigo é uma análise detalhada da matemática de nivelamento no Lineage II. http://web.archive.org/web/20100303164314/http://www.tstonramp.com/~mykel/lineage/

CiscoIPPhone
fonte
1
Não posso votar suficientemente nesta resposta. Por exemplo, não há razão para que exista uma curva real para as diferentes quantidades de exp por nível, porque você pode reduzir a quantidade de experiência que um inimigo oferece a você em relação ao seu próprio nível para o mesmo efeito, mas com números mais gerenciáveis . Não há substituto real para entender o seu próprio sistema de combate e como você deseja que o jogo seja jogado, e então ajustar o sistema de experiência a ele.
Kylotan
4
Este link não existe. Aqui está um link antigo que funciona: web.archive.org/web/20100303164314/http://www.tstonramp.com/…
Daniel Kaplan
É exatamente por isso que não criamos links para páginas; você não pode garantir que elas sempre existam. Fiz uma votação negativa e sinalizei sua resposta.
Krythic 19/10/2015
@Krythic Atualizei o link.
CiscoIPPhone