Mostrando entradas con la etiqueta Tutorial. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tutorial. Mostrar todas las entradas

miércoles, 1 de febrero de 2017

Tutorial - Efecto armónico

Hoy vamos a recrear un curioso efecto del juego monster legends que un personaje recupera energía cuando es afectado por uno o más elementos a los cuales es resistente o afín.

En este tutorial voy a configurar un actor para que sea armónico al fuego y hielo, pero puede aplicarse también a enemigos, clases, estados alterados y equipamiento.

Para ello vamos a necesitar los siguientes plugins:

Paso 1:
Instalamos los plugins, asegurándonos de que el main utility va antes del element core. La configuración del element core depende de como quieras dejarlo.

Paso 2:
Seleccionamos el actor al que le vamos a añadir el efecto, por ejemplo al primero.
Puedes utilizar la notación del main utility (<JSEVAL MASTER elemreact 2>) o la del element core (<ELEMENT REACT: 2>), ambos realizan el mismo efecto.
Vamos ver unas cuantas opciones:

Opción 1:
<element react: 2>
this.gainMp(20);
<element react: 3>
this.gainMp(20);
</element react>

Opción 2:
<element react: 2>
this.gainMp(this.mmp / 10);
<element react: 3>
this.gainMp(this.mmp / 10);
</element react>

Opción 3:
<element react: 2>
this.gainMp(Math.abs(this._result.hpDamage + this._result.mpDamage + this._result.tpDamage) / 10);
<element react: 3>
this.gainMp(Math.abs(this._result.hpDamage + this._result.mpDamage + this._result.tpDamage) / 10);
</element react>


La opción 1 da una cantidad fija de mp, la opción 2 rellena un 10% de mp y la 3 da una cantidad equivalente al daño o curación recibidos. Este efecto da una cantidad por cada elemento de la habilidad u objeto a los que se sea afín, sumándose todos.

Paso 3, probar el resultado:
Ya solo queda hacer batallas de prueba. Creas un enemigo que ataque con fuego y/o hielo, lo colocas en una tropa, pruebas la batalla y observas el resultado.

Final:
Este efecto puede utilizarse para actores específicos, los que sean de una clase específica (si usas el enemies core incluye a los enemigos), enemigos específicos, estados específicos que afecten a actores o enemigos e incluso piezas de equipamiento.
Las posibilidades son ilimitadas.

Y ya tienes el efecto armónico para RPG Maker MV.
Espero que te haya gustado.

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.

domingo, 11 de octubre de 2015

Cursos JavaScript

Novedad: 27 de Diciembre Black Friday - Obtén los cursos a un 70% de descuento.

A falta de dos semanas para el lanzamiento de RPG Maker MV traigo unos cursos de javascript muy interesantes para aprender a programar.
Vienen con un descuento del 50% si se apuntan antes del 13 de octubre.

Programación para Emprendedores: Web, Móvil y Videojuegos

25€

Cómo Programar para Emprendedores - JavaScript


20€

Curso Profesional de creación de videojuegos


15€

Aprender Javascript desde cero

Gratis

Desarrollo de Juegos con JavaScript

Gratis

Aprende cómo programar y crear un videojuego

450€

Con un par de cursos se puede tener una base para la programación en RPG Maker MV.

Espero que os gusten.

sábado, 8 de noviembre de 2014

Primer juego en Mugen

En este artículo voy a enseñar a crear un juego de lucha básico en pocos pasos con Mugen.

Un juego en Mugen se compone básicamente de:
  • El motor del juego: Es el programa en sí, en este caso Mugen.
  • Un motif: Un tema con las personalizaciones que se aplican.
  • El registro de luchadores: El conjunto de los distintos personajes que se enfrentan entre sí.
  • Los escenarios: Los distintos lugares en donde se enfrentan los contrincantes.
Todo esto son las partes separadas de un juego.

Lo primero se descarga desde http://elecbyte.com/mugen.
Tienes para escoger entre la versión 1.0 y la 1.1 Beta.
Una vez descargado el archivo zip lo descomprimes en una carpeta nueva, ya sea en el escritorio, en documentos o donde quieras tenerlo.
Ya descomprimido entras en la carpeta y nos fijamos en 4 carpetas: la primera es "data" donde se encuentran la configuración y los motifs; la segunda es "chars" y se guardan ahí los luchadores, las otras son "stages" y "sound" que corresponden a los escenarios y músicas de fondo.
Entramos en la carpeta data.

Ahora vamos a seleccionar el motif. Para ello abrimos el archivo mugen.cfg con el bloc de notas, buscamos la línea del motif y le asignamos data/big/system.def . Este es uno que viene con mugen que permite una parrilla de hasta 60 luchadores.
Nos aseguramos de que en la carpeta big exista el archivo select.def, si no está lo copiamos desde data.

Lo siguiente es descargar y preparar los luchadores y escenarios.
He hecho una pequeña selección que espero que os guste, pero podéis añadir, quitar o reemplazar a vuestro antojo.
Los personajes que he escogido son Goku, Vegeta, Homer Simpson, Peter Griffin, Sonic y Knuckles.
Los escenarios son Casa de Goku, Orgullo Sayain, Sala del Tiempo, Taberna de Moe y Almeja Borracha.

Una vez descargados se descomprimen en las carpetas correspondientes: los personajes en chars, los escenarios en stages y las músicas en sound.

Volvemos a la carpeta data y entramos en big. Con el bloc de notas editamos el archivo select.def.
Buscamos dónde empieza la parrilla de luchadores y colocamos lo siguiente antes de kungfuman (kfm):

SSJ_GokuZ2, stages/Dbgokuhome.def
homero, stages/la taberna de Moe.def
peter, stages/drunken clam.def
SonicMH, random
KnuxMH, random
VegetaZ2, stages/SAIYAN_PRIDE_LOW.def
randomselect
--empty--
--empty--
--empty--
--empty--
randomselect

La siguiente sección es la selección de stages extras. Colocamos los siguientes:

stages/kfm.def
stages/dbchamber.def

Una vez terminado se guarda el archivo y se inicia el mugen.
Encontrarás algo más o menos como esto:
El juego está listo para jugar, pero, conociendo cómo se añaden personajes, se puede ir cambiando para dejarlo como uno quiera.
Siempre se pueden buscar más chars y stages en google y en páginas como mugenguild, mugeninfantry, mugen database e infinity mugen. También se pueden crear propios si se saben programar.

Y eso es todo de momento.
Espero que os haya gustado.