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

Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Lun, 24 Feb 2014, 10:57

Tienes que modificar el loop principal del juego para leer dos nuevas teclas y modificar el flag acordemente, y además para reflejar el tema en la pantalla de algún modo.

Si me pasas tu mainloop.h y me especificas bien qué hay que hacer, busco cinco minutos y te lo pongo.
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Lun, 24 Feb 2014, 11:03

Guay.

Lo de reflejar en la pantalla es lo que menos me preocupa, porque sí sabría como hacerlo. Lo único que no sabría es:

Si pulsamos la tecla "1" flag 20 se decrementa en 1, si es menor que 0, que tome el valor de 6.
Si pulsamos la tecla "2" flag 20 se incrementa en 1, si es mayor que 6, que tome el valor de 0.

Luego ya ingame sería poner:

// Inventario en posicion 1
IF FLAG 20 = 0
THEN
PRINT_TILE_AT (x,y)=tile
END

Pero ésto debería suceder cuando se pulsa una de las dos teclas.

Lo malo de poner tanta tecla, que hará impracticable jugar con Joystick, y eso sí que es un problema. ¿Hay Joystics con dos botones? O bien sacrificar el botón de salto usando FIRE, cambiarlo a USAR objetos, y la tecla A que sea de rotar el inventario.
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Lun, 24 Feb 2014, 11:06

El problama es que lanzar el script cuando se pulsa una tecla va a ser mucha tela solo para imprimir algo. Ocupará mucho menos si lo hacemos en C, por eso te pedía que me lo especificases muy bien :) Dime como debe reflejarse en la pantalla bien descrito, qué tiles entran en juego, y todo eso, y me encargo.
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Lun, 24 Feb 2014, 12:29

Hombre, estaría bien hacerlo lo más personalizable posible. Las variables:

La tecla de rotación del inventario -> Con una sería suficiente, y ahorramos tanta tecla (todo para adelante)
Flag donde se guarda la posición del inventario. De manera arbitraria he escogido el 20, pero podría ser configurable.
Número máximo de slots. En mi juego tengo 6, pero se podrían poner más slots.

Como te decía, lo complicado es dónde pones en el script que se haga la comprobación del valor que tiene FLAG tras pulsar una tecla y haber movido en 1 el flag. Porque luego pintar sería sencillo como ponía antes con:

// Inventario en posicion 1
IF FLAG 20 = 0
THEN
PRINT_TILE_AT (x,y)=tile
END

De hecho, al principio de cada pantalla con

ENTERING ANY

Lo que hace es pintar cada uno de los objetos que tiene el jugador (si los tiene) y pintar la selección según el FLAG de inventario.

Quizás se me ocurre que una forma de hacerlo sería que al pulsar la tecla de puntero del inventario, luego en el script sea igual que si se hubiese pulsado FIRE:

PRESS_FIRE AT ANY

Y aquí poner lo de pintar el puntero según el valor del FLAG.

No sé si me explico :S

En resumen, sería necesario:

Hacer que pulsando la tecla 1, el flag 20 se incremente de uno en uno.
Hacer un Especiale, que se lance al pulsar dicha tecla.

Otra opción más RPGera:

Si se quisieran hacer juegos con inventario muy amplio, la tecla pausa muestraría un recuadro con todos los objetos. Con las teclas de movimiento arriba, abajo, izquierda, derecha elegir un objeto determinado pulsando FIRE, y entonces volvemos al juego y en el HUD del juego solo se mostraría el objeto activo.
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Lun, 24 Feb 2014, 12:46

Te explicas, pero te digo que haciéndolo por el script ocupas mucha más RAM :) No te preocupes, siempre lo hago todo fácilmente configurable. Déjalo de mi cuenta.

Según he entendido, ¿tú tienes pintados todos los objetos uno al lado del otro en horizontal? ¿en vertical? ¿Cómo marcamos qué objeto está seleccionado? ¿Hay otro tile que usemos para señalarlo? Necesito saber estas cosas.

La opción RPGera creo que es demasiado compleja para la RAM que creo que te queda :)
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Lun, 24 Feb 2014, 13:24

De la opción RPGera quedaría genial para juegos genitales :P (Que como la cosa siga así, como que sería capaz de ponerme a portar un RPG que tengo en DIV/Gemix XD) Hombre, el juego es para 128K, porque no quería trabajar con demasiada restricción, el binario generado es de 55Kb (con música, pantalla final, efectos de sonido, etc). ¿Cuánta RAM me queda para scripts?

Los objetos están pintados en horizontal. Como me he estado basando en el genial Dogmole Tuppowski - Las nuevas aventuras, he preparado un mockup rápido en el curro para que se vea como van actualmente los objetos.

El gráfico "rojo" inferior sería lo que pintaría para indicar que ese objeto es el que está siendo utilizado (sería lo que se mueve al pulsar el botón de inventario) Y un cuadro encima de los objetos (donde en el mockup está la hierba), centrado, se me ocurre poner un texto con el comando TEXT, con el nombre del objeto. (Así me ahorro el tener que poner "Has cogido tal cosa", simplemente pone lo que es con un texto básico)
Adjuntos
title.png
title.png (5.35 KiB) Visto 5470 veces
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Lun, 24 Feb 2014, 13:43

