Herramientas para desarrollar videojuegos
El motor o engine de un juego es un programa y conjunto de herramientas que facilitan gran parte de las tareas complejas que se presentan durante la creación de un juego. Para explicar mejor el asunto haré la distinción entre motor gráfico y motor de juego, aunque normalmente en la mayoría de herramientas disponibles en el mercado encontraremos ambos tipos de motores funcionando conjuntamente.
¿Qué es un motor gráfico?
Una de las funciones básicas más importantes de cualquier juego es la de mostrar las imágenes en la pantalla, ya se trate de gráficos 2D o 3D, y la de mover todos los elementos visuales (avatar del jugador, enemigos, efectos, etc…), consiguiendo que respondan correctamente a los controles o inputs del jugador. El renderizado de los gráficos en tiempo real, ya sean modelos 3D o sprites, va a requerir una serie de rutinas o subprogramas que serán la base necesaria para pintar dichos los gráficos en la pantalla, asegurándose, entre otras cosas, de que lo gráficos se pintan en el orden correcto, de que están correctamente iluminados o de que se animan apropiadamente. Estas rutinas conforman el conjunto de lo que llamamos motor gráfico, y una vez desarrolladas pueden ser utilizadas en distintos tipos de juego. Por lo tanto, un estudio de desarrollo puede tener un juego 3D first person shooter (FPS) o un juego de plataformas 2D que funcionen sobre la misma base de motor gráfico que han desarrollado.
¿Qué es un motor de juego?
Un motor o engine de juego se encargará de asuntos como la gestión de las colisiones y las físicas del juego, la correcta representación de menús e interfaz, la reproducción de sonidos, o el manejo de la inteligencia artificial (I.A) de los enemigos, entre otras muchas otras cosas. Todas estas herramientas, junto con las rutinas para los gráficos (el motor gráfico) que comentábamos antes, conformaran lo que conocemos por un motor de juego.
Un equipo de desarrollo puede optar por crear su propio engine o usar uno ya existente. Para decidirse por una u otra opción habrá que tener en cuenta bastantes factores, pero los más determinantes son el tiempo y los costes de desarrollo que requieren un motor propio. Normalmente solo grandes compañías desarrollan sus propios engines de juego, y unas pocas empresas se dedican a ofrecer y mantener este tipo de herramientas para que equipos de desarrollo con menos medios también puedan desarrollar de una manera más eficiente, aunque quizás menos flexible y con el peligro de ser condicionados por ellos.
¿Y los contenidos?
El arte (los gráficos) que vemos en los juegos, como, por ejemplo, los modelos 3D de los personajes, las animaciones, los escenarios, las texturas, los sprites o la música, se crean utilizando herramientas diferentes a los motores de juego y/o motores gráficos, los cuales suelen tener funciones bastante limitadas a la hora de crear contenido. A este proceso de crear los assets de arte en una aplicación externa y llevarlo al motor de juego se suele denominar como “integración”. Una vez que tenemos el contenido integrado en el motor podemos usarlo y combinarlo con otros assets para crear escenarios, mecánicas de gameplay o secuencia de animaciones. Algunos de los programas que se usan para crear los assets de arte son 3DS Max, Maya, Zbrush, Substance Painter, Photoshop y Blender.
A continuación, repasamos algunos motores de juegos que podemos encontrar hoy día en el mercado, de fácil acceso y que se usan frecuentemente en el desarrollo de juegos actuales.
Unreal Engine 4
Desarrollado por Epic Games, Unreal Engine es un potente motor gráfico y motor de juego que permite el desarrollo de juegos de todo tipo y para prácticamente cualquier plataforma (PC, VR, consolas, smartphones…). Creado inicialmente en 1998 para soportar el juego Unreal, ha evolucionado para ser la herramienta ideal para crear todo tipo de juegos. Algunos de los juegos desarrollados sobre este motor son Gears of War, Bioshock, Street Fighter V, Dishonored, Life is Strange, Sea of Thieves o el popular Fortnite.
Su modelo de negocio está basado en royalties, debiendo pagar cada trimestre el 5% de los beneficios brutos obtenidos por encima de los 3000$ USD. Estos primeros 3000 dolares de cada trimestre estas exentos del pago de royalties. La facilidad de uso y el hecho de que no es necesario pagar ningún tipo de licencia durante el desarrollo de un producto lo hacen un motor ideal tanto para estudios independientes como para estudios más grandes y consolidados.
Cuentas además con el Marketplace, una store donde los desarrolladores pueden adquirir contenidos, lo que resulta muy útil para montar prototipos rápidamente o para completar diversos aspectos de tu juego (gráficos, fx, sonidos, blueprints, etc…). Actualmente se encuentra en la versión 4.24. Para descargarlo deberéis crearos una cuenta de usuario de Epic Games e instalaros el Laucher de Epic.
Unity
Unity es el principal competidor de Unreal Engine y es igualmente flexible y potente, permitiendo desarrollar para un gran número de plataformas. Con un enfoque destinado a cubrir las necesidades de los desarrolladores independientes, Unity es un motor muy popular en la industria. Juegos desarrollados sobre este motor: Heartstone, Ori and the Blind Forest, Cuphead, Firewatch, Inside o Monument Valley.
La licencia Unity Personal es gratis y te permite usar la versión completa casi sin limitaciones, perfecto para trastear y aprender a usarlo o para publicar pequeños juegos, siempre y cuando tus ingresos brutos anuales no superen los 100.000$ USD. Y, a diferencia de Unreal, con Unity estas libre de tener que pagar royalties. Para ingresos superiores a 100K$ USD o para desbloquear ciertas características (personalizar pantalla de inicio, 20> usuarios en multijugador, u obtener analíticas de juego, por ejemplo) deberás adquirir una licencia Plus, que tiene un coste de 40$ USD cada mes y es válida para ingresos brutos superiores a 200K$. Si ingresas cantidades mayores tendrás que pasarte a una licencia Pro, que cuesta 150$ USD al mes.
Unity también tiene una store de contenidos, la Unity Asset Store, con herramientas y props de todo tipo. Actualmente se encuentra en la versión 2019.3. y basta con que os creéis una cuenta de usuario para poder descargaros el instalador.
CryEngine
Motor de juego desarrollado por la compañía alemana Crytek, usado por primera vez en el juego Farcry. Como Unreal o Unity, estamos frente a una suite de desarrollo completa enfocado a juegos principalmente 3D. Juegos desarrollados sobre este motor: Crysis 3, Ryse, The Climb, Robinson: The Journey, Kingdom Come: Deliverance, o el reboot de Prey de 2017.
Su modelo de negocio es muy similar al de Unreal, aunque con ligeros cambios: 5% de los beneficios brutos obtenidos, estando libres de royalties los primeros 5000$ anuales. Cómo no, también tiene Marketplace, aunque al ser un engine de uso no tan extendido los contenidos disponibles son un poco escasos. Actualmente se encuentra en la versión 5.6. y requiere, como los anteriores, la creación de una cuenta de usuario.
Amazon Lumberyard
Se trata de una versión modificada de CryEngine que Amazon ofrece de forma totalmente gratuita, con Twitch y servicios AWS integrados de serie. Proyectos como Star Citizen o New World usan este motor. Si tienes una cuenta de Amazon puedes descargarte la versión Lumberyard Beta 1.22 desde la página del proyecto.
Godot
Motor de juego multiplataforma, completamente gratuito y open-source, por lo que podemos usarlo de manera totalmente gratuita y libre de royalties. Desarrollado por la comunidad, bajo el liderazgo de experimentado desarrollador Juan Linietsky, está orientado a la creación de juegos tanto 2D como 3D, defendiéndose bien en ambas áreas, ya que cuenta con un motor 2D independiente.
Puedes apoyar el desarrollado de Godot en su página de Patreon.
GameMaker
Suite de desarrollo muy asequible orientada a juegos exclusivamente 2D y con la facilidad de portar a varias plataformas, de la que se han aprovechado juegos como The Red Strings Club, Hotline Miami, Hyper Light Drifter, Maldita Castilla, Death’s Gambit o Spelunky.
La versión FREE TRIAL te permite probar aprender a usar el software antes de comprar una licencia. La licencia del paquete básico (CREATOR) cuesta 39$ USD, tiene una duración de 12 meses, y permite publicar juegos en Windows o Mac. También puedes adquirir una licencia DEVELOPER, de duración indefinida y con posibilidad de portar tus juegos a Windows, Mac y Ubuntu. Para cada plataforma adicional a la que quieras portar tu juego (por ejemplo, dispositivos moviles o consolas) debes adquirir upgrades, que van desde 199$ USD hasta 799$ USD, con lo que es conveniente trazar la estrategia de comercialización que se va a seguir antes de liarse a comprar licencias sin ton ni son.
La última versión disponible es GameMaker Studio 2 y requiere que te crees una cuenta de usuario para acceder al dashboard de la web y a las descargas.
Ogre3D
Al contrario que los motores que hemos visto hasta ahora, Ogre3D no es un motor de juego, sino que es exclusivamente un motor gráfico, tal y como ya anuncia su acrónimo en inglés (Object Oriented Graphic Rendering Engine).
Podemos decir que su uso está orientado a los programadores del equipo de desarrollo, ya que habrá que integrarlo con nuestro motor de juego. A cambio tendremos la ventaja de tener una solución dedicada para los gráficos y permitir al equipo de programación enfocarse en otras funcionalidades del motor, como por ejemplo el motor de físicas, de Inteligencia Artificial (IA), el sonido, etc… por lo que el uso de este tipo de engines, si tenemos el equipo con el conocimiento necesario, puede llegar a ser una solución muy flexible a la hora de personalizar las herramientas de trabajo sin tener que empezar un motor propio completamente desde cero.
Al funcionar bajo una licencia Open Source podemos usarlo de manera totalmente gratuita y libre de royalties. No obstante, en el caso de querer publicar un juego con este engine, el tipo de licencia que usa nos obliga a distribuir y proporcionar las modificaciones que hayamos hecho en el código original del motor.
La última versión del engine gráfico es la 1.12 aunque también veréis que tienen disponible una branch 2.2 con contenido un poco más experimental y menos compatible con versiones anteriores.
Armory
Armory es un interesante motor 3D de juegos Open Source que se integra con Blender, un software de modelado y animación 3D (también Open Source), consiguiendo así ofrecer una herramienta completa de desarrollo de juegos donde no dependes de herramientas externas para crear los contenidos.
Motores propietarios
Otros motores de juego son propietarios, es decir, privados, y han sido desarrollados para el uso interno y desarrollo de juegos de una compañía en concreto. Por lo tanto, el público general no tiene acceso a ellos. Aun así, resulta interesante conocerlos un poco y seguir de cerca que avances y mejoras, herramientas y novedades gráficas implementan.
- Decima: Horizon Zero Dawn, Death Stranding, Until Dawn, Killzone Shadow Fall.
- Source Engine 2: Dota 2, Titanfall 2, Left 4 Dead 2, Portal 2.
- UbiArt Framework: Rayman, Valiant Hearts, Child of Light.
- AnvilNext: Assassin’s Creed Origins, Tom Clancy’s Ghost Recon Wildlands, For Honor, Assassin’s Creed Syndicate, Assassin’s Creed Unity.
- Id Tech 5: Doom 4, Rage, Dishonored 2, Wolfenstein: The Old Blood, Wolfenstein: The New Order.
- FOX Engine: Metal Gear Solid V, Pro Evolution Soccer 2017.
- Frostbite: Battlefield 1, Need for Speed Payback, Starwars Battleftront II, FIFA18.
Con todo lo comentado, acabamos este breve pero intenso reportaje sobre motores gráficos y de juego. Si te interesa saber más sobre los procesos de creación de la parte visual de un videojuego, te recomiendo encarecidamente que te des una vuelta por los foros especializados de internet (donde a buen seguro encontrarás mucha información al respecto), así como echarle un pequeño vistazo al eBook “Fundamentos de Arte para Videojuegos”, el cual incliye 355 páginas sobre los procesos de creación y producción de los gráficos 3D, que abarcan desde el diseño de gameplay hasta el desarrollo de gráficos para videojuegos, teniendo en cuenta los Fundamentos básicos de Arte.
Puedes hacerte con él en este enlace.