Mi historia con los Game Engines o cómo aprendí a dejar de preocuparme y amar a Unity
Mi “lucha” con los motores para juegos comienza sobre 1998 con DIV Game Studio, aunque anteriormente había probado con algunas librerías 2D y 3D para Turbo Pascal 7 con el grupo con el que solía programar por aquella época: Elerium Core (aunque en realidad eramos demosceners y hacíamos sobre todo demos). En su momento, la herramienta de Hammer Technologies era todo lo que alguien que quisiera entrar en el mundo de los videojuegos podría haber deseado: simple, robusta y con una buena curva de aprendizaje. Poco después llegó DIV2 con su editor de sprites y algunas novedades que lo hacían un motor bastante majete para hacer juegos “entre amigos”. De hecho, todavía debo de tener por ahí media docena de juegos hechos ex profeso por y para amigos sobre dicho motor.
No obstante, era la época de la explosión de las 3D y motores como DarkBasic, Blitz3D o, mi favorito en aquellos momentos, 3D GameStudio. Probé prácticamente todo a lo que pude echar mano y ninguno me convenció. Y entonces llegó Flash con su flamante ActionScript y fue posible hacer juegos 2D para la web con relativa facilidad. Así que dejé de interesarme por los motores aunque, de vez en cuando, trasteaba con librerías para C++ para no perder el feeling de “programar de verdad”.
Y llegamos al 2009: un viejo amigo que había trabajado dentro de los grandes de la industria me recomendó echarle un ojo a UDK y volví a sentir el gusanillo de encontrar un motor que se adecuara a lo que aspiraba a hacer. De modo que volví a mirar todas las opciones disponibles y trasteé un poco con UDK y con OGRE aunque el IDE de Microsoft XNA Game Studio se llevó toda mi atención durante bastante tiempo (además permitía, gracias a unas claves de un concurso, desarrollar y testear en la XBOX 360).
Finalmente, Flash volvió a seducirme y no fue hasta 2014, con el nacimiento de Cannibal Squirrel, que no volví a interesarme por los motores disponibles y descubrí los tres grandes contendientes por mi interés desde entonces: Unreal Engine, Construct2 y Unity.
Siendo sincero Unreal Engine siempre fue mi favorito ya que, a pesar de tener un coste de suscripción, supo venderme muy bien sus cualidades y flujo de trabajo… además de que Unity en aquella época (quitando la versión gratuita que venía muy limitada) costaba cientos de euros y tenía licencias específicas por plataforma. Con Construct2, por otro lado, encontré una oferta interesante y compré la licencia comercial bastante barata.
Unreal Engine 4 me permitió hacer algunos prototipos y me demostró su versatilidad más allá de toda duda. Era potente, era robusto y el sistema de Blueprints (una suerte de programación visual) resultaba prometedor; sin embargo, era muy exigente en recursos de hardware, de desarrollo y de arte.
Construc2, por otro lado, era su antítesis: simple, orientado al desarrollo rápido y al prototipado, y dirigido a la creación de minijuegos de navegador. En cuestión de una o dos horas podías tener un juego completo funcionando (a falta, obviamente, de todo el trabajo de arte).
Unity 4, bueno… supongo que la culpa debió de ser de que vi tutoriales poco agradecidos, leí los libros incorrectos y que la versión gratuita carecía de sombras y efectos de calidad. Pero me pareció feo, incómodo y con una metodología de trabajo espantosa. Tampoco lo arreglaron algunos cursos online que hice que, más que enseñar el uso adecuado del motor, consiguieron que le cogiera manía.
Sin embargo, años después gracias a una charla informal con mi viejo amigo en la que me comentó que ellos usaban Unity y que “la pantalla de inicio de Unity de la edición gratuita ahora resultaba menos denigrante” decidí darle una nueva oportunidad. Además yo empezaba a tener un cierto interés en aprender C#, así que decidí comprar un curso en Udemy ( Learn to Code by Making Games – Complete C# Unity Developer ) que tenía muy buenas críticas y me dejó francamente sorprendido. De hecho, en la presentación del curso decían algo como “casi todos los cursos enseñan a la gente a usar Unity antes de programar y luego la gente no tiene ganas de programar, aquí lo haremos al revés” y vaya si cumplieron su propuesta. Aproximarme de esta forma a Unity 2017 me resultó muy positiva y en cuestión de días todos los prejuicios que había mantenido sobre Unity a lo largo de los años se esfumaron cuando entendí el flujo de trabajo correcto y ahora puedo decir que si tengo que decantarme por un motor para indies, siempre que no sea para minijuegos de navegador, Unity es casi sin duda la mejor opción disponible en la actualidad.