Un engine: Un engine es una especie de Framework para el desarrollo de videojuegos, y cuyo objetivo(al igual que todo Framework) es facilitarnos el trabajo y poder enfocarnos de lleno a nuestro desarrollo y olvidándonos de algunas cuestiones básicas como la gestión de gráficos, sonido, entradas etc; usando algunas estructuras de datos y funciones (o clases) que guían al diseño de nuestra aplicación.
¿Y que tiene que ver esto con la programación O.O.? Sencillo, el engine del cual vamos a hablar es de un engine desarrollado con este paradigma, y que nace justamente para pasar de una API como SDL a un mundo de objetos.
Si nuevas preguntas… ¿Qué es una API? ¿Qué es SDL?
API: Una API en pocas palabras son un conjunto de módulos, funciones, o clases que permiten el acceso a otros componentes de software como puede ser una librería para la para la gestión de gráficos, o de un controlador de Wiimote por citar algunos ejemplos.
Y ahora se preguntarán, ¿Qué diferencia hay entre una API y un Framework? Es más sencillo de lo que parece, aunque a veces se las llega a confundir.
Las API´s son simplemente una interfaz a un componente de software, y nada más, es independiente de para que se use (EJ: desde un video juego hasta una bases de datos), y no afectan al diseño de nuestro programa.
Al contrario un Framework puede incluir el uso de muchas API´s, pero el mismo Framework ya cuenta con estructuras que afectan el diseño de nuestra aplicación, y están pensados para el desarrollo de aplicaciones especificas (EJ: o para videojuegos o para Base de datos).
Por su parte, SDL Es una API que proporciona las funciones básicas para realizar operaciones de dibujado, de gestión sonido, música, y carga y gestión de imágenes.
Con más conceptos en la cabeza les digo que a partir de SDL que esta programado en C, y por tanto en programación estructurada, diseñe e implemente un simple (muy simple y no concluido) engine 2d para el desarrollo de juegos en C++.
Ya existen otros como SMFL que hacen lo mismo y mejor, pero el objetivo era reinventar la rueda para aprender un poco.
Restan dos entradas que hablan de este desarrollo. En la que sigue les voy a contar la ventaja que supone pensar aplicaciones de este tipo en objetos, y en la última les voy a contar como se complica no tener un Garbage Recollector (como tiene smalltalk), ya que como dije el engine esta programado en C++ ( y este no lo tiene).
Espero les sea de interés.
Alejandro Iglesias.
No comments:
Post a Comment