Razón Artificial

La ciencia y el arte de crear videojuegos

[BGE] Sistema base del Engine

Escrito por adrigm el 25 de septiembre de 2011 en Desarrollo Videojuegos, Programación, Proyectos | 2 Comentarios.

Bueno es hora de entrar en materia ya y empezar a ver la estructura del Engine. Mi idea es basarme en la estructura que usan otros engines y apis pues no es cuestión de reinventar la rueda, sino de uno entender como se hace.

Estructura básica de un juego

Se sale de este artículo explicar el desarrollo del bucle de un juego, pero no está mal recordarlo con un simple esquema:

Es un esquema muy simplificado, sin tener en cuenta temas como la velocidad de actualización para diferentes máquinas, etc. Si alguno necesita un tutorial sobre estos conceptos básicos que deje un comentario y haré un tutorial sobre el tema.

Cuando desarrollamos juegos simples este esquema está muy bien, pero cuando necesitamos manejar un proyecto a gran escala se nos empieza a quedar corto, por ejemplo, si necesitamos manejar varias pantallas como un menú, una pantalla de inicio, créditos, etc. este sistema sería bastante engorroso pues habría que estar añadiendo muchas sentencias de control para ver cuando se ejecuta qué y al final no habría forma de continuar del lío que se formaría, ahí es donde entra un gestor de escenas.

Gestor de Escenas

La idea es similar a lo explicado en este artículo con Pygame. Tener una clase abstracta llamada Scene que contenga los métodos virtuales de las diferentes escenas y gestionarlos en el bucle principal a través de un Scene Manager.

Para los que no estéis muy puestos en el tema lo de arriba os sonará a chino, pero con un esquema quizás se vea mejor.

Como vemos existe una clase App que se encarga de de inicializar el engine, carga ventanas, bibliotecas, archivos de configuración, etc.

También contiene una clase llamada SceneManager que se encarga de gestionar las escenas, esta clase cuanta con una lista de escenas inactivas y una Escena activa que con diferentes métodos podemos añadir, eliminar o cambiar, cuando veamos el SceneManager entraremos en detalles.

En el próximo artículo empezamos a ver el código de estas clases.

2 Comentarios en "[BGE] Sistema base del Engine"

  1. colosu dice:

    Buenas, se que hace ya tiempo que lo posteaste, pero creo que el tutorial que propones estaria bastante bien, sobre todo para saber como se implementan esas variables en un engine normal.
    Buena web, por cierto, esta genial.
    Salud!!!

  2. adrigm dice:

    colosu, estoy remodelando todo el engine. Pronto habrá novedades y nuevos tutoriales. Más y mejor.

    Un saludo.

Deja un comentario