Proyecto Churrero: AVORCHA - Pentacorn Quest 128K- RELEASED!

For all things Churrera. ¿Estás haciendo un juego? ¿quieres proponer un cambio? ¿tienes alguna duda? ¡Cuéntanoslo!

Moderador: na_th_an

Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest

Mensajepor Nightwolf » Mar, 03 Feb 2015, 19:19

Más cositas: Estos son los controles:
$this->bbcode_second_pass_code('', '
ACCIÓN TECLA JOYSTICK
Izquierda O ←
Derecha P →
Saltar ESPACIO FUEGO
Seleccionar Q ↑
Usar A ↓
')

Espero que con Joystick se juegue bien (solo puedo probar con un mando de Ps3 a través del emu)

Edit: Vale, funciona cambiando la tecla z, con if ((gpit & sp_UP) == 0) :)

Una pregunta, ¿cómo podría comprimir el script? ¿Ganaría mucha más memoria libre?

En Ninjajar, aparece esta utildad, supongo que por ahí irán los tiros...
..\utils\msc3.exe ninjajar.spt 21 rampage
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest

Mensajepor na_th_an » Mié, 04 Feb 2015, 11:01

Me temo que no es tan sencillo.

msc3 es el compilador de scripts de MK2. Los scripts son iguales, pero el código generado que los interpreta no. msc3 permite, entre otras cosas, colocar los scripts en la RAM extra (que no comprimirlos) - el problema es que el código del intérprete msc.h que genera no es compatible con la churrera.

Una de las cosas que tiene MK2 es que, para ahorrar espacio y velocidad, hace el código mucho más ilegible - eliminamos las estructuras y usamos variables globales a pelo (en vez de tener player con player.x, player.y, etc... tenemos variables individuales px, py...) además de introducir más funciones y atajos. Como el código del intérprete de scripts que genera msc contiene referencias a todos estos datos, no funcionará con la churrera.

¿Es posible modificar msc3.exe y hacer una especie de híbrido que sea capaz de crear scripts e intérpretes que funcionen en la RAM extra pero que sean compatibles con la churrera? Por supuesto, pero habría que modificar profundamente la parte de msc3 que genera el código y cambiar las referencias a las variables de MK2 por referencias a las variables de la Churrera. Sería una tarea tediosa.

msc.bas y msc3.bas se parecen mucho en la parte de generación de código. Con uno y otro frente por frente, se podría, con paciencia, cambiar el código generado por msc3.bas para cada comando y comprobación por el que genera msc.bas.

Si alguien se anima, no tiene más que decirlo y pego por aquí el código fuente de msc.bas y msc3.bas (que, sinceramente, no sé si va en algún paquete).
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest

Mensajepor Nightwolf » Mié, 04 Feb 2015, 11:14

Ah vaya. Bueno, entonces lo mejor ya sería empezar un nuevo proyecto con una versión posterior de la churrera. También molaría un ejemplo sencillo con las diversas opciones tipo multinivel, scripts compilados, etc, que cuando miro el Ninjajar... ¡no sé por donde empiezar! XD Quise cambiar el gráfico del protagonista y solo con eso, me salían ya todos los sprites negros requemaos XD

Pero vamos, según estuve leyendo, lo mejor es trincar el Leovigildo y empezar con él alguna otra cosa, ¿no? ¿Es por donde se continuará el desarrollo?
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest

Mensajepor Nightwolf » Mié, 04 Feb 2015, 20:53

Otra pregunta... ¿Cómo puedo borrar la pantalla, pero que se quede el marcador desde el menú? Porque con cortina() se borra toda la pantalla, blackout también :S Puedo borrar pintando espacios, pero eso es una burrada de memoria... :__(
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest

Mensajepor na_th_an » Jue, 05 Feb 2015, 00:06

MK2 es nuestro framework actual para Spectrum, es el que seguiremos evolucionando. Cuando nos pusimos con Ninjajar! nos dimos cuenta de que la churrera no nos daba para meterlo todo... Nos pusimos a optimizar y a optimizar y a cambiar rutinas. La rutina de movimiento del personaje es completamente diferente, es más rápida y ocupa muchísimo menos, por ponerte un ejemplo. Al final cambiamos tanto que dejó de ser compatible. Aunque se use de la misma manera, es otro monstruito.

Ninjajar! es un juego demasiado tocho para tomar contacto - y además no tiene la última versión de MK2. Como bien has dicho, Leovigildo es el punto de partida, tiene la versión más moderna y que trae más cosas. De hecho, cada carga de Leovigildo está hecha con una versión nueva de MK2, de forma que la versión más moderna la tienes en la cuarta carga.

Lo más chungo que tiene hacer un juego para 128K es que tienes que pensar qué necesitas manejar en tu gestor de niveles. Por ejemplo, Ninjajar! tiene un gestor de niveles relativamente complejo y por eso es buen punto de partida. Permite combinar cualquier tileset con cualquier spriteset con cualquier mapa con cualquier música con cualquier script - permite incluso reaprovechar el mismo mapa y script en varios niveles, como ocurre con las tiendas, que en realidad están todas en el mismo mapa. A veces esto no es necesario - te vale con que cada nivel tenga su mapa fijo asociado a unos gráficos fijos.

MK2 para 128K es menos amigable que la vieja Churrera, pero siendo experimentados desarrollador churrero como sois vosotros no debería suponeros ningún problema la adaptación, ya que la organización es exactamente la misma. Verás muchas cosas que te suenan de sobra en config.h (y muchas cosas nuevas).

Otra razón que nos hizo despedirnos de la Churrera y empezar MK2 era la necesidad de que las ampliaciones y modificaciones custom fuesen más sencillas. Con MK2 es mucho más fácil, por ejemplo, meter código para un comportamiento de enemigo especial, o un motor de movimiento totalmente nuevo. De hecho, si miras bien los fuentes de Leovigildo (carga final) verás como puedes hacer, si quieres, un juego de Phantomas o un Abu Simbel sólo tocando un par de directivas :)

Por ponerte un ejemplo de las bondades de MK2 - mira Sir Ababol DX. Cuando pillamos los recursos de Sir Ababol para probar cómo se movería en MK2 sobraba tanta memoria que pudimos meterle poder matar a enemigos tras coger un objeto, 20 pantallas más, un motor de movimiento extra, y un cambio de tileset... todo en 48K. El Sir Ababol original, elaborado con la Churrera 1.0, apenas cabía en los 48K.
Como diría Rorshach: "Urm..."
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Pentacorn Quest

Mensajepor na_th_an » Jue, 05 Feb 2015, 00:15

$this->bbcode_second_pass_quote('Nightwolf', 'O')tra pregunta... ¿Cómo puedo borrar la pantalla, pero que se quede el marcador desde el menú? Porque con cortina() se borra toda la pantalla, blackout también :S Puedo borrar pintando espacios, pero eso es una burrada de memoria... :__(


Busca una función "blackout_gamearea" o algo así. Creo que Goku Mal la llevaba. Si no, ya te la buscaré :lol: También puedes usar, si te mola, la rutina que aparece como "EXTERN 0" en Ninjajar! o Leovigildo.
Como diría Rorshach: "Urm..."