jueves, 22 de diciembre de 2016

Tutorial - Sistema de dificultad creciente

Hoy vamos a crear un sistema de dificultad que aumenta a medida que avanza el tiempo o el progreso del jugador. Vamos a hacerlo mediante la sustitución de enemigos.

En este tutorial voy a configurar un solo enemigo para no hacerlo demasiado extenso, pero puede aplicarse para todos los que necesites.

Para ello vamos a necesitar los siguientes plugins:
También reservaremos una variable y un interruptor (pongamos por ejemplo el 40 y el 40) a los que nombraremos selector y cataclismo final.

Paso 1:
Instalamos los plugins, asegurándonos de que el main utility va antes del enemy selector, y configuramos este último. En enemy var ponemos 40 (es la variable que se va a usar para almacenar el selector, pero puedes poner la que quieras) y en absolute false.

Paso 2:
Creamos los enemigos que vamos a usar.
Vamos a usar el limo que viene por defecto en el nº2 y crearemos ligeras variaciones del mismo:
  • nº5: gelatina
  • nº6: moco
  • nº7: limo venenoso
  • nº8: limo de lava
  • nº9: limo vampiro
  • nº10: gelatina infernal
Ahora se van completando con parámetros más fuertes, rasgos propios de cada uno y sus habilidades. En este caso son pequeñas variaciones pero puedes usar cualquier otro tipo de enemigo.

Paso 3:
Ahora vamos a configurar el enemigo nº2 para que se sustituya por los distintos tipos de enemigos mediante etiquetas en las notas. El número de la izquierda representa cada valor que tiene que alcanzar y los demás la id del enemigo por el que se va a sustituir. Voy a ponerlo con cambios cada 5 puntos de dificultad pero puedes ponerlo como quieras, ya sea a intervalos o aleatorio, pero siempre en orden ascendente:

Opción 1:
<enemy selector>
5:5
10:6
15:7
20:8
25:9
</enemy selector>


Opción 2:
<enemy selector>
5:2 5
10:2 5 6
15:5 6 7
20:7 8
25:7 8 9
30:9
</enemy selector>

Opción 3:
<enemy selector>
5:2 2 2 5
10:2 5 5 5 5 5
15:2 5 5 6 6
20:5 6 6 7 7
25:7 7 7 8 8 8 9
30:7 8 9 9 9 9 9
35:9
</enemy selector>

La opción 1 es un cambio directo, la 2 es un cambio entre todas las posibles y la 3 incluye además probabilidades. Yo personalmente me inclino por la tercera.

Ahora añadimos un extra para cuando suceda en la historia el cataclismo final:

Opción 1:
<custom enemy selector>
if ($gameSwitches.value(40)) {
   converted = 10;
}
</custom enemy selector>

Opción 2:
<custom enemy selector>
if ($gameSwitches.value(40) && Math.random() > 0.05) {
   converted = 10;
}
</custom enemy selector>

La primera opción hace que cuando esté activado el interruptor el enemigo siempre sea la gelatina infernal y la segunda deja un 95% de probabilidad de que sea dicha gelatina. Igualmente me inclino por la última, pero puedes ponerlo como quieras.

Paso 4 (Opcional):
Normalmente no hace falta añadir las notas a los enemigos que no añadas en las tropas, pero si quieres ponerlos y que tengan la funcionalidad de cambio puedes colocarles las siguientes:

nº5 gelatina:
<enemy selector>
15:5 5 6 6
20:5 6 6 7 7
25:7 7 7 8 8 8 9
30:7 8 9 9 9 9 9
35:9
</enemy selector>
<custom enemy selector>
if ($gameSwitches.value(40) && Math.random() > 0.05) {
   converted = 10;
}
</custom enemy selector>
nº6 moco:
<enemy selector>
20:6 6 7 7
25:7 7 7 8 8 8 9
30:7 8 9 9 9 9 9
35:9
</enemy selector>
<custom enemy selector>
if ($gameSwitches.value(40) && Math.random() > 0.05) {
   converted = 10;
}
</custom enemy selector>

nº7 limo venenoso:
<enemy selector>
25:7 7 7 7 7 9
30:7 9 9 9 9 9
35:9
</enemy selector>
<custom enemy selector>
if ($gameSwitches.value(40) && Math.random() > 0.05) {
   converted = 10;
}
</custom enemy selector>
nº8 limo de lava:
<enemy selector>
25:8 8 8 8 8 9
30:8 9 9 9 9 9
35:9
</enemy selector>
<custom enemy selector>
if ($gameSwitches.value(40) && Math.random() > 0.05) {
   converted = 10;
}
</custom enemy selector>
nº9 limo vampiro:
<custom enemy selector>
if ($gameSwitches.value(40) && Math.random() > 0.05) {
   converted = 10;
}
</custom enemy selector>

Como puedes ver he quitado tanto los inferiores como los que me han parecido incompatibles entre sí.

Paso 5, probar el resultado:
Y para probar que todo funcione como es debido se crea un mapa en donde aparezca el enemigo, con eventos en los que cambies el valor de la variable del selector y el interruptor del gran cataclismo.

Final:
Y por último solo queda asignar el modo en el que vas a incrementar la dificultad:
  • Subir un punto cada hora.
  • Subir un número en función de cada acontecimiento.
  • Subir puntos a medida que se abran cofres o se descubran secretos.
  • Subir puntos al completar misiones.
Con un poco de imaginación hay muchas formas de manejar la dificultad para elegir y/o combinar.

Y con esto ya puedes crear un sistema de dificultad creciente para tu juego en RPG Maker MV.
Espero que te haya gustado.

2 comentarios:

  1. hola, me gustaria saber si este sistema tambien estaria disponible para el rpg maker vx ace?¿

    ResponderEliminar
    Respuestas
    1. Hola Sanchokid.

      Puedes encontrar el script para vx ace en:
      http://icfsoft.blogspot.com.es/2015/09/script-enemy-selector.html

      La configuración se realiza dentro del mismo script. Es antiguo y no incluye todas las que puse en el de mv pero tienes la opción básica.

      Utilizando los mismos números de enemigos quedaría así:
      $EnemySelector[2] = [[5,5],[10,6],[15,7],[20,8],[25,9]]

      Espero que te sirva.

      Eliminar