151
General / Re:Nuevos juegos en desarrollo
« en: Marzo 05, 2024, 18:13:05 »
No le falta mucho al Phantomas
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
@jicas En tu caso, en el Vampire ¿cuál usaste?
Y otra cosa importante... ¿cómo hiciste el mapeado de los enemigos?
He visto que hay programas de mapeo que permiten poner los enemigos y objetos, especificar el comportamiento o trayectoria, etc. No creo que CharPad esté pensado para eso, pero en todo caso ¿cómo lo resolviste?
La lógica del scroll en principio es fácil, otra cosa es hacerlo y que funcione bien!!
Al Scroll del C64 (Hardware) me gustaría un día dedicarle un directito. Hacer un Scroll Software (al caracter) de una linea de texto es muy sencillo. Cualquier programador experto como usted deducirá el procedimiento. ;-PEntre los ejemplos que estaba viendo ayer había uno muy simple de estos. Tan simplificado el código que me costaba entenderlo!
El tema es cuando te metes en un Scroll al pixel (Hardware). Aquí el VICII no nos ayuda tanto como nos hubiera gustado. Básicamente (resumiendo), lo único que ofrece es un registro al que le metes un valor del 0 al 7. Este valor simplemente desplaza la pantalla (Toda la pantalla) a la derecha/izquierda o arriba/abajo el número de pixels que indiquemos en el registro. En un juego, salvo que el área de juego sea toda la pantalla no acaba de ser muy práctico ya que necesitamos meter marcadores seguramente. Tenemos dos opciones:
1.- Poner los marcadores como Sprites (no se ven afectados por el scroll) Es una técnica que queda bastante chula en algunos juegos ya que el "Score" por ejemplo, queda en un overlay sobre el área de juego. El problema es que tenemos el límite de 8 sprites para el juego y los marcadores. Obviamente los juegos que usan esta técnica, multiplexan para saltarse ese límite, lo que implica técnicas de manejo del Raster. Que bueno, tampoco son complicadas, es meterse un poquito más.
2.- Hacer que parte de la pantalla no se vea afectada por el Scroll. Esto también se maneja por medio del raster, interrumpiendo el trazado de la imagen cuando lleguemos a una línea concreta de pantalla.
En ambos casos hay un problemilla añadido. El volcado de los datos de la imagen a la pantalla debe hacerse rápido o si no queda un efecto de "LAG" muy feo. Para solucionarlo se suele usar técnicas de doble buffer de pantalla.
De todo esto hay bastante documentacion por aquí https://codebase64.org/doku.php?id=start. (En perfecto Inglés y para ASM)Has citado a la Madre de todos los ensambladores con esa web...
En el Oscar 64 (ya para "C") hay en la carpeta "samples" código aplicado a ambas técnicas, entre otras cosas..
https://github.com/drmortalwombat/oscar64
Por último en mi "afamado" "Fart Scape" uso la segunda técnica de una manera chapucera pero me funciona. Y creo que también tengo algún ejemplo con código sencillo que estaría dispuesto a compartir si me prometes no reirte al verlo ;-PAfamado y denostado
Si, siempre se exportan en Bin. Se exporta el set "Chars", "Map" y "Attrib map. Después en el programa hay que hacer una rutina para cargar los caracteres en la memoria de caracteres. Y luego otra que cargue el Map y lo "colorice".Ya le di a "exportar todo", asi que tengo chars, atributos, tiles y mapas. Ahora me queda intentar ir pegoteando todo eso...
Es una buena idea usar alguna rutina de compresión, ya que cada pantalla ocupa 1kB.Estuve mirando algo de código de este Rascal, tiene muchos ejemplos, empezando desde cosas muy básicas. Pero es demasiada información y eso facilmente puede saturar mi cerebro y agobiarme por verlo todo como una montaña muy grande.
Tengo bastante código en "C" por si quieres echarle un ojo, igual te resulta más accesible que el ASM, aunque en concreto estas rutinas son bastante sencillas de implementar. Básicamente copiar datos de una zona de memoria a otra.Y si, llegado el momento tocará lo de comprimir cosas, pero por ahora eso lo veo como algo muy lejano.
Joe, pues no pensaba que habías usado ese modo Jicas. Nunca me he metido con él porque los 64 caracteres de tope me parecía un poco limitante. Lo cierto es que al margen de este problema es un modo que emula muy bien las prestaciones de color del Spectrum