Estoy tratando de descubrir los conceptos básicos del desarrollo del juego C64 más allá de BASIC, y podría usar algunos consejos sobre algo muy básico, pero importante: ¿qué es realmente todo eso en la pantalla y cómo dibujarlo?
Echa un vistazo a Katakis / Denaris :
Hay al menos 9 cosas diferentes en la pantalla:
- La barra de puntuación, con diferentes tipos de letra.
- El barco en sí
- Un satélite conectado a la nave, desmontable
- Proyectiles de armas secundarias
- Proyectiles de armas primarias
- Objetos en movimiento (pueden ser barcos enemigos)
- La barra de estado, con una imagen de la nave, el número de vidas y tres secciones que puede llenar
- La barra de carga del arma principal, puede llenarse hasta el final
- Un campo estelar desplazable en el fondo
- (sin numerar en la pantalla) Objetos sólidos como rocas o paredes de metal que forman parte del fondo
El C64 solo admite 8 sprites por línea de exploración horizontal, así que no creo que todo en el medio de la pantalla pueda ser un sprite. Supongo que cualquier cosa que requiera una colisión sería un sprite (ya que puedo obtener la detección de colisión de hardware con sprites), pero incluso entonces alcancé rápidamente el límite de 8 sprites. Además, mis armas pueden disparar mucho más de un proyectil: mi nave, el satélite y 6 balas ya serían 8 sprites seguidos (miren unos 50 segundos en el video).
Además, ¿qué modo gráfico usaría un juego como este? El Manual de programación enumera el modo de mapa de bits que esencialmente modifica la memoria de la pantalla directamente. ¿Es este el modo en el que normalmente debería estar trabajando? ¿Cómo compondría todos los elementos que no son sprites para que aparezcan en la pantalla?
Muchas de las cosas en la barra de puntuación y estado son estáticas ("Área: 01" o el "marco"), así que supongo que las rellenaré una vez cuando comience el nivel. Las cosas que deben actualizarse (el puntaje, las barras de carga en la parte inferior) se actualizarían llenando la memoria de la pantalla con negro y luego dibujando el nuevo puntaje en cada cuadro.
¿O tengo que dibujar la pantalla completa en cada cuadro?
fuente
Hace algún tiempo leí un artículo en la revista alemana C64. Las viñetas son personajes que actúan como sprites como alguien ya señaló. La nave y los enemigos son sprites.
Los niveles están hechos de personajes también pero con un giro. Como los niveles son tan grandes y la memoria es preciosa, Trenz escribió su propio conjunto de herramientas para agrupar personajes en módulos.
Para que pueda usar módulos más grandes y componerlos. También usaría ciertos módulos de parche para conseguir que la intersección de los módulos sea agradable y limpia.
En general, es una especie de compresión, donde los niveles se describen como bloques de construcción en lugar de char por char.
También puede notar que en Katakis algunos niveles tienen fondos de paralaje.
Esto se hace al tener un patrón para llenar el fondo, en su mayoría compuesto por caracteres de 2x2 o 3x3, y animarlo (desplazamiento de bits) contra la dirección del desplazamiento. Por ejemplo, el nivel se desplaza 2 píxeles hacia la izquierda, el patrón de fondo se desplaza 1 píxel hacia la derecha, por lo tanto, parece desplazarse a un ritmo más lento.
Espero que ayude
Una cosa más que realmente puede ver los módulos individuales y tal aquí https://archive.org/details/64er_1989_10/page/n27 desplazarse a la página 24
fuente