Uma das lutas que sempre tive no desenvolvimento de jogos é decidir como implementar pontos de experiência atribuídos à conquista de um nível. Não parece haver um padrão para ganhar um nível em muitos dos jogos que joguei, então presumo que eles tenham uma tabela estática de dicionário que contenha pontos de experiência versus o nível. por exemplo
Experience Level
0 1
100 2
175 3
280 4
800 5
... Não há uma rima ou razão para 280 pontos serem iguais ao nível 4, apenas é.
Não tenho certeza de como esses níveis são decididos, mas certamente não seria dinâmico. Também pensei na possibilidade de níveis exponenciais, para não precisar manter uma tabela de pesquisa separada, por exemplo
Experience Level
0 1
100 2
200 3
400 4
800 5
1600 6
3200 7
6400 8
... mas parece que isso sairia do controle rapidamente, pois, para os níveis superiores, os inimigos no jogo teriam que fornecer uma quantidade enorme de experiência para o nível - e isso seria difícil de controlar. O nivelamento se tornaria uma tarefa impossível.
Alguém tem alguma indicação ou método usado para decidir como nivelar um personagem com base na experiência? Eu quero ser justo no nivelamento e quero ficar à frente dos jogadores para não me preocupar em adicionar constantemente novas experiências / pesquisas de nível.
fonte
f'(x) = c*f(x)
) . O termo "geométrico" é usado quando o domínio (entrada) é discreto (por exemplo, número inteiro). A fórmula para o exemplo de @ George, acima do nível 1,Experience = 100 * 2^(Level-2)
é exponencial. A fórmula para sua progressão, acima do nível 1Experience = 100^(Level-1)
, também é exponencial.Respostas:
É bastante comum usar uma relação quadrada.
level = constant * sqrt(XP)
Ou o equivalente aproximado de uma diferença de nível linearmente crescente.
Esses sistemas funcionam muito bem quando o ganho de XP é aproximadamente linear. Se um personagem de alto nível pode ganhar XP mais rapidamente do que um personagem de baixo nível, esse não é o sistema certo.
fonte
Você provavelmente encontrará funções logarítmicas úteis, pois podem ser usadas para diminuir o aumento à medida que mais pontos de experiência são ganhos. Aqui estão duas páginas da web que explicam como elas funcionam:
Gráficos de funções logarítmicas
http://www.analyzemath.com/Graphing/GraphLogarithmicFunction.html
Introdução às funções logarítmicas de representação gráfica
http://www.purplemath.com/modules/graphlog.htm
Aqui está o que parece em um gráfico, que espero atender às suas necessidades:
fonte
level = log(XP) <=> XP = e^level
. O requisito pode se tornar um pouco íngreme para os últimos níveis, mas funcionará bem com um crescimento adequado na acumulação de XP.Estas são algumas maneiras que eu usei até agora. Eles são classificados pela taxa de crescimento (apenas multiplicamos todas as equações por um valor constante):
exp = level (este pode parecer estranho, mas em alguns jogos que recompensam exp muda de acordo com o nível do jogador, como o borderlands)
exp = nível * log 10 (nível)
exp = level ^ const_value: no meu exemplo, defino o valor const como 3/2
fonte
Eu acho que depende de quão fácil o jogador pode obter a experiência. Se o jogador conseguir 200 pontos de experiência no lvl 1 em 20 minutos e, em seguida, 200 pontos de experiência no lvl 2 em 2 minutos, será necessário escalar exponencialmente o seu xp.
No entanto, se ganhar um nível apenas torna marginalmente mais fácil obter xp, você deve executar uma função xp de mais nível. (Talvez linear com algum coeficiente> 1)
fonte
Muitas vezes, os pontos necessários para obter um nível são baseados em uma curva. Em muitos RPGs, também existem muitas outras características e atributos do seu personagem que aumentam com o seu nível, eles também estarão nas suas próprias curvas.
Dê uma olhada no RPGMaker para ver como eles fazem as coisas. Observe especificamente as curvas de parâmetro nas capturas de tela da seção "Adicionar alguma exclusividade ao personalizar o equipamento inicial" do documento Criando um personagem principal .
Basicamente, você pode ter uma curva de quanto de XP é necessário para subir de nível e, em seguida, curvas diferentes de quanto HP, MP, resistência, força etc. são obtidas a cada nível.
fonte
Considere o tempo
Você primeiro precisa descobrir como a taxa de experiência ganha escalável com o nível. Depois, você pode personalizar seu nivelamento pelo tempo necessário . Se cada nível adicional permitir que você ganhe experiência duas vezes mais rápido e precisar do dobro de experiência para nivelar, cada nível exigirá a mesma quantidade de tempo.
Minha sugestão é pensar em quanto tempo o jogador deve gastar e depois adaptar o nivelamento a isso.
fonte
Talvez eu deva usar apenas um sistema de nivelamento plano, em que cada nível exija exatamente a mesma quantidade de experiência.
fonte