control-2679227_960_720.jpg
Ciencia y Tecnología

¿Vas a programar un videojuego? Piensa en desarrollar tu propio motor.

Equipo de Expertos en Ciencia y Tecnología

Actualmente es más fácil que nunca acceder a la tecnología necesaria para desarrollar videojuegos. No hace demasiados años hacer un videojuego solo estaba a disposición de unos pocos elegidos que se atrevían a lidiar con los entresijos de la programación a bajo nivel, muy cercana al nivel de la máquina. Pero hoy se ha popularizado, en gran parte gracias a la aparición de motores gráficos que facilitan mucho la creación de sistemas interactivos. Estos motores muchas veces ofrecen licencias gratuitas o en condiciones muy favorables, y eso unido a lo sencillo que resulta introducirse en ellos ha hecho que se multiplique el número de videojuegos creados. Pese a las múltiples ventajas que ofrecen, su uso no siempre es la mejor idea. A menudo desarrollar nuestra propia tecnología es mucho más atractivo.

 

Cuando tenemos perfilado el diseño de nuestro nuevo videojuego es el momento de decidir si vamos a trabajar sobre un motor de terceros o vamos a desarrollar nuestro propio motor, y es una decisión que va a condicionar el resto del trabajo del equipo durante toda la producción. Usar un motor de terceros como Unity o Unreal hace que el arranque sea casi inmediato, podemos ponernos a producir contenido o programar las mecánicas de juego casi desde el minuto uno, en cambio si pensamos en desarrollar nuestra propia tecnología hay que pasar por un periodo más o menos largo para llegar a un punto de madurez en el que sea usable. Al acceder a uno de esos motores accedemos normalmente a sistemas maduros, optimizados, que suelen ofrecer actualizaciones frecuentes y que cubren muchas de las opciones más usadas en la mayoría de los videojuegos. Pero todo eso viene con un coste. Si bien no hay que invertir en el desarrollo del motor, hay que hacerlo en conocer y saber usar las herramientas que provee el motor, y muchas veces su complejidad en algunos aspectos puntuales no es despreciable. Por otro lado, hay que tener en cuenta que se adquiere una dependencia con el desarrollador del motor, si cambian las condiciones de uso de este, si lo retiran del mercado, si cambian la especificación de su API, entonces tenemos un grave problema que no tiene fácil solución.

Otro punto a tener en cuenta es que un motor de terceros impone una forma de trabajar, no solo un lenguaje de programación, sino también un flujo de trabajo para los artistas y sobre todo una visión del juego. Normalmente un motor está orientado hacia un tipo de juegos y si queremos desarrollar algo que no está en esa línea tendremos que luchar de manera frecuente contra el motor, puesto que él intentará imponernos una forma de hacer las cosas. En cambio, si optamos por desarrollar nuestro propio motor, como intentamos incentivar desde la asignatura de Programación Avanzada del Máster en Diseño y Desarrollo de Videojuegos, las cosas tienen otra perspectiva. No es un trabajo sencillo y consume un tiempo importante, pero a medio plazo es beneficioso. Es un área que exige especialización y trabajar muy cerca de la máquina, a cambio, como objetivo de aprendizaje no tiene precio, se tocan muchos sistemas distintos y se aprenden técnicas complejas, que pueden ayudarnos a comprender mejor otros motores y optimizarlos. Ya en el plano del desarrollo del videojuego en sí, las ventajas se ven cuando se pueden desarrollar sistemas perfectamente ajustados a nuestro diseño, se puede optimizar hasta donde llegue nuestro conocimiento y paciencia, tenemos absoluta libertad, no hay limitaciones, se diseña un flujo de trabajo propio y se puede obtener una diferenciación de todos esos juegos que ahora mismo usan esos motores genéricos. Pero sobre todo la mejor parte de desarrollar nuestro propio motor son las toneladas de diversión que vamos a encontrar por el camino.

https://youtu.be/SQSeAaMtzUU  

Iván Fuertes Torrecilla Profesor de Programación Avanzada del Máster en Diseño y Desarrollo de Videojuegos de la VIU