Déjame que le pegue una pensada, porque los objetos que tú usas (ITEM en el script) se manejan internamente con una estructura de memoria que ya está creada y que tiene más información que si está cogido o no, pero que ahora mismo no se usa para nada y podríamos hacer algo chulo con eso.

Sobre el tema de la memoria, el tema es el siguiente: por mucho 128K que estemos usando, hay que tener en cuenta que la memoria extra sólo se emplea para almacenar cosas, y que todo lo que esté "en uso" tiene que estar en los 48K base. En la versión 3.99.3b que usáis aún necesita los scripts en RAM convencional, por lo que hay que tener cuidado. En la versión que ahora mismo está en desarrollo, los script pueden ir en una de las páginas de RAM extra por lo que pueden ocupar hasta 16K, que es mucho sitio... Pero como te digo, no sé cuándo estaremos listos para sacar la nueva versión, además de que hemos cambiado tantas cosas que habrá que tirarse un tiempo arreglando fallos.

Hay que entender un poco cómo funciona el Spectrum 128K. Los 128K están divididos en 8 páginas de 16K (16*8=128). Yo llamo "RAM convencional" a los 48K iniciales, que están formados por las páginas 5, 2 y 0, en ese orden.

En los spectrum de 128K podemos cambiar la página que ocupa el último lugar por cualquiera de las otras páginas 1, 3, 4, 6 y 7.

La forma más sencilla de usar esto es como lo hacemos nosotros: tener el juego de 48K más un "almacenamiento" en RAM. Cuando necesitamos algo que está en el almacenamiento, ponemos la página donde está, lo copiamos a su sition dentro de la RAM convencional, y volvemos a poner la página 0 para seguir funcionando como siempre.

Ahora mismo, el uso que le puedes dar a los 128K con la versión que tienes es el mismo uso que se le da en Goku Mal (supongo que estarás mirando los fuentes de este juego). En la RAM extra va:

- Las pantallas comprimidas de título, marco y final.
- Fases. Puedes hacer juegos con varias fases. Cada fase es una unión de tileset, spriteset, comportamientos, mapa, enemigos y hotspots.
- Más pantallas comprimidas. Por si quieres hacer una intro, o cutscenes como en Goku Mal.
- Música 128K.

Todo el resto va en los 48K base. El nivel actual, todo el script, los gráficos actuales y el motor.

Por lo general, siempre hay que estar sudando con los 48K básicos. Para saber cuánto te queda, sólo tienes que mirar cuánto ocupa el bloque principal (si usas un emulador que te deje ver los bloques de la cinta que estás cargando, como Spectaculator, puedes mirar ahí los bytes que ocupa el último bloque). El ejecutable empieza en 24200 y puede llegar hasta 60655. Eso significa que tu bloque principal puede ocupar, como máximo 36455 bytes.
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Lun, 24 Feb 2014, 13:58

Genial la explicación.

Entonces, por lo que veo, los scripts no pueden "trocearse" por pantalla. Esto es un problema si se quiere hacer un juego de Rol claro, por la gran cantidad de scripts que pueden llegar a tener (sobretodo dialogos) dividiendo los mapas en "fases" para así poder variar tiles y eventos.
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor na_th_an » Lun, 24 Feb 2014, 14:06

Ahora mismo, es lo que dices. Sólo hay un script para todo el juego, aunque haya varias fases. Puedes detectar en qué fase estás usando IF LEVEL = n, pero el tema es bastante engorroso. Es por eso por lo que lo hemos reescrito completamente para la nueva versión.

De todos modos, aunque no uses varias fases, usar 128K ya mola de por sí porque, aparte de tener música de fondo durante el juego y efectos chulos, estás quitando de enmedio todo el espacio que suele ocupar la música beeper, los efectos de sonido y el player de los mismos para beeper, y las pantallas comprimidas... Eso es una media de unos 6 a 8Kb más para tí.
Como diría Rorshach: "Urm..."
Nightwolf
Mensajes: 215
Registrado: Sab, 15 Oct 2011, 11:24

Re: Proyecto Churrero: AVORCHA - Dudas y sugerencias

Mensajepor Nightwolf » Lun, 24 Feb 2014, 14:16

Ya te digo, 128K rules :D (aunque solo sea por la música y efectos de sonido, anda que no cambia un juego con eso!) Y bueno, poner "cut scenes" a modo de pantallas siempre gusta (modernizando un poco la cosa jeje) Lo único que a ver como me arremango para hacer tal cosa, ya solo pensar en hacer una pantalla inicial de carga me produce un dolor XD

Una cosilla que me gustaría, es que se unificase, si fuese posible, el nombre de las funciones. ¡Es un lío saber cual de ellas tiene espacios, otras cuales usan guiones bajos, cuales usan los parametros entre paréntesis y cuales no jeje. ¡Un poco de más de orden! :D
Última edición por Nightwolf el Lun, 24 Feb 2014, 14:17, editado 1 vez en total.

Volver a “La Churrera”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 36 invitados