Los motores de videojuegos y el ocaso de los programadores

Últimamente he estado metido de lleno en esto de la programación, desde hace bastante me ha gustado la idea de hacer videojuegos y más allá de las tonterías que he hecho con pseudo lenguajes de programación como DIV Games Studio, Fénix y DarkBASIC estan las auténticas librerías de desarrollo orientadas a videojuegos como lo son SDL, Allegro y OpenGL.

DIV Game Studio
DIV Game Studio ¡funcionaba sobre MS-DOS!

De todas ellas me siento más identificado con Allegro y he venido haciendo demos y algunas cosas con ella desde hace bastante tiempo, la nueva API de Allegro es intuitiva incluso para los que odiamos C++ a favor de C. La última versión realmente mejora un montón de cosas que antes era realmente complicado realizar, como por ejemplo el uso de transparencias para sprites y el reconocimiento de hardware además de la integración de OpenGL que se hace del mismo modo que lo venía haciendo SDL desde hace años, pero como siempre la curiosidad me ha llevado más allá y decidí probar algunos motores de videojuegos. Empecemos por lo básico: ¿qué es un motor?

El (muy) potente CryEngine 3
El (muy) potente CryEngine 3

Básicamente un motor es un software que simplifica el desarrollo de programas de manera brutal centrando toda la carga en el proceso de diseño. Por ejemplo, en un motor de videojuegos propiedades como la colisión de componentes, físicas e iluminación de entorno se hacen a golpe de click, algo que dentro de los parámetros clásicos de desarrollo tardaría meses, ¿por qué? porque simplemente todas estas rutinas están prefijadas dentro del programa.

Unreal Engine en todo su esplendor
Unreal Engine en todo su esplendor

Esto no implica que no se programa bajo estos entornos, aunque cada motor es de su padre y de su madre la gran mayoría de ellos utilizan scripts para definir comportamientos o reglas de juego, por ejemplo ¿qué sucede cuando el objeto A colisiona con el objeto B? eso no lo decide el motor, eso se define por código.

Image
Unity simplifica todo centrándose en el diseño

¿Qué nos queda? pues una mayor velocidad de desarrollo al eliminar la capa de un buen porcentaje de programación. El desarrollo bajo estos entornos por lo general se limita al comportamiento del personaje o la mecánica de juego. Aunque en el mercado existen infinidad de motores de juegos el que más me ha llamado la atención es Unity, en realidad es muy sencillo de usar si tienes una base mínima en esto del desarrollo de software, la gran ventaja de Unity es la licencia tiene dos versiones: Unity y Unity Pro que cuesta un pastizal (como cualquier motor de videojuegos moderno), la versión básica permite crear sin limitaciones con la “desventaja” de que nuestro juego tendrá una pantalla de bienvenida con el logotipo de Unity.

La extensión 2D de Unity permite hacer lo que sea, perfecto para estudios Indie
La extensión 2D de Unity permite hacer lo que sea, perfecto para estudios Indie

Unity nos permite crear a golpe de click cualquier cosa que tengamos en mente, no solo se limita a juegos tridimensionales. La última versión (para la fecha, la 4.3) posee un motor bidimensional bestial dejando atrás a muchas soluciones de desarrollo similares, con esta novedad podemos incluso olvidarnos del proceso de animación que se hace como se realiza en programas como Adobe Flash.

Pero ojo porque con estos motores no todo es ventaja, al tener tantas rutinas prefijadas y simplificar el desarrollo de manera sustancial puede que estemos perdiendo en el factor optimización lo que provoca que cualquier creación requiera de cierto hardware o que no pueda ser optimizado bajo cierta configuración; de todas formas siempre tendremos librerías como las que comente al inicio que aunque te hagan “echar más código” si que tendrás un producto cien por ciento hecho por ti, algunos ejemplos de buenos motores “no tan simples” son Ogre3D y Crystal Space.

Torchlight 2 de Runic Games esta hecho bajo Ogre3D
Torchlight 2 de Runic Games esta hecho bajo Ogre3D

Otros motores de videojuegos como Unreal Engine y CryEngine nos permite crear sin limitaciones, son motores muy potentes y complejos, diría que mucho más que Unity pero con su licencia no se nos permite comercializar nuestro software, una licencia de Unreal Engine puede llegar a costar la friolera de cincuenta mil dólares, algo que no todos los estudios independientes están dispuestos a pagar.

Anuncios

Un comentario sobre “Los motores de videojuegos y el ocaso de los programadores

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s