Por qué (y cómo) deberías dejar Unity y Unreal para crear tu propio motor

Con frecuencia, te encuentras con la pantalla de inicio de Unreal Engine o 'Hecho con Unity' al iniciar un juego, dos de los motores de juego más comunes hoy en día. Estos son motores robustos y maduros, pero no siempre son las mejores opciones para desarrolladores independientes, según el desarrollador de larga data Rez Graham. En una charla de GDC 2024 titulada 'Un argumento para crear tu propio motor de juego', abogó por construir juegos con tu propia tecnología a través de frameworks y bibliotecas: herramientas existentes que ofrecen algunas ventajas importantes, y admite algunas desventajas de las que los desarrolladores deben ser conscientes.

Graham ha estado haciendo juegos de forma independiente bajo el nombre de BleachKitty después de su trabajo en Electronic Arts en la serie de Los Sims. Desde su perspectiva y experiencia, los motores de juego más populares no siempre son la mejor opción para el desarrollo, y realmente depende de tus objetivos y del tipo de juego que quieras crear. Esto tiene sentido en teoría, pero él enumeró varios factores que deben considerarse al decidir si construir tu propia tecnología o trabajar con motores existentes.'

Las tarifas de licencia para usar un motor de terceros de forma perpetua sumarán, y Graham afirmó: 'Generalmente es rentable a largo plazo. Mi sospecha es que nadie en esta sala está haciendo un juego y piensa: 'Bueno, genial. Eso está hecho, voy a ser granjero por un tiempo''. La implicación es que también utilizarás tu propia tecnología para proyectos futuros, y no es solo una inversión única. Tener control total de un motor y cómo lo utilizas es importante para Graham, y agregó: 'Es rentable a largo plazo porque estás invirtiendo en tu propia empresa, en tu propia tecnología, en tu propio mundo. Construyes lo que quieres y nada más. Por lo tanto, eso es extremadamente importante, eso es extremadamente poderoso."

Pensamiento fundacional

La idea es que tendrás una base que sea particularmente excelente para crear el tipo de cosas que deseas crear, según Graham: 'Puedes decir [por ejemplo], el tipo de juego que estoy haciendo es este juego de estilo roguelike. Así que voy a usar este framework y luego voy a construir encima de eso con los sistemas exactos que necesito que me habiliten para hacer juegos roguelike de manera bastante sencilla.' Sin embargo, el proceso de construcción del motor y el desarrollo deberían superponerse, lo cual sugiere: 'No estoy diciendo, comencemos por pasar dos años construyendo un motor. En cambio, construyes tu propia tecnología. Haces tu juego y extraes cosas según sea necesario.'

En términos de utilizar frameworks interconectados, Graham dio un ejemplo de lo que significa en la práctica: utilizar SDL para sistemas operativos, renderizado, sonido e entrada, ya que es conocido (SFML también funciona bien), luego Box2D para física, Tiled para edición de niveles, Tinyxml para carga de XML, y Sol/Lua. Reiteró que también hay un montón de bibliotecas gratuitas y de código abierto para utilizar. Y con todos estos frameworks trabajando en armonía, puedes crear algo que funcione específicamente para ti, donde tengas un control total y una comprensión más profunda de un motor de juego ligero.

Una de las desventajas que mencionó fue que el uso de este tipo de frameworks a menudo requiere conocimientos de C++, diciendo: 'Aunque es posible que no necesites que alguien escriba C++, probablemente requiere conocimientos o comprensión a nivel de bajo nivel.' Pero esto facilita el proceso de solución de problemas con estas herramientas que te permiten identificar el problema y solucionarlo en lugar de tener que buscar entre la posible avalancha de mensajes de error de un motor de Unreal o Unity.

un gráfico que muestra varias soluciones de motores en un eje

Mientras que no tendrás que preocuparte por las tarifas de licencia con tu propia tecnología, Graham reconoce que hay un costo inicial más alto, ya que, por supuesto, construir tu propia tecnología lleva tiempo. En una pregunta de seguimiento, también reconoce que optar por algo como Unreal o Unity es la mejor opción para juegos más grandes, y señaló a Cyberpunk 2077 como ejemplo. Dado que ese juego fue construido en el REDengine de CD Projekt Red, 'Los diseñadores estaban trabajando en un objetivo móvil. El motor se estaba construyendo continuamente mientras los diseñadores intentaban crear el contenido para él, por lo que no les fue muy bien'.

Otro factor al que Graham señaló fue el 'conocimiento automático' al comenzar a involucrar a otras personas en tu proyecto. Básicamente, renuncias al conocimiento institucional que otros desarrolladores pueden tener de motores de juego más prominentes, lo que significa que necesitas tu propia documentación y generalmente necesitas personas que conozcan C++ al menos a nivel básico al usar los marcos mencionados anteriormente.

Por ubicuos que puedan ser Unreal y Unity, señaló varios juegos independientes conocidos que se construyeron con su propia tecnología, que incluyeron juegos como Stardew Valley, Bastion, Darkest Dungeon, Shovel Knight, Into the Breach, y muchos más. Graham reiteró que construir tu propia tecnología todavía depende del tipo de juego que desees crear.

El último punto que mencionó Graham fue que los juegos independientes pueden empujar los límites y ser experimentales, particularmente en innovación técnica, diciendo 'Epic está haciendo su propia innovación técnica, Unity está haciendo su propia innovación técnica, pero también tienen que ser todo para todos. No pueden alejarse demasiado del camino trillado.'

Concluyó, 'Hay algunos juegos independientes realmente interesantes ahora que hacen algunas innovaciones técnicas interesantes... Cuando construyes tu propia tecnología, puedes hacer cosas realmente locas, y eso es lo que nos falta'.

El desarrollador de juegos y Game Developers Conference son organizaciones hermanas bajo Informa Tech.