sábado, 13 de marzo de 2021

Varios avances

Hay algunas novedades que pueden llegar a salir si todo va bien.

Algunas cosas las sé por estar en Discord/Twitter. No se comentan en foros seguramente.

Los de Easyrpg han descubierto que tal como funciona el generador de mapas. (Pensaban que manual)

No es así, parece crear un mapa base y dibujar sobre el un mapa de mazmorra aleatoria, parece que van a probar hacer un generador de mazmorras puede que externo también para pruebas.

Pero puede servir para hacer juegos con mazmorras aleatorias o como mazmorras extra.

También han publicado lcf translator.

De momento está de modo experimental, soporta traducciones a varios idiomas, luego en el título sale un selector de idioma.

Al parecer hasta gráficos con texto pueden estar separados por idioma, algo que muchas veces requería editar el juego internamente.


De esto solo lo sé por Twitter

Bingshan que sigue modificando el Rpg maker 2003 añadiendo funciones ha enseñado como tras lanzar un juego a 320x240, se pueden poner imágenes de mayor resolución sin que se salgan de la ventana.

Es como si los juegos se lanzaran a 640x480 y se pudiesen poner imágenes de mayor resolución sin verse pixeladas. Es interesante para hacer juegos como novelas visuales, rpgs de anime con las caras de los personajes en grande, etc También parece que ha conseguido un soporte completo de color real en vez de 256 colores. Así que es una alternativa a Easyrpg que tiene esto, jugando, desde el editor cualquier cosa a color real se ve negro.

Todo esto no sé cuando estará disponible, la web está en japonés y supongo que comenta los avances de veesiones futuras.

Hay más novedades, las iré contando cuando sea posible.

jueves, 4 de marzo de 2021

Tutorial - Sistema de lanzar flechas/proyectiles y colisiones (Rpg maker 2003 - Otros)

 Desde que hice la parte de habilidades del Lufia de rpg maker no he contado cómo funciona internamente cada cosa, más de uno me ha preguntado como se hace, puede ser un poco lioso, pero con la teoría/lógica se aprende.
En mi caso me puse a hacer pruebas y a ver como lograba hacerlo, no es que leyera tutoriales.

 En el título he puesto lo de otros porque puede valer para más cosas que no sean Rpg Maker, es lógica del funcionamiento de un videojuego.


Veamos.

Tal como funciona Rpg maker 2003 hay que tener eventos, que son los cuadrados que se ven,
pero las acciones dentro del mismo también se les llama eventos. al final hay que verlo como un contenedor.

Como yo hice el sistema, para tener flechas y poder usar toda las propiedades, la flecha con su gráfico es como un evento de esos cuadrado.

Rpg maker ya tiene un sistema para poner en un proceso que está todo el rato funcionando (proceso paralelo) que al pulsar un botón pase x cosa, en este caso al pulsar el botón lanza la flecha.

Como Rpg maker tiene una sección llamada Eventos comunes donde puedes llamar a una serie de procesos sin copiar y pegar en cada mapa, solo está una vez.

-Detalles generales- 

Como se ve en la imagen de la derecha hay recuadros que representan coordenadas del mapa.
Rpg maker tiene 2 formas de usarlas,
Coordenadas X e Y, (el cuadro entero, lo que pasa desde que el primer píxel llega hasta él, se manejan sumando y restando 1 para pasasr de recuadro)
Posición X e Y (píxel a píxel, de un cuadro a otro hay una distancia de 16 píxeles)

Usando rangos de posición X y otros rangos de Y desde una posición a otra se puede hacer una caja de colisión, algo habitual en los juegos. Aunque Rpg maker ya integra formas propias sin llegar a decir la terminología tal como se conoce.

Uso de Variables, hay que saber que se pueden guardar valores y usando la función
de condiciones y efectos (Conditional branch) se pueden comprobar si
unas variables tienen el mismo valor, mayor, menor, etc

Como decía arriba usé una flecha que está como evento en el mapa, que es la que manejo.

-Cosas a definir-

