En muchos juegos, subes un nivel cuando alcanzas un cierto puntaje, y los niveles posteriores son más difíciles de alcanzar que al principio.
Sospecho que es una especie de función exponencial que se usa, por ejemplo, en WoW.
¿Alguien sabe de una buena función exponencial para este propósito?
mathematics
software-engineering
levels
leaderboards
Sandra Schlichting
fuente
fuente
Respuestas:
No hay un estándar, ni hay realmente ninguna razón para que exista. A la gente parece gustarle el crecimiento exponencial, ya que les hace sentir que se están volviendo más poderosos y se enfrentan a un desafío proporcionalmente mayor cada vez, pero de hecho eso solo es cierto si la forma de acumular puntos no cambia también proporcionalmente. . Si la experiencia por victoria aumenta a la misma velocidad que la experiencia por nivel, entonces no tiene sentido aumentar, ya que ambos podrían mantenerse constantes.
Además, la implicación es que no puedes elegir una función para la forma en que quieres que vaya tu curva de experiencia sin saber cómo quieres que vaya la acumulación de experiencia. Y esa es una decisión de diseño de juego basada en el tipo de experiencia que deseas, y no una que podamos brindarte.
Aún así, para responder a su pregunta: el tipo de función que ha visto en otros lugares es algo así, un polinomio trivial con un factor de escala:
umbral_para_siguiente_nivel = x * nivel_actual y
Los valores típicos pueden ser x = 1000, y = 1.5. p.ej:
Si desea que la pendiente sea más empinada, aumente y. Si desea que los números sean más grandes, aumenta x.
Es posible que desee tener números más redondos, en cuyo caso solo redondee el resultado final hasta 2 o 3 dígitos significativos, o el millar más cercano, lo que quiera.
Solo recuerde que estos valores no tienen sentido de forma aislada. Si se requiere una experiencia de 15000 para pasar del nivel 15 al nivel 16, entonces debes asegurarte de que el diseño de tu juego sea práctico para que un personaje de nivel 15 acumule 15000 puntos de experiencia durante el juego normal. No tiene sentido simplemente ajustar la curva después de la prueba porque eso generalmente consume demasiado tiempo: debe comenzar con una curva que coincida con los premios que otorga su juego de una manera que se adapte a su diseño previsto.
fuente
Moria / Angband (y todas sus escisiones, incluido, discutiblemente, Diablo) basan sus sistemas en igualar el nivel de monstruo con el nivel de jugador, para ver lo que ganas, con requisitos crecientes de XP por nivel más allá de eso.
En Diablo , hay niveles óptimos de monstruos que puedes matar, dentro de 5 niveles de ti en positivo y negativo. Se parece a esto (disculpas si esto no es correcto, fanáticos de Diablo):
Ejemplos para el personaje Nivel 16: Nivel del monstruo A: 16. Gana el 100% de la base de monstruo XP. Nivel del monstruo B: 13. Gana el 40% de la base de monstruo XP. Nivel del monstruo C: 20. Gana el 20% de XP de base de monstruo. Nivel del monstruo D: 23. Obtiene 0% de la base de monstruo XP.
En Angband (el modelo que prefiero), es algo como esto:
Entonces, si mataste a un monstruo de nivel 50 cuando tenías el nivel 5, ganarías 10 veces el XP que ganaría un personaje de nivel 50 que mató a ese mismo monstruo. Me gusta esto, es de alto riesgo, alta recompensa. He perdido miles y miles de personajes en Angband por esto. Pero los que lo logran, bueno, ellos son los legendarios. Creo que una vez llegué al nivel 29 al instante desde el nivel 1;) Del mismo modo, un personaje de nivel 50 que mata a un monstruo de nivel 5 ganaría 1/10 del XP que un personaje de nivel uno ganaría por matar a ese monstruo. Además, debido a que los XP base también aumentan, esto significa que matar monstruos de bajo nivel aún puede darte alguna recompensa, pero ir demasiado lejos y se vuelve completamente inútil.
Sin embargo, en ambos juegos, usan adicionalmente multiplicadores en XP necesarios (en una escala ascendente), y la relación entre este y el nivel óptimo de XP de monstruo dado se vuelve gradualmente más pronunciada.
La forma más simple de esta idea es hacer lo siguiente. Decide cuántos monstruos de igual nivel tienes, debes matar cada nivel para calificar (ignorando las recompensas de misiones, etc.). Digamos 100, independientemente de su nivel. Digamos que si el jugador mata a un monstruo de igual nivel que ella, gana 1XP.
Usando una fórmula similar a Angband para recompensar el aumento y la reducción de acuerdo con el nivel de monstruo, su tabla de nivelación es lineal:
...Y así. Creo que este es el punto de partida más fácil: ajustar según corresponda, incluir XP de base de monstruos, límites de nivel, etc.
fuente