Centro Universitario de Tecnología y Arte Digital

Desarrollo de videojuegos con Unreal Engine
Facebook
Twitter
LinkedIn

Desarrollo de videojuegos con Unreal

Unreal Engine se ha convertido en los últimos años en la principal herramienta de desarrollo de videojuegos, tanto por su versatilidad y potencia como por su accesibilidad e inmediatez en la obtención de resultados, aunque el factor que posiblemente mayor efecto tuvo en su crecimiento fue su distribución gratuita a partir de 2014, con la publicación Unreal Engine 4, acogiéndose exclusivamente a una política de royalties. Epic Games desarrolló el juego “Unreal” en 1998 y decidió licenciar su motor para que otros estudios desarrollaran sus propios juegos con esa herramienta. 24 años después y con cientos de juegos licenciados, Epic Games acaba de publicar su última versión Unreal Engine 5. Rubén Soriano, profesor de Scripting I, II y III para Unreal en el Grado en Diseño de Productos Interactivos de U-tad, te cuenta todo lo que necesitas saber sobre el desarrollo de videojuegos con Unreal. ¡Toma nota!

 

¿Qué es un motor de desarrollo de videojuegos?

Este tipo de software consiste en un conjunto de herramientas que permiten que todos los elementos presentes en un videojuego (modelos 3D, texturas, materiales, sonidos, iluminación, etc.), generalmente desarrollados en softwares externos, se unifiquen en un único entorno virtual. Estos elementos se combinan mediante el propio editor del motor y se convierten en un producto interactivo a través de procesos de programación o scripting.

 

¿Qué tiene de especial Unreal Engine?

Mientras que las compañías más grandes suelen usar sus propios motores, como Frostbite (EA) o Snowdrop (Ubisoft), los estudios independientes (y algunos no tan independientes) suelen recurrir a motores comerciales como Unity, Game Maker, Godot, o el propio Unreal Engine.

Siendo Unity el principal competidor de Unreal Engine, cada uno tiene sus ventajas e inconvenientes. Mientras que Unity suele ser la mejor opción para juegos 2D, o 3D sencillos, mayormente para dispositivos móviles, Unreal está mucho más orientado al desarrollo de productos AAA.

Esto se debe principalmente a que Unity tiene un perfil más técnico, teniendo que programar todos los scripts y shaders complejos, mientras que Unreal ofrece un sistema de programación por nodos, tanto para scripts (blueprints) como para shaders, que permite a los desarrolladores obtener resultados estéticos casi inmediatamente. Si bien con Unreal también se pueden desarrollar videojuegos sencillos o para dispositivos móviles, el proceso suele implicar la simplificación de shaders, métodos de renderizado, etc. (que por defecto están orientados a formatos AAA), mientras que en Unity ese framework se construye desde cero.

 

Blueprints

Los blueprints son una de las principales ventajas de Unreal Engine y consisten en un conjunto de nodos con funcionalidades preprogramadas que, uniéndolos como si de un diagrama de flujo se tratara, permiten programar cualquier tipo de comportamiento que se desee.

Estos nodos son bloques de código creados en C++, lo que significa que cualquier programador puede acceder a ese código, modificarlo o crear sus propios nodos si fuera necesario.

La principal ventaja que ofrecen los blueprints es que no es necesario conocer ningún lenguaje de programación para crear un juego aunque, lógicamente, es necesario comprender los conceptos básicos de programación (eventos, acciones, variables, funciones…). Una pregunta típica respecto a este punto es si se puede crear un juego solo usando blueprints. La respuesta es sencilla: sí.

 

Blueprint de Unreal

 

¿Entonces ya no es necesario programar en C++?

No exactamente. Aunque se puede crear un juego solo con bluepritns, es posible que en momentos puntuales se requiera programar alguna funcionalidad específica. Sin embargo, esta situación no tiene por qué darse en el desarrollo de un juego convencional.

 

Otras ventajas:

Unreal ofrece una serie de plantillas o tipos de juego prediseñados con las principales características de esos juegos ya implementadas. El ejemplo más claro puede ser la plantilla de juego en tercera persona, donde disponemos de un personaje funcional con los controles ya implementados y acciones típicas como el salto, agacharse, nadar o incluso volar ya incluidas.

Otro elemento muy interesante que ofrece Unreal Engine es el editor de materiales, basado también en un sistema de nodos, que permite obtener resultados muy interesantes de una forma muy intuitiva y rápida. Además, este sistema permite la creación de instancias con valores parametrizados que optimizan el cálculo de shaders y permiten la edición de los parámetros en tiempo real dentro de la propia escena.

 

Plantillas de Unreal

 

Recursos y Marketplace:

Tanto Unity como Unreal disponen de sus propios portales de distribución de recursos para desarrolladores (creados por otros desarrolladores). Estos portales: Unity Asset Store y Unreal Marketplace ofrecen desde módulos preprogramados con funcionalidades de todo tipo a modelos 3D de personajes, entornos y props o paquetes de audio.

Estos portales ofrecen tanto un ahorro importante de tiempo (y por lo tanto dinero) en el desarrollo de videojuegos, como una fuente de ingresos muy interesante a otros desarrolladores. De hecho nuestra empresa Digital Dive distribuye desde 2018 un conjunto de herramientas y modelos 3D basados en vehículos interactivos con previsión de crecimiento e incorporación de nuevos proyectos.

Además del Marketplace, a través de un acuerdo reciente, Unreal se beneficia de una enorme cantidad de recursos gratuitos a través de Quixel Megascans. Otra herramienta interesantísima de Unreal Engine es el recientemente publicado Metahumans, que es en esencia un editor de personajes híperrealistas.

 

Imagen Hiperrealista

 

¿Qué está por venir?

Por si lo anterior fuera poco, este mismo año Epic Games ha publicado Unreal Engine 5 con algunas características muy potentes para las nuevas generaciones de PCs y videoconsolas de las que cabe destacar Nanite y Lumen.

Nanite: es un sistema de geometría de micropolígono virtualizado que, traducido, es un sistema que procesa de manera inteligente solo los detalles del entorno que se puedan percibir. De este modo optimiza una gran cantidad de recursos de renderizado y agiliza en gran medida los procesos de desarrollo, ya que los modeladores 3D ya no tienen que preocuparse por la cantidad de geometría de sus modelos ni de crear versiones a distintas resoluciones (LODs).

Lumen: es una nueva solución de reflexión e iluminación global totalmente dinámica que reacciona inmediatamente a los cambios de escena y de luz, lo que significa que por fin se puede conseguir el nivel de detalle que ofrece la iluminación estática (y que requiere procesos específicos) con iluminación dinámica (que no requiere procesos añadidos pero es más costosa en términos de rendimiento y hasta ahora ofrecía una calidad menor).

¡Además, los proyectos creados con Unreal Engine 4 son compatibles con Unreal Engine 5!

 

Yo también quiero desarrollar con Unreal.
Facebook
Twitter
LinkedIn