Las 7 cosas que debes saber de UE4

UE4 es un motor con infinidad de característica y bastante complejo. Es fácil perderse dentro de algunos de su subsistemas. En este post las 7 cosas que debes saber para no perderse.

  1. UE4 es un motor basado en componentes.
  2. UE4 viene con un GameFramework que se ejecuta, quieras o no, en todos tus juegos.
  3. En UE4 las colisiones y la física van de la mano.
  4. Los materiales en UE4 son PBR.
  5. En UE4 se usan multitud de técnicas para la iluminación y para las sombras. Saber para que sirven y cuando usar cada una es importante.
  6. El rendering es un proceso que puede optimizarse en distintas fases usando distintas técnicas.
  7. El mejor modo de aprender es haciendo un juego completo desde cero.

Empezamos por la primera:

UE4 es un motor basado en componentes

Toda esa infinidad de características que nos ofrece UE4: renderizar modelos, reproducir animaciones, luces, sonidos, efectos de partículas, simulación física, etc., estan encapsuladas individualmente en componentes.

De este modo, dispones de todo un catálogo de componentes a elegir. Y, como el mecánico que selecciona las piezas para montar el coche, deberás seleccionar los componentes que necesites para montar tu juego.

Aquí un post completo acerca de los componentes.

GameFramework

Encima de la capa de componentes existe un GameFramework que se encarga de dirigir el flujo de ejecución del juego.

El GameFramework intenta responder a cuestiones como:

  • ¿Cuáles son las condiciones de victoria?
  • ¿Cuáles son las reglas de juego?
  • ¿Cuando cambiamos de mapa? ¿Y a que mapa iremos?
  • ¿De todos los objetos colocados en el escenario, cuales son los personajes?
  • ¿Qué personajes están controlados por el jugador y cuáles por la IA?
  • ¿Qué cámara es la principal?
  • ¿Si entra un nuevo jugador en la partida dónde lo colocamos?
  • ¿Que atributos (como salud, estamina, etc.,) serán replicados a lo largo de la red en un juego multiplayer?
  • ¡Y muchas otras!

En otros motores, como Unity, no existe un GameFramework propiamente dicho. Será el programador quién, implícita o explícitamente, programe uno. Pero en Unreal existe y debemos llevarnos bien con él. Si no, me temo que tendremos muchos quebraderos de cabeza.

Hacer que el GameFramework trabaja para nosotros es clave para hacer un proyecto en Unreal y nos ahorrará muchísimo código.

Aquí un post completo completo acerca del GameFramework.

Colisiones y física

¿Recuerdas el punto 1, que UE4 es un motor basado en componentes? Pues las colisiones y físicas son responsabilidad del componente PrimitiveComponent.

Sin embargo, no veremos el componente PrimitiveComponent por si solo. El componente PrimitiveComponent es el padre de muchísimos componentes y todos estos componentes hijos "heredan" la funcionalidad del padre: colisiones y física.

Aquí algunos ejemplos de componentes hijos de PrimitiveComponent:

  • StaticMeshComponent – para renderizar modelos estáticos
  • SkeletalMeshComponent – para renderizar modelos con huesos
  • SplineMeshComponent – para splines
  • LandscapeComponent – para terrenos
  • ¡y muchos otros!

Y por tanto, todos estos componentes hijos heredan la funcionalidad del padre: colisiones y físicas.

Pero esto es solo la punta del iceberg: tenemos colisiones de distintos sabores: simple y compleja, tenemos canales de colisión para hacer tracing, podemos hacer tracing con distintas figuras geométricas (y no solo líneas), ¿qué ocurre cuando dos objetos en movimiento colisionen?.

Todo ello está recogido en este post sobre las colisiones.

PBR

Si has tocado un poco Unreal te habrás encontrado con conceptos como Lightmass, luces estacionarias y problamente una docena de tipos de sombras distintas.

Cada una de las técnicas de iluminación y sombreada sirven para un propósito. Cuál escoger depende de cada situación y del efecto que querramos conseguir.

Aquí toda la información sobre las luces. También un post sobre las sombras. Y sobre PBR.

¿Cómo UE4 renderiza un frame?

El rendering está dividido en una serie de fases y tenemos la oportunidad de optimizar cada fase con distintas técnicas.

En este post exploramos como UE4 renderiza un frame y los conceptos más importantes.

¡Haz un juego completo!

Y finalmente la mejor forma de aprender a UE4 es ¡haciendo un juego!

Aquí un curso completo de UE4 para programadores.

Jorge Moreno Aguilera

Jorge Moreno Aguilera