Página 8 de 15

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 21:47
por na_th_an
Igualmente le echaré un ojaldre :) Pero tendrá que ser mañana por la mañana.

Es MUY importante tener mucho cuidado con la versión que se usa. Siempre usar la más reciente, y cuidarse de no mezclar archivos. Ahora mismo lo más moderno que hay en churrerez es esto que adjunto aquí (no es más que la amalgama de enmiendas y paranoias que han salido en este foro de cuando en cuando).

¡Atención! Esta versión está muy optimizada para ahorrar memoria, y es importante editar churromain.c para especificar el número de bloques que se necesita para los sprites:

$this->bbcode_second_pass_code('', '// NUMBLOCKS es el número de bloques necesario para mover los sprites
// Configurar bien este número es MUY IMPORTANTE

#define NUMBLOCKS 40

// La regla es esta: cada sprite de 16x16 ocupa 10 bloques.
// Cada proyectil ocupa 5 bloques.

// Si, por ejemplo, tu juego no tiene disparos, sólo necesitas bloques
// para el sprite principal y tres enemigos, o sea, 4*10 = 40 bloques.

// Si, por ejemplo, tu juego además lleva 3 proyectiles, necesitarás
// 4*10 + 3*5 = 55 bloques.')

Ahora mismo, si sólo tienes activado pisar, te vale con los 40 bloques. Si quieres meter disparos, habrá que añadir más bloques. Esto está así para que churromain.c reserve únicamente la memoria que necesita, dejando más espacio para nuestro juego.

Básicamente por eso no está publicada... Porque lo de los bloques seguro que confunde a más de uno.

De todos modos ya te digo que me dejes echarle un vistazo mañana. Y si no, lo portamos a MK2, que se hace en 10 minutos.

Re: Proyecto Aquanoids: el videojuego

Publicado: Mié, 12 Ago 2015, 22:28
por NeilParsons
Gracias majo! :nath:

Re: Proyecto Aquanoids: el videojuego

Publicado: Jue, 13 Ago 2015, 10:27
por na_th_an
Ya lo he actualizado a la última versión.

Efectivamente, se queda por encima de 37Kb. Aunque con la versión 3.99d caben unos 256 bytes más que con la versión anterior, no es suficiente.

Creo que el principal problema es, ahora mismo, este:

$this->bbcode_second_pass_code('', '03/08/2015 22:43 2.074 ending.bin
09/08/2015 19:47 3.070 title.bin')

Las pantallas comprimidas ocupan muchísimo. Esto es debido a que son muy complejas. Cuanta más carga gráfica peor se comprimen. Por eso los juegos de 48K que hacemos nosotros suelen tener pantallas fijas que son la mínima expresión. No es vagancia: es ahorro. Si tu tile.bin ocupase en torno a 1 o 1.5Kb la cosa funcionaría.

Ahora mismo hay varias opciones:

- Crear unas imagenes más sencillas para esta versión de 48K y hacer que entre todo, aunque sea comprometiendo la calidad.
- Convertir el proyecto a modo 128K. En este caso, todas las pantallas comprimidas van a la RAM extra, puedes hacer música con WYZ tracker, y tendrías la posibilidad de expandir con nuevos niveles muy fácilmente.
- Portar a MK2. MK2 es más liviano y puede que funcionase.

Voy a probar a portártelo a MK2 tal y como está a ver qué sale, aunque no prometo nada.

Re: Proyecto Aquanoids: el videojuego

Publicado: Jue, 13 Ago 2015, 10:56
por na_th_an
Una cosilla, no veo enems.ene en el juego ¿es que aún no lo has colocado, o es que simplemente no está en el RAR?

EDITO: no, veo que hay un enems.h... Para portar a MK2 necesito enems.ene ¿puedes pasármelo?

Re: Proyecto Aquanoids: el videojuego

Publicado: Jue, 13 Ago 2015, 11:05
por na_th_an
Por cierto (y a falta de enemigos) en MK2 el juego ocupa 34K, mientras que en churrera son 37 :ayayay:

También he visto que tienes activado LINE_OF_TEXT, pero por cómo lo tienes hecho creo que no has entendido bien su cometido. La linea de texto debe integrarse en el marco del juego. Hay que hacerle sitio, son 30 caracteres de ancho. Ahora mismo la has colocado en medio del area de juego y al entrar en cada pantalla el motor "la borra" y aparece una linea de caracteres azules.

Si necesitas texto en tu juego es mejor hacerlo con EXTERN y usar alguna de las rutinas que ya hay. Ya lo veremos más adelante, si quieres.

Por ahora pásame el .ene. En MK2 el juego funciona perfectamente (incluso hay un par de K libres para meter más cosas).

Re: Proyecto Aquanoids: el videojuego

Publicado: Jue, 13 Ago 2015, 12:04
por NeilParsons
Supongo que te valdrá el que tengo incluido con la versión 3.99b. Ya me cuentas si te vale. :)

https://www.dropbox.com/s/tn7s4hr1biv89 ... s.ene?dl=0

OK. Ya tengo más claro la función de LINE_OF_TEXT. En tal caso, si yo quiero que se imprima un texto en mitad de la pantalla durante x tiempo, como ocurría en Outcast o en First World PRoblems, tendría que usar una rutina especial con el comando EXTERN entonces.

Si funcionase con el MK2 ya sería la reostia... :cheer:

Re: Proyecto Aquanoids: el videojuego

Publicado: Jue, 13 Ago 2015, 12:33
por na_th_an
Tenemos un par de rutinas EXTERN que funcionan guay con MK2 y que sirven para introducir texto. Échale un ojo a Leovigildo. Si te valen esos cuadros de texto, se meten en un miau y te explico como se añade y gestiona el texto.

Toma, tu proyecto en MK2. Te he quitado LINE_OF_TEXT del config y he comentado las lineas TEXT en el script para que no te salga nada de basura en la pantalla y lo veas en todo su explendor.

También he customizado los controles. En MK2, 1 y 2 seleccionan WASD o OPQA, y 3 y 4 los joysticks. Lo he dejado con las tres opciones de la churrera.

Como no conozco bien el juego, puede que se me haya colado algún glitch o que alguna de mis configuraciones en config.h esté mal. Échale un vistazo. El config.h de MK2 puede acojonar porque tiene muuuuchas cosas, pero todas las de la Churrera siguen estando ahí y funcionan igual.

En MK2 no hay que andar convirtiendo nada. Para cambiar los gráficos, modifica los PNG de GFX. Para cambiar el mapa, edita el FMP y salva como MAP. Para cambiar los enemigos, graba tu .ENE y listos. make.bat se encarga de todo. No hay trabajo manual en absoluto.

Re: Proyecto Aquanoids: el videojuego

Publicado: Jue, 13 Ago 2015, 12:51
por elborra
$this->bbcode_second_pass_quote('na_th_an', '.')..También he customizado los controles. En MK2, 1 y 2 seleccionan WASD o OPQA, y 3 y 4 los joysticks. Lo he dejado con las tres opciones de la churrera.
Yeah!!, ya me has quitado una cosa que hacer para mi proyecto :D Cuando vuelva a casa me lo bajorrrr..

Re: Proyecto Aquanoids: el videojuego

Publicado: Jue, 13 Ago 2015, 13:08
por na_th_an
Además, la versión con la que he construido esto tiene un montón de mierdas corregidas. Pero un montón.

Re: Proyecto Aquanoids: el videojuego

Publicado: Jue, 13 Ago 2015, 14:49
por NeilParsons
:ymca: ¡Asias, asias!

Una cosa que tengo que ver, aparte de que había corregido en el script la colocación de unos tiles en la primera pantalla y la dinámica de movimiento del personaje, es lo siguiente:

Aquanoids-2.PNG
Aquanoids-2.PNG (33.97 KiB) Visto 8740 veces


Ya había entrado antes en esta pantalla para recoger una de las baterías: había que abrir el cerrojo presente en ella con una llave, bajar y recuperarla, pero en ella tenía que figurar además una lata de fuel en la posición tx, ty = 13, 5 (en el script está correctamente definido) y no había nada, solo un tile del fondo. Y se había definido el flag 1 correspondiente a dicho tile con valor cero para que se imprimiera en su lugar. No creo haberme equivocado en las coordenadas.

Seguí recorriendo el juego y pude ver que en las otras dos pantallas donde coloqué otros objetos especiales estaban en su lugar como así lo indiqué, recogiéndolos y situándolos en el marco del juego. Hasta ahí bien. Quise volver a esa pantalla (la 17 del mapa) y me encuentro que el cerrojo, que se suponía ya estaba abierto de antes, está nuevamente en su sitio. Eso sí, solo en unas pocas pantallas donde había un cerrojo y han sido retirados con las llaves volvían a aparecer. ¿Esto se puede cambiar en alguna parte?