Página 1 de 7

Problemas y dudas sobre mi primero juego churrero

Publicado: Dom, 02 Mar 2014, 14:16
por Alessandro
Hola a todos,

en estos días estoy trabajando a mi primero juego elaborado con la Churrera, un título de plataformas con vista lateral, y tengo algunos problemas y dudas:

- Corrupción gráfica

Dos tiles presentan corrupción gráfica ya al comenzar del juego, aunque esta no se puede ver en Mappy, ni en la colocación de los enemigos. Acá hay el conjunto de las tiles por Mappy (en PNG y ampliado para una mejor visualización; los tiles afectados por la corrupción son el tercero y el sexto a comenzar de la derecha):

Image

y esto es el resultado:

Image

Los tiles corruptas son ambos de tipo 8.

- Habilitar la posibilidad de matar los enemigos con el salto

La idea sería que el personaje protagonista debería eliminar a los enemigos después haber colectado un cierto objecto. Si la opción #define PLAYER_KILLS_ENEMIES está habilitada, el personaje mata a los enemigos desde el inicio. ¿Que debeo hacer para habilitar esta posibilidad solamente cuando él colecta el objecto?

Supongo que debería intervenir en el script, pero no he entendido como hacerlo.

- Eliminar/reemplazar la música inicial

Como se puede eliminar la música inicial, o reemplazarla con otra, especialmente ¿en modo 128K? He leído en este foro que la música para el 128K está componida con WYZ tracker, pero no he entendido ni como utilizarlo, ni como exportar la composición para el uso con los juegos de la Churrera (soy acostumbrado al Sound Tracker).

Y si utilizaría Beepola, en cual manera necesito de exportar el codigo para utilizarlo en mi proyecto?

- Asemblar el código a un otro adreso

¿Hay problemas si asemblo el código al adreso 30000 en lugar de 25000, probado que no llega hasta 65535? (El problema de corrupción gráfica se manifesta también si lo asemblo a 25000).


Si podrían ser utiles, acá hay ficheros de configuración, los tiles, el mapa etc.:

http://www.alessandrogrussu.it/bak/ficheros-1.zip


Gracias a todos por ayuda y sugerencias.

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Dom, 02 Mar 2014, 14:36
por alxinho
Hola Alessandro, no veas qué pintaza tienen tus gráficos! :o

Ánimo con el proyecto! :ymca:

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Dom, 02 Mar 2014, 15:29
por renegade
Muy buena pinta,si señor ;)

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Dom, 02 Mar 2014, 15:56
por na_th_an
Ante todo, ¡bienvenido! Te respondo entre lineas.

$this->bbcode_second_pass_quote('Alessandro', 'H')ola a todos,

en estos días estoy trabajando a mi primero juego elaborado con la Churrera, un título de plataformas con vista lateral, y tengo algunos problemas y dudas:

- Corrupción gráfica

Dos tiles presentan corrupción gráfica ya al comenzar del juego, aunque esta no se puede ver en Mappy, ni en la colocación de los enemigos. Acá hay el conjunto de las tiles por Mappy (en PNG y ampliado para una mejor visualización; los tiles afectados por la corrupción son el tercero y el sexto a comenzar de la derecha):

Image

y esto es el resultado:

Image

Los tiles corruptas son ambos de tipo 8.


Esto siempre tiene que ver con la importación/conversión de png a formato Spectrum. Es probable que algunos de los colores que utilizas no sean bien detectados por SevenuP a la hora de importar. Creo que si te fijas bien podrás ver la corrupción ya en la pantalla de SevenuP. Para solucionarlo, utiliza colores más sencillos de detectar.

Tras muchos años, he comprobado que si utilizas valores R, G o B de 200 para colores sin brillo y de 255 para colores con brillo, casi todos los programas de conversión funcionan mejor. Con un pequeño arreglo en ese PNG deberías dejar de tener este problema.

