Mi juego soñado - Cap. 2: Sobre motores y gráficos
Durante mi juventud y parte de mi adultez, he tenido la oportunidad de probar distintos motores gráficos. Incluso he llegado a trabajar con un par de ellos en algunos proyectos, ya sean personales o pagados.
Nunca he podido decidir completamente cuál motor gráfico es el mejor, ya que al igual que todas las cosas que están relacionadas a la programación, depende mucho de cada caso saber cuál es la herramienta que mejor se adapta para resolver los problemas particulares que van apareciendo frente a nosotros.
A continuación iré nombrando algunos de los motores gráficos que conozco (y aquellos que no tanto), e ire dando una breve descripción y mi opinión de cada uno de ellos, de forma de que esta publicación pueda servir en parte como guía para aquellos que al igual que yo les cuesta decidir por dónde empezar a meterse en este mundo que es desarrollar videojuegos.
Basé la lista de motores gráficos en esta publicación de un usuario de Reddit
Los grandes de la industria:
Unity, Unreal Engine, y CryEngine son sin duda los motores más conocidos en el tema de desarrollo de video juegos. Son los que tienen mayor presencia online, ya sea por la gran cantidad de tutoriales que hay de ellos, o por la calidad de los juegos que son desarrollados utilizando estas herramientas. Visuales next-gen, renderizados de alta calidad, multiplataformas.
En el caso de trabajar en un proyecto profesional o tal vez querer aprender como es trabajar en un videojuego AAA, estos son los motores que más se adaptan a este tipo de emprendimientos, además de ser los que tienen más fácil acceso a oportunidades laborales, diría yo.
Enfocados en indies:
Godot Engine es para mí uno de los mejores motores gráficos que existen en esta categoría, posee todo lo necesario para poder desarrollar un videojuego y lanzarlo en distintas plataformas completamente gratis. Además de ser de código abierto, esto permite que se puedan hacer cambios directamente al código fuente en caso que tu proyecto lo necesite. Posee una comunidad muy agradable de desarrolladores al rededor del mundo con una mentalidad muy afín y que adoran crear.
Godot Engine es aún considerado un motor poco utilizado en la industria, si uno está buscando algo para desarrollar una carrera en videojuegos, quizás éste no sea el mejor lugar de partida. En cambio, si uno busca el aprender a hacer juegos, o tal vez quiere una herramienta para prototipar o incluso tener rápidamente un portafolio que permita enseñar tus habilidades como desarrollador, sin duda este es una gran elección.
Game Maker Studio fue uno de los primeros motores gráficos que aprendí a usar cuando pequeño (cuando aún se llamaba GameMaker 8.1, por allá en 2008). Hoy en día este motor ha cambiado bastante a como lo recuerdo. Posee muchas herramientas como un editor de sprites, un lenguaje de scripting bastante interesante (GML) y en general es muy fácil de aprender, también lo recomiendo, sobre todo si uno busca una herramienta fácil y rápida para hacer prototipos de ideas y mecánicas.
En general estos motores gráficos son un buen punto de partida para aquellos interesados en aprender a hacer videojuegos, y también presentan herramientas muy útiles para aquellos que trabajan ya de forma independiente. Tanto Godot como Game Maker son motores gráficos con los que yo he podido encontrar trabajo, a pesar de que no es tan fácil, igual existen oportunidades de trabajo utilizando estos motores también.
Enfocados en casos de uso específico:
RPG Maker, Ren'Py, PICO-8. A diferencia de los motores anteriormente nombrados, de estos se aún menos todavía, salvo que tienen comunidades muy apasionadas por cada uno de ellos y que están constantemente sacando nuevas versiones con más funciones y herramientas.
Cada uno de ellos tienen funciones muy especializadas según lo que uno esté buscando hacer, ya sea un RPG (en caso de RPG Maker) o una novela visual (en el caso de Ren'Py) o si es que quiere desarrollar un video juego retro, con las limitaciones que conllevaría hacer un juego de esa época, pero con un lenguaje más moderno (como con PICO-8). Los motores como RPG Maker o Ren'Py permiten saltarse los pasos mas técnicos al momento de querer desarrollar un video juego y así poder centrarse más en las historias que uno quiere contar principalmente.
Frameworks:
SDL, SFML, Haxe, raylib y Monogame son casos especiales, ya que estos son frameworks para hacer videojuegos y eso es un mundo de diferencias con los nombrados anteriormente. Mas que nada cabe decir que en el mundo de los frameworks existen muchas opciones, de todos los tipos y lenguajes de programación (como C, C++, C#, java, Python, javascript e incluso algunos lenguajes más modernos que desconozco completamente) y que en realidad ya escapan al alcance de esta publicación.
Estos más que motores gráficos son conjuntos de librerías de código que son utilizados para construir juegos o para incluso construir otros motores gráficos que las utilicen de base. Son más complejas que las anteriormente nombradas ya que necesitan un conocimiento de programación y saber al menos el lenguaje de programación en el que están hechos.
Sobre cómo voy a desechar todo lo dicho anteriormente y elegir Panda3D como el motor gráfico de este proyecto
Finalmente, y luego de este pequeño viaje por los distintos motores gráficos que conozco para desarrollar video juegos, voy a dar mis razones de por qué creo que Panda3D es la mejor opción para mí en estos momentos.
Python fue el primer lenguaje de programación que aprendí por allá en el 2008, cuando era un joven lleno de ilusiones estudiando informática en la Universidad Austral de Chile. Durante los años aprendí varios lenguajes de programación distintos, como java, C++, php, en menor medida C# e incluso GML y últimamente GDScript, pero Python siempre estuvo ahí en mi mente dando vueltas y volviendo una que otra vez a estar presente en mi vida.
En la actualidad y por razones y acontecimientos e mi vida he perdido la costumbre y la práctica con muchos de esos lenguajes de programación, lamentablemente nunca pude desarrollar una carrera como es debido en el área de informática y hoy me siento muy débil en esa área, por suerte Python es algo que mas o menos entiendo y siento que sería una forma poética de volver a re conectar con ese lado mio que dejé abandonado hace tiempo.
¿Y que hay de PyGame? Es cierto que existe también este motor, y muchos recomiendan que antes de meterse a programar en 3D es bueno trabajar en 2D. Pero considero que en mi caso he hecho bastantes proyectos en 2D, y ya entiendo en gran parte lo que conlleva trabajar en un juego como para poder hacer un proyecto en 3D. Yo se que puedo sonar soberbio al decir eso, y también se que no tengo como probar nada de eso, lamentablemente mi obsesión por la perfección me hizo borrar todos mis proyectos pasados en una especie de "borrón y cuenta nueva" de la que ahora estoy pagando su altísimo precio, pero ese es un tema para otro capítulo.
Por ahora me despido, habiendo timado la decisión momentánea de utilizar Panda3D como el motor gráfico con el que quiero trabajar. Siento que sera un reto interesante, y a la vez una bonita forma de reencontrarme con ese pasado tan lleno de esperanza, con un yo que se perdió por el camino y que desea llevar a cabo este proyecto, que a pesar de lo vergonzoso, llamaré Mi Juego Soñado.