En Variables
Coordenada del personaje X
Coordenada del personaje X+1 (Tomar valor de X y sumar 1)
Coordenada del personaje X-1 (Tomar valor de X y restar 1)


Coordenada del personaje Y
Coordenada del personaje Y+1 (Tomar valor de Yy sumar 1)
Coordenada del personaje Y-1 (Tomar valor de Yy restar 1)

A más variables guardemos de lo que rodea al personaje, luego podremos hacer más cosas.

Valor de Terreno, según el cuadro. (Terreno es algo de Rpg maker que se puede usar para colisiones)
Digamos que el valor 0 es no pasable y 1 pasable

Coordenada del X de Flecha
Coordenada del Y de Flecha

 
Coordenada del interruptor X
Coordenada del interruptor Y


(Esto último se puede ahorrar poniendo un proceso paralelo que guarde esa posición)

 -Acciones-

 Esta es la parte que hay que estrujarse un poco los sesos.
Al menos en Rpg maker 2003 todo se procesa a una velocidad rapidísima, así que hay que usar esperas continuas.

Si nuestro personaje está mirando a la izquierda,
Cambiar ubicación de Evento "Flecha"
Debe irse a la posición ID X-1

Algo así:
Condiciones y efectos: Dirección de Héroe "Izquierda"
-(Cambiar gráfico de personaje (haciendo gesto de lanzar si queremos)
--Movimiento de personaje: Flecha "Mirar a izquierda"
---Cambiar Posición de "Flecha" a Coordenada del personaje X-1 e Y (sin cambiar)
----Esperar 0.0s (las esperas así permiten que se procesen las cosas sin interrupciones)

Hasta ahora ya hemos conseguido que la flecha se mueva, pero solo si miramos a izquierda, ojo.
El movimiento, tal como se llaman las acciones en rpg maker: 

Condiciones y efectos: Coordenada del evento flecha X / flecha Y
-Adquirir ID de terreno de "Flecha" (en realidad debe ser de X-1 para saber si pasa)
--Condiciones y efectos: Variable Valor = 0 (No se cumple)
---Ir a etiqueta 1

--Condiciones y efectos: Variable Valor = 1 (Si se cumple)
---Movimiento de personaje: Flecha / "Comenzar Ruta" (Así tradujeron la acción de atravesar todo) "Avanzar" (Avanza un cuadrado)
----Esperar 0.2s (generalmente el tiempo de espera de un movimiento de tile, según la velocidad)
(En este punto se repite la acción, si no hay nada contra lo que chocar la flecha seguirá avanzando)
-Etiqueta 1
-- (Animación de chocar, o de momento ponemos que desaparezca la flecha)


Ahora viene lo que afecta al interruptor que pulsamos:
Rpg maker 2003 puede tener eventos haciendo procesos en paralelo comprobando cosas sin apenas afectar al rendimiento, y es lo que se suele hacer.

En el interruptor ponemos un evento

Ya tenemos de antes guardadas,
Coordenada del interruptor X
Coordenada del interruptor Y

Pues:

-Condiciones y efectos:
--Coordenada del interruptor X = Coordenada de Flecha X?
---Coordenada del interruptor Y = Coordenada de Flecha Y? (Si ambas se cumplen)
----Efecto de sonido (el que queramos)
----Activar interruptor: Palanca pulsada (El que queramos)
----Esperar 0.2s

-Esperar 0.0s (para evitar posible lag al estar todo el rato comprobando las coordenadas)

En mi ejemplo el interruptor tiene otro nombre, la palanca está mirando a otro lado
 (Como ya sabéis si habéis llegado aquí es solo un cambio de página, en la 2 no hay nada)


 En el proyecto había algo más aparte el terreno, el ID de lo que hay en un recuadro,
así no podía atravesar ciertas cosas como pilares, cierto rango lo dejaba para colisiones.

 Puede ser bastante lioso, voy a poner todo el evento común del Lufia aquí (es muy caótico por los pequeños ajustes que hacía sobre la marcha  😅),
igualmente está el juego en la seccion descargas,esto está en Evento común 0071-Flecha:
13 es el terreno de pared


-Evento original-