jueves, octubre 19, 2006

¿que ocurre cuando se ejecuta un juego?

Es importante conocer, sobre todo si se viene de programar aplicaciones que no sean juegos, de que forma se ejecutan las instrucciones dentro de un juego. Hay que hacer incapie en la idea de que, en una aplicacion corriente, por norma general, la aplicacion trabaja segun las ordenes que le envia el usuario en forma de distintos eventos, tales como pulsar un boton, elegir una opcion de menu, o marcar una casilla de comprobacion (checkbox). Mientras el usuario no realice ninguna accion, el programa suele estar completamente ocioso, limitandose a esperar que ocurra algo.



En un juego, el programa tambien va a esperar que ocurran determinados eventos, como por ejemplo pulsar un boton para que una nave dispare, o pinchar con el raton en un punto para que el personaje del juego se mueva a ese punto, pero al contrario que ocurre con una aplicacion normal, en un juego, el flujo del programa se esta ejecutando continuamente, realizando lo que se denomina un bucle de juego (loop). Este bucle, como se muestra en la figura, se encarga de que cada segundo, la pantalla se refresque con nuevo contenido, tanto si ha cambiado como si no. La peculiaridad de un juego, es que, el programa responde a los eventos modificando la forma en la que se ejecuta ese bucle, es decir, podemos dejar a un juego sin ningun evento que estara ejecutando el bucle indefinidamente, pero cuando detecte que el usuario ha realizado alguna accion, evaluara esa accion, y si procede cambiara de que forma se ejecuta ese bucle, haciendo que en ese momento el resultado de esa accion tenga su presentacion en pantalla.



He creado un grafico, copiado de una version en ingles, en el cual se puede ver que acciones realiza un juego normalmente en un bucle de juego. Obviamente hay juegos que no se limitan a un bucle tan sencillo, pero en este caso utilizaremos este diagrama para no complicar demasiado este asunto.






En post posteriores, veremos como se refleja este diagrama en la plantilla que vimos en el post anterior, es decir, a la hora de crear un nuevo juego usando la plantilla "XNA game".

1 comentario:

David dijo...

Gracias de nuevo por tu aportaciones. Todo esto es de gran utilidad