Z88DK (curso Radastan) - Dudas Varias

Soporte técnico sobre los lanzamientos de MojonTwins y comentarios sobre los güegos. Ofrecemos soporte técnico con Fourspriter, te ayudamos con ZX Basic o Z88DK, te damos pistas some cómo saltarse un bicho y cosas así.

Moderador: na_th_an

Avatar de Usuario
Hark0
Mensajes: 96
Registrado: Mar, 28 Ene 2014, 07:42
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Z88DK (curso Radastan) - Dudas Varias

Mensajepor Hark0 » Jue, 22 May 2014, 08:37

Estoy empezando a montar un mapa con varias pantallas...

De momento he montado 9, para poder comprobar todas las entradas salidas, conexiones etc...

La cosa ya se está "engordando"... he alcanzado los 19 kb...

Osea, mola meter 1000 graficos, pero me como ram.
Mola meter 1000 pantallas, pero me como ram.
Necesito reservar logicamente, espacio para la logica del programa, etc.

Me pregunto... ¿como calcular un equilibrio mapas/sprites?

¿alguna pista/idea?
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Z88DK (curso Radastan) - Dudas Varias

Mensajepor na_th_an » Jue, 22 May 2014, 08:43

Amigo, eso es bien jodido :) Si ya tuvieses el motor terminado, podrías ver cuánto te queda libre y equilibrar así.

Ten muy presente cuánto te ocupa una pantalla y cuánto te ocupa cada gráfico/sprite. Por ejemplo, en la churrera, como los movimientos son a pixel los gráficos de los sprites ocupan mucho más. Cada frame de sprite ocupa como dos pantallas del mapa... En tu caso el ratio no es tan heavy.

También puedes intentar tirar con lo que tienes y si te ves picueto de memoria buscar una forma de comprimir el mapa, como la que propone A. Villena, con la que se consigue muy buen ratio de compresión.
Como diría Rorshach: "Urm..."
Avatar de Usuario
radastan
Mensajes: 692
Registrado: Vie, 20 Ago 2010, 12:54
Contactar:

Re: Z88DK (curso Radastan) - Dudas Varias

Mensajepor radastan » Jue, 22 May 2014, 09:43

Pues mira, mi experiencia haciendo el juego para Interface II que debe ocupar 16K como máximo:

- Un mapa de 1000 pantallas es absurdo, es más, según te lo curres incluso uno de 8x8 pantallas es todo un Mundo.
- Cada pantalla no tiene porqué ocupar todo el área visible, haz el área visible más pequeñita y podrás engordar el mapa artificialmente (y queda mono).
- Como bien dices 1000 tiles molan, pero lo mismo con 96 sobra.

Un ejemplo:

- Pantalla de 16x8 tiles (marcador abajo de 4 caracteres de alto)
- Mapa de 8x8 pantallas

Eso da 8192 bytes, 8K, para el mapa. No es un disparate, pero puedes recortar la pantalla a 10x10 tiles y se te queda el mapa en 6K nada más. 64 pantallas es tela de grande.

Pero vamos, que llevas 18K ocupados, tampoco es tanto. Mete el mapa completo y todos los tiles, aunque haya tiles y pantallas vacías, y sabrás exactamente lo que queda de código.

La otra opción es meter compresión de mapas, pero no creo que te haga falta a menos que seas muy burro.
Avatar de Usuario
Hark0
Mensajes: 96
Registrado: Mar, 28 Ene 2014, 07:42
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Z88DK (curso Radastan) - Dudas Varias

Mensajepor Hark0 » Jue, 22 May 2014, 10:51

Os entiendo a ambos...

Estoy en una fase bastante inicial y tengo en mi cuaderno cuadriculado de toda la vida un mapa más / menos planteado...

Lo que tengo claro es que las pantallas las quiero de 32x20; si meto "marcos" para encoger la pantalla no tiene porqué desmerecer (basta ver todo lo que hay ya) pero soy partidario de llenar la pantalla con el mapa en todo lo que pueda.

Como comentáis es difícil porque estoy ante la tesitura de hacer el mapa más detallado (más tiles) ó recortarlo...

Creo que de momento iré puliendo el "motor mainloop" con las 9 pantallas que tengo y cuando esté "limpio, etc" voy engordando la cosa...

Una cuestión más:

¿Tarda lo mismo pintar una pantalla usando put_sprite16 que usando put_h1_Sprite (2 pasadas)? Tengo muchos tiles de 8x8 que podria aprovechar...


EDITO: Gracias por vuestra paciencia conimgo ;)
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
radastan
Mensajes: 692
Registrado: Vie, 20 Ago 2010, 12:54
Contactar:

Re: Z88DK (curso Radastan) - Dudas Varias

Mensajepor radastan » Jue, 22 May 2014, 10:59

$this->bbcode_second_pass_quote('Hark0', '')Tarda lo mismo pintar una pantalla usando put_sprite16 que usando put_h1_Sprite (2 pasadas)? Tengo muchos tiles de 8x8 que podria aprovechar...


Evidentemente tarda bastante más.

Tu hazlo todo con tiles de 16x16 que el concepto de megatiles ya lo explicaré más adelante. Se basa en usar combinaciones de tiles, de varios tamaños, para hacer otro más grande. De esa forma, si en el mapa se repiten muchos patrones, puedes ahorrar mucha memoria y tener un mapa más grande.