$this->bbcode_second_pass_quote('Alessandro', '
')- Habilitar la posibilidad de matar los enemigos con el salto

La idea sería que el personaje protagonista debería eliminar a los enemigos después haber colectado un cierto objecto. Si la opción #define PLAYER_KILLS_ENEMIES está habilitada, el personaje mata a los enemigos desde el inicio. ¿Que debeo hacer para habilitar esta posibilidad solamente cuando él colecta el objecto?

Supongo que debería intervenir en el script, pero no he entendido como hacerlo.


Esto no puede hacerse ahora mismo, pero es algo que tengo en mente añadir al engine desde siempre. Si esperas a mañana, lo introduciré en el motor y podrás añadirlo a tu juego. Es una modificación muy sencilla y no debería tener ningún problema en añadirla :)

$this->bbcode_second_pass_quote('Alessandro', '
')- Eliminar/reemplazar la música inicial

Como se puede eliminar la música inicial, o reemplazarla con otra, especialmente ¿en modo 128K? He leído en este foro que la música para el 128K está componida con WYZ tracker, pero no he entendido ni como utilizarlo, ni como exportar la composición para el uso con los juegos de la Churrera (soy acostumbrado al Sound Tracker).

Y si utilizaría Beepola, en cual manera necesito de exportar el codigo para utilizarlo en mi proyecto?


Si quieres usar música AY necesitas activar el modo 128K, ya que en modo 48K no cabría el player y la música y todo lo demás. En modo 128K la música va en una página de RAM extra. Si decides hacerlo así, en este hilo explico como activar el modo de 128K e importar la música:

viewtopic.php?p=49060#p49060

Si prefieres quedarte en el modo de 48K, se puede cambiar la música muy fácilmente si usas beepola y el Phaser Engine. Si exportas en .ASM desde Beepola una canción que utilice Phaser Engine y comparas el archivo obtenido con music.h verás que es muy sencillo sustituir la canción que viene por defecto por otra nueva. Tengo pendiente de explicar esto en el tutorial, pero es un proceso muy sencillo.

$this->bbcode_second_pass_quote('Alessandro', '
')- Asemblar el código a un otro adreso

¿Hay problemas si asemblo el código al adreso 30000 en lugar de 25000, probado que no llega hasta 65535? (El problema de corrupción gráfica se manifesta también si lo asemblo a 25000).


Si podrían ser utiles, acá hay ficheros de configuración, los tiles, el mapa etc.:

http://www.alessandrogrussu.it/bak/ficheros-1.zip

Gracias a todos por ayuda y sugerencias.


No hay ningún problema en compilar el código a cualquier otra dirección que te venga bien, siempre que el binario no sobrepase la dirección 60655, que es donde empiezan las estructuras de splib2 para controlar los gráficos, pero perderás mucho sitio. Las últimas versiones de la Churrera vienen preparadas para compilar de fábrica en 24200 por este motivo (con lo que tu juego puede ocupar hasta 36455 bytes). De todos modos, como te digo, la corrupción no tiene nada que ver con el motor, sino con una mala importación de los gráficos.

Mucho ánimo. Si necesitas ayuda en cualquier otra cosa, no tienes más que pedirla. And if you find it more comfortable if we speak in English, you are welcome!

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Dom, 02 Mar 2014, 17:58
por Alessandro
Gracias a todos por las palabras de estímulo y a Nathan las preciosas sugerencias :D Efectivamente no me dí cuenta que los tiles estaban ya mal importados en Seven Up :oops: Entonces los he corrigidos, grabados como PNG de nuevo, reimportardos y salvados como tileset.h y el problema fue solucionado :corchoneta:
$this->bbcode_second_pass_quote('na_th_an', 'E')sto no puede hacerse ahora mismo, pero es algo que tengo en mente añadir al engine desde siempre. Si esperas a mañana, lo introduciré en el motor y podrás añadirlo a tu juego. Es una modificación muy sencilla y no debería tener ningún problema en añadirla :)

Claro que puedo esperar :) Si podés ayudarme con uno script que me permitiría de implementar esta característica en el juego, sería cosa muy buena, y causa de una mención en los agradecimientos en el manual cuando el proyecto será finalizado ;)

