viernes, 9 de octubre de 2015

RPG (19): Nivel de Dificultad

Este tema es teórico, y no se va a realizar nada de programación. En el se explicará la ecuación utilizada para la subida de nivel.


En la función player::sube_experiencia(), se encuentra la ecuación que determina los niveles.

nxp = 100 * ( enivel + 1 );

Esta ecuación tiene una progresión aritmética, que quiere decir que la diferencia entre dos términos sucesivos cualesquiera de la secuencia es una constante, en este caso es 100.

Como ya se dijo anteriormente esta ecuación no es la mas indicada, debido a que la dificultad de subir un nivel va disminuyendo. Para que se entienda esto, pondremos un ejemplo.

Segun la ecuación, esta es la lista de experiencia necesaria para cada nivel.

Niv.Exp.
1200
2300
3400
4500
5600

La experiencia por defecto que da al matar un enemigo es de 50, a continuación se muestra cuantos enemigos se deben matar para subir dicho nivel.

Niv.Exp.Ene.
lvl. 1
12004
23006
34008
450010
560012

Supongamos que se crea otros tipos enemigos, pero de un nivel superior. Enemigos de nivel 2, 3, etc..  y estos enemigos darán mas experiencia según nivel. Se Muestra en una tabla cuantos enemigo de cada nivel se debe matar para subir al siguiente nivel, se presupone que no puedas matar a un enemigo que este 2 niveles por encima de tu nivel.

Niv.Exp.Ene.
lvl. 1
Ene.
lvl. 2
Ene.
lvl. 3
Ene.
lvl. 4
Ene.
lvl. 5
Ene.
lvl. 6
Ene.
lvl. 7
Ene.
lvl. 40
Ene.
lvl. 100
Ene.
lvl. 101
12004
230064
340085.34
4500106.654
560012864.84
6700149.375.64.64
78001610.686.45.34.54
4041008254.64132.827.323.420.54
10010100202134.610180.867.357.750.59.854
1011020020413610281.66858.2519.954.034

Como se muestra en la tabla cada enemigo mayor  se va disminuyendo el valor para el siguiente nivel, tendiendo a 4. Para el nivel 100 es necesario matar 4 de nivel 100,  y para subir al nivel 101 tan solo se debe matar 4,03 enemigos de nivel 100. Es decir, la progresión es tan pequeña que para niveles altos resultará mas fácil subir al siguiente nivel, siempre y cuando se este matando enemigos de tu nivel o uno inferior. Llegaría un punto que ya matarías enemigos de dos o tres niveles por debajo y aun así seguirías subiendo igualmente.

Por tanto, tal y como se ha demostrado no interesa que tenga una progresión aritmética ya que la diferencia entre un nivel y el consecutivo es un valor constante, y en nuestro caso es el 100, este valor en niveles pequeño este bien, pero para niveles altos el valor es ridículo.

Quizás lo que nos interesa es un valor que vaya aumentando que no sea constante.  A esto se llama progresión geométrica cuando cada elemento se obtiene multiplicando el elemento anterior por una constante.

Probamos a cambiar la ecuacion a lo siguiente:
npx = 200 * 2 ^( enivel - 1 )

NIVEXPENE
12004
24008
380016
4160032
5320064

Con esta nueva ecuación, vemos que conforme se sube de nivel se duplica el numero de experiencia necesaria para subir de nivel, por tanto, cuanto mas niveles se suba mas difícil resulta subir.


En esta imagen, se muestran las dos ecuaciones representadas gráficamente y se puede comprobar que la segunda ecuación que se ha elegido como buena opción, quizás no lo sea tanto, debido a que aumenta el doble a cada nivel que va subiendo.

Veamos la tabla de enemigos de esta nueva ecuación.

NIVEXPENE2 3 4 5 6
12004
240084
38001684
41600321684
5320064321684
6640012864321684

Como se muestra en la tabla, los valores son exactamente los mismos. Por tanto si se quiere subir al nivel 4, solo tienes que matar 4 de nivel 4. Si eres nivel 4 y quieres subir al 5 solo tienes que matar 4 de nivel 5, es decir, que debes matar siempre a 4 de un nivel superior al tuyo o 8 de tu nivel para subir al siguiente nivel.

Escoger una buena ecuación es importante, ya que en este modo de juego que se esta programando no se tendrá limite de nivel, por tanto, si se escoge una ecuación como la primera llegará a ser muy fácil el subir niveles cuando seas un nivel alto. En cambio con la segunda opción la dificultad es siempre la misma debes matar el mismo numero de enemigos de tu nivel independientemente del nivel en el que te encuentres.

Toda esta información es orientativa, ya que he considerado como algo normal el hecho de matar 8 enemigos de tu nivel para subir al nivel siguiente. La dificultad no solo se representa en matar 4 o 8 enemigos, si no también en cuanto nos cuesta matar un enemigo. Es recomendable que si se va a poner armas que aumentan su daño, también sea algo progresivo, es decir, que aumente pero siempre la misma proporción para que el jugador siempre intente conseguir armas de su nivel para facilitar el poder matar a un enemigo.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...