Crea tus Juegos con 8BPCursos

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

4.7
(9)

¡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.

rutas avanzadas

Pero espera… ¿Es posible que no sepas nada de 8 Bits de Poder? Puedes leer el primer artículo del curso de programación en Amstrad CPC de 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 20×25 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.

Por favor, acepta las cookies de YouTube para poder ver este video. Aceptando, accederás al contenido de YouTube, un servicio externo y gestionado por terceros.

Leer la privacidad de Youtube.

Aceptando este aviso, tu selección será guardara y la página se refrescará.

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.

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.

Hasta aquí hemos llegado por hoy con el curso de programación en Amstrad CPC de 8 bits de poder Si tienes alguna duda puedes escribir en comentarios y te contestaré lo antes posible.

Todos los recursos, como manuales, ejemplos y juegos compilados de este curso los puedes encontrar en el repositorio Github de 8BP.

Hasta la semana que viene amigos 😄

¿Te ha Resultado útil este artículo?

Ayúdanos a mejorar y danos tu opinión:

Mostrar más

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?

Deja una respuesta

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

Publicaciones relacionadas

Mira también
Cerrar
Botón volver arriba