A propósito, el "güego" es parte de un diseño más amplio, un título que se compone de diferentes capítulos realizados con el auxilio de varias herramientas, entre estas la Churrera. Más informaciones próximamente ;)

$this->bbcode_second_pass_quote('na_th_an', 'M')ucho ánimo. Si necesitas ayuda en cualquier otra cosa, no tienes más que pedirla. And if you find it more comfortable if we speak in English, you are welcome!

¡Gracias! Pero deseo también aprovechar este foro para ejercitar y mejorar mi conocencia de vuestro idioma :-)

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Lun, 03 Mar 2014, 09:07
por na_th_an
Veamos, he realizado el cambio pero no lo puedo probar, así que serás mi conejillo de indias :) Antes de subir la nueva versión, vamos a probar qué tal va.

He actualizado sólo el archivo engine.h, que dejo como adjunto en este mensaje. Tienes que sustituir tu engine.h por este que dejo aquí. Ten en cuenta que las modificaciones siempre se hacen sobre la versión más reciente de la Churrera, que es la 3.99.3c. Si tienes otra versión más antigua puede que haya algo que no funcione bien, así que asegúrate de aplicar el cambio sobre la versión más moderna.

Para que funcione, tenemos que añadir una definición más a config.h. Puedes ponerla donde quieras, pero por orden colócala justo debajo de #define PLAYER_KILLS_ENEMIES:

$this->bbcode_second_pass_code('', '#define PLAYER_CAN_KILL_FLAG 1 // If defined, player can only kill when flag # is "1"')

El jugador podrá matar o no a los enemigos según el valor de una flag, que tendrás que definir en esta directiva. Según esta flag valga 1 o 0, el jugador podrá matar o no a los enemigos si salta sobre ellos. ¡Ojo! Para que funcione, debe estar activada también PLAYER_KILLS_ENEMIES.

Por ejemplo, imaginemos que decides que el flag que controle este comportamiento es el flag 5. Primero definiríamos esto en config.h:

$this->bbcode_second_pass_code('', '#define PLAYER_CAN_KILL_FLAG 5 // If defined, player can only kill when flag # is "1"')

Luego, en el script, nos aseguraríamos de que ese flag vale 0 al principio del juego (o 1, si queremos que se pueda matar a los enemigos desde el principio):

$this->bbcode_second_pass_code('', 'ENTERING GAME
IF TRUE
THEN
SET FLAG 5 = 0
END
END')

Imagina que queremos que el jugador pueda empezar a pisar a los enemigos cuando coja un objeto representado por el tile 24 y situado en la pantalla 6, posición (7, 5). Podríamos hacer algo parecido a esto:

$this->bbcode_second_pass_code('', 'ENTERING SCREEN 6
# Si no hemos cogido el objeto lo dibujamos
IF FLAG 5 = 0
THEN
SET TILE (7, 5) = 24
END
END

PRESS_FIRE AT SCREEN 6
# Si pulsamos ACCION sobre el objeto...
IF FLAG 5 = 0
IF PLAYER_TOUCHES 7, 5
THEN
# Lo borramos de la pantalla
SET TILE (7, 5) = 0
# Activamos la habilidad de matar enemigos
SET FLAG 5 = 1
END
END')

El cambio ha sido realmente sencillo, debería funcionar sin ningún problema. ¿probamos? :)

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Lun, 03 Mar 2014, 13:41
por Alessandro
$this->bbcode_second_pass_quote('na_th_an', 'V')eamos, he realizado el cambio pero no lo puedo probar, así que serás mi conejillo de indias :)

Con mucho gusto :D

