Saltar al contenido
Another Indie Studio

Optimizar usando subniveles

niveles unreal engine

Hoy en día la división en subniveles es un factor a tener en cuenta a la hora de desarrollar nuestro videojuego.

Muchos, si no todos, son los videojuegos que usan esta técnica para ahorrar recursos y conseguir un mayor rendimiento. Algunos ejemplos de esto puede ser el famoso Fortnite.

La propia Epic Games, desarrolladora de Fortnite Salvar el Mundo y Fortnite: Battle Royale, ha confirmado que usan esta técnica para lograr un aumento de fps.

En este artículo veremos cómo implementar un sistema de subniveles para nuestros videojuegos con Unreal Engine 4 (UE4).

Para qué sirve un subnivel

Los subniveles se hacen con el fin de cargarlos y descargarlos en cualquier momento. Todos los objetos que estén dentro de este serán spawneados, o eliminados. Dependiendo de la situación.

Con esto conseguimos eliminar objetos «innecesarios» de la escena. Así, como volverlos a cargar cuando convenga.

 

Seleccionando los objetos

El primer paso será seleccionar, ya sea desde el World Outliner, o desde la Ventana Gráfica, los objetos que queramos añadir al subnivel. Es decir, los objetos que estarán dentro del subnivel.

Debo aclarar que sólo deberemos añadir objetos. Nada de luces o triggers.

level unreal engine

Cargando la ventana «Niveles»

Tras esto, deberemos irnos a la parte superior de Unreal Engine (Ventana -> Niveles).

como crear niveles unreal engine

Creando el subnivel

Una vez tenemos los objetos seleccionados, deberemos pulsar en (Niveles -> Create New with Selected Actors). Al clicar nos pedirá una ruta y un nombre.

Comprobación del subnivel

Para comprobar que nuestro subnivel está correctamente creado, pulsamos en el «ojo» que se encuentra a la izquierda de nuestro subnivel. Al clicar, lo cargaremos o descargaremos en tiempo real.

desmarcar nivel

Cargando y descargando con Blueprints

Una vez existe el subnivel, lo que deberemos hacer es configurar cuándo debe cargarse o descargarse. Para ello, y a modo de ejemplo, he decidido usar un cubo que actúa como Trigger. Realmente la condición de carga/descarga la ponéis vosotros. Puede ser cuando abandone o entre en un lugar, cuando interactúe con algún objeto, o cuando pulsemos algún botón, entre otras.

Para cargar el subnivel usamos la función «cargar el nivel de transmisión de flujo», y para descargarlo, «descargar nivel de transmisión de flujo». En ambos casos, nos va a pedir el nombre del subnivel a cargar o descargar. Deberemos escribir el nombre que pusimos al nivel.

codigo subniveles

Por último, recomendar el siguiente vídeo, donde lo explico de una manera más gráfica. Al igual que enseño en qué situaciones hago uso de subniveles.