Crea tus Juegos con 8BPCursos

8BP: El CICLO del JUEGO

4.9
(7)

Bienvenidos de nuevo amigos de 8 Bits de Poder. Como cada semana, aquí tenemos la nueva entrega del curso 8BP en el que en esta ocasión hablaremos del Ciclo de Juego en la programación de nuestro juego en para Amstrad CPC.

Si acabas de llegar a este curso, lo mas recomendable es que lo empieces por la primera lección para de ese modo conocer la librería 8BP paso a paso.

¿Estas listo? ¡Comenzamos!

Un videojuego de arcade, plataformas, aventuras, o de cualquier otro genero tiene un tipo de estructura similar, en la que unas ciertas operaciones que se van a repetir cíclicamente en lo que denominaremos “ciclo de juego”.

En cada ciclo de juego actualizaremos posiciones de sprites e imprimiremos en pantalla los gráficos, de modo que el número de ciclos de juego que se ejecutan por segundo equivale a los “fotogramas por segundo” (FPS) del juego.

El siguiente pseudo código esquematiza la estructura básica de un juego.

Estructura básica del ciclo de un juego.

Si la lógica de los enemigos es muy pesada por haber muchos enemigos o por ser muy compleja, esto consumirá más tiempo en cada ciclo del juego y por lo tanto, el número de ciclos por segundo se verá reducido. Intenta no bajar de 10 fps para que el juego mantenga un nivel de acción aceptable Aunque esto también dependerá del tipo de juego y la acción que requiera el mismo.

COMO medir los FPS de tu CICLO de JUEGO

Para saber si tu juego tiene un nivel de acción aceptable, nada mejor que jugar a él y si la velocidad de acción te parece correcta, estará bien. Sin embargo, quizás quieras medir exactamente cuántos frames por segundo es capaz de generar tu videojuego, porque así puedes tomar decisiones en la lógica de tu programa y medir cuanto perjudican o benefician esas decisiones de programación.

el-ciclo-del-juego

Lo que haremos para medir es simplemente tomar nota del instante de tiempo antes de empezar el primer ciclo de juego, en el principio del “código de la pantalla N”. Luego tomaremos nota del tiempo tras unos cuantos ciclos de juego y haremos una sencilla división. Vamos a verlo paso a paso:

A=TIME: rem esta línea almacena en la variable A el tiempo en 1/300 fracciones de segundo

El número que se va a almacenar en A puede ser un número muy grande, de hecho, puede ser mayor que lo que es capaz de almacenar una variable entera como es “A”. Para que la asignación no produzca error, es conveniente resetear el temporizador del AMSTRAD, que se inicia cada vez que arrancamos la maquina. Para resetearlo, antes de asignar la variable “A”, simplemente ejecuta:

En un CPC 6128
POKE &b8b4,0: POKE &b8b5,0: POKE &b8b6,0: POKE &b8b7,0

En un CPC 464 
POKE &b187,0: POKE &b188,0: POKE &b189,0: POKE &b18a,0

Con ello habrás puesto a cero las direcciones de memoria donde el AMSTRAD CPC almacena el temporizador.

A continuación, ejecutamos tantos ciclos de juego como queramos, y controlamos en que ciclo estamos con la variable “ciclo”, que incrementaremos en una unidad en cada ciclo. Tras la salida de esa fase o pantalla, ejecutamos…

FPS=ciclo * 300/ (TIME – A)

Y ya tenemos los FPS de nuestro juego. Te lo pongo todo en orden a continuación:

Rem suponemos que estamos en un 6128
POKE &b8b4,0: POKE &b8b5,0: POKE &b8b6,0: POKE &b8b7,0
A=TIME
<aquí va el programa que ejecuta tu ciclo de juego, incluyendo ciclo=ciclo+1 >

Llegaremos aquí tras la condición de salida de la pantalla
FPS= ciclo * 300/ (TIME – A)PRINT “FPS =”;FPS

RESUMIENDO: El tiempo transcurrido desde que empezó el programa hasta que ha terminado es TIME-A expresado en 1/300 fracciones de segundo. Para pasarlo a segundos hay que dividirlo por 300.

Segundos=(TIME -A) /300

Si en dichos segundos se han ejecutado n ciclos (por ejemplo), entonces un ciclo ha tardado:

Tc= 300*(TIME-A)/n

Y el numero de ciclos que se pueden ejecutar en un segundo (los FPS) es la inversa, es decir:

FPS = 1/Tc = n*300/(TIME-A)

Hasta aquí hemos visto conceptos básicos de programación en Amstrad CPC tales como la arquitectura de la maquina y su manejo de memoria. También conocemos las herramientas y aplicaciones necesarias para empezar a programar…

En el próximo articulo hablaremos de sobre los SPRITES y de cómo crearlos con la herramienta SPEDIT y ENSAMBLARLOS para utilizarlos en tu JUEGO.

¿Te animas a crear un juego para Amstrad CPC?

Déjanos un mensaje y cuéntanos tu experiencia.

¿Te ha Resultado útil este artículo?

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

Votación promedio: 4.9 / 5. Total de votos: 7

Etiquetas
Mostrar más

Deja un comentario

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