$this->bbcode_second_pass_quote('na_th_an', 'T')en en cuenta que las modificaciones siempre se hacen sobre la versión más reciente de la Churrera, que es la 3.99.3c. Si tienes otra versión más antigua puede que haya algo que no funcione bien, así que asegúrate de aplicar el cambio sobre la versión más moderna.

Desgraciadamente no encontré el enlace para descargar la 3.99.3c, porqué desde la página de la Churrera se puede sólo descargar la 3.99.3b. Mientras tanto lo hagaré con esta ultima.

$this->bbcode_second_pass_quote('na_th_an', 'E')l cambio ha sido realmente sencillo, debería funcionar sin ningún problema. ¿probamos? :)
Por cierto ;) ... ¡¡¡Ayyyy!! ¡¡Funciona!! ¡MACANUDO! :corchoneta: :wan: :porro: Gracias infinitas :adore:

Ahora, dos otras preguntitas... por favoooooor :mrgreen:

1. No hay más un sonido cuando se recoge el objecto. ¿Como puedo habilitar eso?

2. Esta es la pantalla inicial del güego. Podés ver que el protagonista, en la esquina bajo a la derecha, se volve hacia la pared, lo que me parece algo tonto. ¿Como se puede iniciar con él volvido a la izquierda?

Image

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Lun, 03 Mar 2014, 13:48
por na_th_an
Tienes razón sobre la 3.99.3c :oops: aún no la he subido porque está en pruebas. De todos modos, no cambia para nada lo que tú tienes que modificar. En un par de días la subiré con los cambios que hemos hecho para tí :)

Contesto de nuevo entre lineas :)

$this->bbcode_second_pass_quote('Alessandro', '[')b]1. No hay más un sonido cuando se recoge el objecto. ¿Como puedo habilitar eso?


Los objetos normales, los que se colocan como hotspot 1 en el colocador, tienen un sonido estándar. Si te refieres a los sonidos "especiales", los que se cogen desde script, tienes que hacerlos sonar tú con el comando SOUND. Por ejemplo:

$this->bbcode_second_pass_code('', 'PRESS_FIRE AT SCREEN 6
# Si pulsamos ACCION sobre el objeto...
IF FLAG 5 = 0
IF PLAYER_TOUCHES 7, 5
THEN
# Lo borramos de la pantalla
SET TILE (7, 5) = 0
# Activamos la habilidad de matar enemigos
SET FLAG 5 = 1
# Sonido:
SOUND 7
END
END')

Los sonidos disponibles en modo 48K son los siguientes:

$this->bbcode_second_pass_code('', ' TABLA DE SONIDOS

n Sonido
----------
0 Enemy destroyed
1 Enemy hit
2 Something
3 Jump
4 Player hit
5 Enemy destroyed 2
6 Shot
7 Item #1 (item)
8 Item #2 (key)
9 Item #3 (life)')

$this->bbcode_second_pass_quote('Alessandro', '[')b]2. Esta es la pantalla inicial del güego. Podés ver que el protagonista, en la esquina bajo a la derecha, se volve hacia la pared, lo que me parece algo tonto. ¿Como se puede iniciar con él volvido a la izquierda?


Aquí tendrás que ensuciarte las manos :D Tienes que modificar el frame inicial del sprite original. Puedes hacerlo modificando el archivo engine.h, en la linea 91. Debes poner player.facing a 0 (originalmente está a 1).

$this->bbcode_second_pass_code('', 'player.facing = 0;')

De nuevo, no sé si esto funcionará XD ¿Puedes probar?

Por cierto, el juego tiene un aspecto sensacional :)

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Lun, 03 Mar 2014, 13:53
por angel
Qué buena pinta! :wan:

Re: Problemas y dudas sobre mi primero juego churrero

Publicado: Lun, 03 Mar 2014, 14:41
por alxinho
Ey! el primo de Horacio! :jias: