Inicio > Tutorial > Videojuegos: programando en un bucle

Videojuegos: programando en un bucle

La forma de programar un videojuego es ligeramente distinta a la que suele emplearse cuando se desarrollan otro tipo de aplicaciones. Habitualmente se codifican instrucciones para su ejecución secuencial o dirigida por eventos; sin embargo, al desarrollar un juego para ordenador prácticamente todo el código debe estar dentro de un bucle de juego.

Aunque, lógicamente, cada instrucción que escribamos se ejecutará una a continuación de otra, el bloque correrá constantemente en el interior de un bucle, y durante el desarrollo habrá que tenerlo siempre presente. Si pretendemos, por ejemplo, mover un personaje a un determinado punto en el espacio, no podremos emplear una instrucción del tipo “ir al punto p”, sino más bien “mover (un poco) hacia el punto p”; es decir, en cada iteración aproximaremos un poco el personaje a su destino. Y esto será aplicable a cualquier elemento del juego (menús y mensajes incluidos)

Un pseudocódigo típico que representa la lógica principal de un videojuego es:

mientras juego_activo hacer
 entrada usuario             // Gestionar teclado, joystick, …
 actualizar lógica           // Actualizar posiciones, IA, colisiones, …
 reproducir sonido           // Sonidos y música
 dibujar graficos            // Dibujar elementos en pantalla
fin

Un videojuego, es por tanto, una actualización continua de todos los elementos que intervienen en el mismo, y el “arte” está en elaborar el programa de tal forma que pueda ejecutarse correctamente mediante este método.

Un poco de código

DarkGDK es una de las herramientas donde puede apreciarse claramente cómo funciona el bucle de juego. Si generamos una plantilla básica para un juego a través del asistente correspondiente el código que obtenemos, eliminando los comentarios, es:

#include "DarkGDK.h"

void DarkGDK ( void )
{
   dbSyncOn();
   dbSyncRate(60);

   while ( LoopGDK() )
   {
      dbSync();
   }

   return;
}

Tras una inicialización básica del motor tenemos un while que implementa el blucle de juego. Casi la totalidad del código del videojuego debería estar dentro de dicha instrucción. Cada iteración se produce varias veces por segundo y debe finalizar siempre con una sentencia dbSync().

Categorías: Tutorial Etiquetas:
  1. 07/11/2017 a las 23:39

    マブラヴ オルタネイティヴの熱狂的支持者が、ゲームアプリをダウンロードすることになったファクターは、鑑 純夏(かがみ すみか)のファンであることが一番多くて、続いてTVCMだと答える人と同様だとすると、60%くらいになると言われます。パソコン用ゲームに係わるポイントの挙げ方を習得したいのですが、以前からあるようなノウハウサイトを見ても、自分が身に付けたい攻略法は存在しないようです。

  1. No trackbacks yet.

Deja un comentario