Crea tus Juegos con 8BPCursos

8BP: Una sola lógica para gobernar todas tus pantallas

4.8
(5)

¡Hola amigos de 8 Bits de Poder! En el artículo de hoy, veremos como usar una lógica de control para gobernar las pantallas de nuestro juego en 8BP, Además de algunos consejos y técnicas que utilizo en mis juegos para la optimización del uso de la memoria.

Descubre 8BP

Como bien sabes, nuestro Amstrad CPC 464 tan solo tiene 64KB de memoria. Si descontamos la memoria de vídeo, la memoria para tus sprites, tu música y la librería 8BP, te quedan 24KB de Basic que debes usar muy bien.

Si cada pantalla tiene su propio “programa” dentro de tu juego, apenas podrás hacer un juego de 10 pantallas.

Lógica de pantallas: reducir el uso de memoria en 8BP

Hay dos cosas que debes tratar de hacer para reducir el uso de la memoria:

  • Crear pantallas con pocos bytes.
  • Crear una sola lógica que gobierne todas las pantallas, es decir, que un mismo ciclo de juego es el que se va a ejecutar en todas las pantallas del juego.

En los juegos de pasar pantallas que usan layout, cada pantalla puede ocupar 20x25 bytes, es decir 500 bytes. Si empleas ciertos “trucos” como los explicados en los artículos anteriores, puedes reducir esta memoria. En el videojuego “Happy Monty” se construyen 25 pantallas con solo 160 bytes cada una, y hay una única lógica de ciclo de juego para todas las pantallas.

HAPPY MONTY / 8BP [ #CPCRetroDev 2019 Trailer ]

Es muy importante que programes una única lógica de ciclo de juego y la apliques a todas las pantallas. Si programas una lógica de ciclo de juego para cada pantalla, el código fuente de tu programa será enorme y podrás programar pocas pantallas pues se te acabará la memoria pronto.

También puedes superar las limitaciones de memoria mediante algoritmos que generen laberintos, o pantallas sin necesidad de almacenarlos. De este modo podrás hacer muchas más pantallas. Esto requiere creatividad, desde luego, pero es posible. Un algoritmo siempre ocupa menos que los datos que genera, aunque lógicamente cuesta mas tiempo ejecutarlo que simplemente leer datos almacenados.

Puedes reutilizar la lógica de enemigos de una pantalla en otra, ahorrando líneas de código. Aprovecha el mecanismo GOSUB/RETURN para ello.

Lógica

También es muy útil usar rutas en los enemigos. Con el mecanismo de rutas, el enemigo se mueve sin ejecutar lógica BASIC y funcionará muy rápido. Basta con asignar una ruta a un enemigo para que este la recorra una y otra vez sin que necesitemos costosas instrucciones IF, asignaciones, etcétera.

Otra técnica muy utilizada para reducir memoria es hacer juegos que carguen por fases, de modo que no tengas todo el juego en memoria a la vez. Esto es un poco molesto para el usuario de cinta (CPC 464) aunque no lo es para el de disco (CPC 6128 y 664)

Usa sprite flipping para ahorrar memoria en tus sprites.

¿Qué tal avanza tu juego en 8 Bits de Poder? En el próximo capítulo de este curso veremos como hacer un Pac-Man con 8BP.

Toda la información de 8 Bits de Poder la puedes encontrar en el repositorio Github de Jjaranda.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Etiquetas

2 comentarios

  1. Excelente artículo.
    Una pregunta: en el artículo «8BP: Juegos de pantallas, layout o “tilemap” del pasado mes de mayo hablabas de ofrecernos unos ejemplos del uso del comando LAYOUT pero no has vuelto a publicar nada al respecto. ¿Volverás a ello o queda ya descartado?

    0

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicaciones relacionadas

Botón volver arriba
Cerrar
Cerrar
Configuración de Cookie Box