Una de las dificultades que siempre tuve en el desarrollo del juego es decidir cómo implementar los puntos de experiencia atribuidos a ganar un nivel. No parece haber un patrón para ganar un nivel en muchos de los juegos que he jugado, así que supongo que tienen una tabla de diccionario estática que contiene puntos de experiencia frente al nivel. p.ej
Experience Level
0 1
100 2
175 3
280 4
800 5
... No hay una rima o razón por la cual 280 puntos es igual al nivel 4, simplemente lo es.
No estoy seguro de cómo se deciden esos niveles, pero ciertamente no sería dinámico. También he pensado en la posibilidad de niveles exponenciales, para no tener que mantener una tabla de búsqueda separada, p. Ej.
Experience Level
0 1
100 2
200 3
400 4
800 5
1600 6
3200 7
6400 8
... pero parece que se descontrolaría bastante rápido, ya que hacia los niveles superiores, los enemigos en el juego tendrían que proporcionar una enorme cantidad de experiencia para nivelar, y eso sería demasiado difícil de controlar. La nivelación se convertiría en una tarea imposible.
¿Alguien tiene punteros o métodos que usan para decidir cómo nivelar un personaje en función de la experiencia? Quiero ser justo en la nivelación y quiero adelantarme a los jugadores para no preocuparme por agregar constantemente nuevas búsquedas de experiencia / nivel.
fuente
f'(x) = c*f(x)
) . El término "geométrico" se utiliza cuando el dominio (entrada) es discreto (por ejemplo, entero). La fórmula para el ejemplo de @ George, por encima del nivel 1,Experience = 100 * 2^(Level-2)
es exponencial. La fórmula para su progresión, por encima del nivel 1, esExperience = 100^(Level-1)
también exponencial.Respuestas:
Es bastante común usar una relación cuadrada.
level = constant * sqrt(XP)
O el equivalente aproximado de una brecha de nivel linealmente ascendente.
Estos sistemas funcionan bastante bien cuando la ganancia de XP es aproximadamente lineal. Si un personaje de alto nivel puede ganar XP más rápido que un personaje de bajo nivel, entonces este no es el sistema correcto.
fuente
Probablemente encontrará útiles las funciones logarítmicas, ya que pueden usarse para ralentizar el aumento a medida que se obtienen más puntos de experiencia. Aquí hay dos páginas web que explican cómo funcionan:
Gráficos de funciones logarítmicas
http://www.analyzemath.com/Graphing/GraphLogarithmicFunction.html
Introducción a la representación gráfica de funciones logarítmicas
http://www.purplemath.com/modules/graphlog.htm
Esto es lo que parece en un gráfico, que esperamos satisfaga sus necesidades:
fuente
level = log(XP) <=> XP = e^level
. El requisito puede resultar un poco elevado para los últimos niveles, pero funcionará bien con un crecimiento adecuado en la acumulación de XP.Estas son algunas formas que he usado hasta ahora. Se ordenan por tasa de crecimiento (simplemente multiplican cada ecuación por un valor constante):
exp = level (este puede parecer extraño, pero para algunos juegos que recompensan los cambios de exp según el nivel del jugador, como borderlands, este puede encajar)
exp = nivel * log 10 (nivel)
exp = level ^ const_value: para mi ejemplo configuré el valor const en 3/2
fuente
Creo que depende de cuán fácil pueda obtener la experiencia el jugador. Si el jugador puede obtener 200 xp en lvl 1 en 20 minutos y luego obtener 200 xp en lvl 2 en 2 minutos, entonces necesita escalar su xp exponencialmente.
Sin embargo, si ganar un nivel solo hace que sea un poco más fácil ganar xp, entonces debería hacer una función de nivel xp más. (Tal vez lineal con algún coeficiente> 1)
fuente
A menudo, los puntos necesarios para ganar un nivel se basan en una curva. En muchos juegos de rol donde también hay muchas otras características y atributos de tu personaje que aumentan con tu nivel, también estarán en sus propias curvas.
Echa un vistazo a RPGMaker para ver cómo hacen las cosas. Mire específicamente las curvas de parámetros en las capturas de pantalla de la sección "Agregar algo de singularidad al personalizar el equipo inicial" del documento Creación de un personaje principal .
Básicamente, puede tener una curva de cuánto XP se necesita para subir de nivel, luego diferentes curvas de cuánto HP, MP, resistencia, resistencia, etc. se gana en cada nivel.
fuente
Considerar el tiempo
Primero debe descubrir cómo la tasa de ganancia de experiencia aumenta con el nivel. Luego puede adaptar su nivelación según el tiempo requerido . Si cada nivel adicional le permite ganar experiencia el doble de rápido, y necesita el doble de experiencia para nivelar, cada nivel requerirá la misma cantidad de tiempo.
Mi sugerencia es pensar cuánto tiempo debe pasar el jugador, luego adaptar la nivelación a eso.
fuente
Tal vez debería usar un sistema de nivelación plano, donde cada nivel requeriría exactamente la misma cantidad de experiencia.
fuente