Stack O Bot es un proyecto de juego de muestra creado como recurso de aprendizaje para explorar el desarrollo de videojuegos con Unreal Engine. Muestra varias funciones del motor, como la generación procedimental de contenido, los blueprints y las instancias de nivel. El proyecto de muestra incluye comentarios de los desarrolladores en el juego que analizan las opciones de diseño y la implementación, así como blueprints y materiales comentados.
En Stack O Bot, el jugador controla un personaje robótico desde una perspectiva en tercera persona y debe completar una serie de desafíos de plataformas y acertijos basados en física. Es compatible con una amplia gama de dispositivos, desde teléfonos móviles hasta PC de gama alta, y puede controlarse con teclado, ratón, controlador y entradas de pantalla táctil.
Esta página explica cómo abrir el proyecto de muestra de Stack O Bot, proporciona una introducción a las principales funciones del proyecto y contiene enlaces a documentación relacionada para obtener más información.
Abrir el proyecto Stack O Bot
La muestra de Stack O Bot que se describe en esta página se ha creado con Unreal Engine 5.6. Si quieres probar la muestra anterior de Stack O Bot, descarga el proyecto para versiones del motor anteriores a la 5.6.
Para abrir el proyecto de muestra de Stack O Bot, sigue estos pasos:
En Fab, ve a la muestra de Stack O Bot y haz clic en Añadir a mi biblioteca.
También puedes buscar el proyecto de muestra en el complemento Fab para Unreal Engine.
Ve a Stack O Bot y haz clic en Crear proyecto.
En el iniciador de Epic Games, ve a Unreal Engine > Biblioteca > Biblioteca de Fab.
Introduce un nombre y una ubicación para tu proyecto.
Selecciona la versión 5.6 del motor.
Haz clic en Crear. Se abrirá el proyecto.
Para obtener más información sobre cómo acceder al contenido de muestra y al complemento Fab para Unreal Engine, consulta la sección Muestras y tutoriales.
Especificaciones del sistema recomendadas
Stack O Bot está diseñado para ser compatible con una amplia gama de dispositivos, incluidos teléfonos móviles y PC. El contenido escala a través de niveles de detalle y es totalmente compatible con dispositivos móviles.
Se recomiendan las siguientes especificaciones del sistema para un PC:
Windows 10 de 64 bits, versión 1909, revisión .1350 o superior, o versiones 2004 y 20H2, revisión .789 o superior
Windows 11 es compatible con Unreal Engine 5 y cumple los requisitos recomendados.
AMD o Intel Quad-core de 2,5 GHz o superior
32 GB de RAM del sistema
8 GB de memoria de vídeo
Tarjeta gráfica compatible con DirectX 11 o 12
Cómo navegar por el proyecto Stack O Bot
Una vez abierto el proyecto de Stack O Bot, se abrirá por defecto el mapa Lvl_Empty en el editor de niveles. El mapa proporciona información en pantalla para usar este proyecto de muestra.
La mayor parte del contenido del proyecto de muestra se encuentra en la carpeta /Content/StackOBot/. El mapa principal del juego, Lvl_StackOBot, se encuentra en la carpeta /Content/StackOBot/Maps.
Para jugar, haz clic en el icono Jugar de la barra de herramientas principal.
El juego comienza con un menú principal, que se encuentra en el mapa Lvl_MainMenu. Haz clic en JUGAR para ir al mapa principal del juego, Lvl_StackOBot.
El mapa principal del juego incluye iconos de burbujas que activan comentarios de los desarrolladores cuando el jugador se acerca. Este comentario explica algunos de los detalles de implementación y las decisiones de diseño que tomaron los desarrolladores al crear Stack O Bot.
El contenido de los comentarios de los desarrolladores se encuentra en la carpeta /Content/DevCom.
Controles en el juego de Stack O Bot
Para jugar a Stack O Bot, el jugador puede usar el teclado, el ratón, un controlador o los controles de la pantalla táctil.
| Acción | Teclado y ratón | Controlador | Tocar (consulta la imagen debajo) |
|---|---|---|---|
Mover | W, A, S, D | Stick izquierdo | 1 |
Mirar | Ratón | Stick derecho | 2 |
Jump | Barra espaciadora (pulsa) | Botón de la cara inferior (pulsa) | 3 (pulsa) |
El propulsor | Barra espaciadora (mantén pulsado) | Botón de la cara inferior (mantén pulsado) | 3 (mantén pulsado) |
Agarrar | E | Trigger derecho | 4 |
Pausar | Escape o Mayús izquierda | Botón Iniciar | 5 |
Funciones de Stack O Bot
En esta sección se describen las funciones usadas en el proyecto de muestra de Stack O Bot y las ubicaciones de los recursos relacionados en la carpeta del proyecto.
Introducción al nivel
Stack O Bot comienza con una introducción al nivel, construida como una secuencia de nivel usando Sequencer. En la secuencia de nivel, se usan tres cámaras cinemáticas y una pista del corte de cámara para moverte por el nivel y mostrar varios elementos del mapa del juego.
La secuencia de niveles (SQ_Lvl1_fly) se encuentra en la carpeta /Content/StackOBot/Maps.
Personaje personalizable en tercera persona
El proyecto Stack O Bot incluye un personaje en tercera persona que se mueve, salta e interactúa con personajes no jugables (PNJ) y objetos. El blueprint para el personaje, BP_Bot, combina un grafo de animación, un rig de control y materiales personalizables.
El grafo de animación se usa para animar al personaje en varios estados (por ejemplo, de pie, corriendo o saltando). El rig de control se usa para animaciones contextuales, como colocar los pies del personaje en distintas superficies, y para guiar la mano a la posición del botón al pulsar botones. Los materiales personalizables incluyen parámetros para cambiar las combinaciones de colores y las expresiones faciales del personaje.
El blueprint BP_Bot se encuentra en la carpeta /Content/StackOBot/Blueprints/Character, y las animaciones y los materiales del personaje se encuentran en la carpeta /Content/StackOBot/Characters/Bot.
Generación procedimental de contenido (PCG)
El mapa de Stack O Bot se crea mediante la generación procedimental de contenido. La generación procedimental de contenido se usa para crear muchos de los recursos, como las islas flotantes, el follaje, las plataformas, las cúpulas hexagonales, las vallas y los generadores de monedas.
Las plataformas se crean ajustando un tamaño, y usan piezas de mosaico existentes y un conjunto de reglas para mantener la coherencia visual de las plataformas. Hay cúpulas por todo el mapa, pero puedes establecer entradas y salidas de nivel que queden libres de cúpulas.
Las vallas se crean mediante un sistema de generación procedimental de contenido que muestra un spline, PCG_BP_FenceSpline, y aplica reglas para generar las distintas partes de la valla, como postes y cables. El mapa incluye generadores de monedas, que también usan generación procedimental de contenido para generar monedas a lo largo de un spline.
El contenido de generación procedimental de contenido se encuentra en la carpeta /Content/StackOBot/Blueprints/PCG.
Materiales inteligentes sin UV
El proyecto Stack O Bot usa materiales inteligentes sin UV para aplicar texturas de alta calidad a cada malla del mapa con una superficie de hormigón, metal o pintada, como las plataformas flotantes, los cilindros de metal y las partes metálicas de la estructura del biodomo. En lugar de crear canales UV para cada sección de una malla, el equipo añadió información de color de vértices a cada malla usando herramientas de modelado. A continuación, los materiales inteligentes usan los colores de vértice para posicionar la textura en cada malla.
Generación de HLOD
El mapa de Stack O Bot es grande y exige renderizar muchos recursos, por lo que el proyecto usa el sistema Nivel de detalle jerárquico (HLOD) de Unreal Engine para mejorar el rendimiento al jugar.
Comportamiento de PNJ de StateTree
Stack O Bot incluye PNJ que pueden interactuar con el personaje jugable. Los PNJ se desplazan por partes del mapa, persiguen al jugador si está cerca, chocan con él para repelerle y pueden destruirse si el personaje jugable salta sobre sus cabezas. El comportamiento de los PNJ se controla mediante un StateTree, que define los distintos estados en los que puede encontrarse cada PNJ (por ejemplo, inactivo, caminando o muerto) y las acciones que debería realizar en cada estado.
El StateTree de los PNJ se encuentra en la carpeta /Content/StackOBot/AI/STree_Bug.
Instancias de nivel modular
Stack O Bot usa instancias de nivel para crear segmentos de nivel modulares reutilizables. Por ejemplo, hay instancias de nivel con variantes de las islas flotantes que puedes usar para compilar mapas de juego sin tener que crear contenido único para cada área nueva.
Cada instancia de nivel puede jugarse como un mapa independiente o añadirse a un mapa de World Partition. Cuando se colocan en otro mapa, cada instancia tiene una transformación para que pueda rotarse y posicionarse.
Puedes añadir objetos a una instancia que estén etiquetados como Solo mundo principal en el panel Detalles del objeto. Estos objetos solo aparecen si la instancia se juega como mapa independiente, y no si usas el mapa como instancia de nivel en un mapa de World Partition. Marca la casilla de verificación Solo mundo principal en la iluminación, los inicios del jugador y otros objetos que no quieras usar en el mapa de World Partition, pero sí al probar y depurar la instancia de nivel como mapa independiente.
Las instancias de nivel se encuentran en la carpeta /Content/StackOBot/Maps/LevelInstances. Las instancias de nivel que usan objetos etiquetados como Solo mundo principal tienen una carpeta Mundo principal que incluye estos objetos.
Interacciones basadas en la física
Stack O Bot usa los sistemas de física de Unreal Engine para implementar objetos, interacciones y destrucción con física.
Para objetos con física como las cajas apilables, el personaje jugable los agarra usando un controlador de física. Objetos como las almohadillas de rebote y los brazos de extensión usan comandos de física para lanzar al jugador por los aires. Las plataformas flotantes y los puentes utilizan una configuración de restricciones físicas. Los objetos destructibles, como las cubiertas y las plataformas de reaparición, usan una colección geométrica previamente fracturada que el campo maestro de Chaos activa.
Los objetos con física se encuentran en la carpeta /Content/StackOBot/Blueprints/PhysicsElements.
Cámara dinámica
Stack O Bot usa un gestor de cámara de jugador personalizado (BP_CamManager) para crear tres tipos de cámara distintos:
Una cámara en tercera persona que sigue al jugador por detrás
Una perspectiva bloqueada en tercera persona diseñada para mostrar varios elementos del mapa del juego desde un ángulo cinemático.
Una implementación de desplazamiento lateral diseñada para recrear el estilo de los videojuegos de plataformas 2D clásicos.
La cámara en tercera persona que sigue al jugador se usa en la mayor parte del mapa principal. Al subirte a ciertas plataformas móviles, la cámara cambia a la perspectiva de tercera persona bloqueada. Hay una parte del mapa en la que la cámara cambia a la perspectiva de desplazamiento lateral.
El administrador de cámara cambia entre los 3 tipos de cámara usando un actor de blueprint (BP_GameCamVolume), la lógica del administrador de cámara y una interfaz (BPI_CamManager) para establecer la comunicación entre el administrador y el actor de blueprint.
El gestor de cámara y el blueprint del volumen de cámara del juego se encuentran en la carpeta /Content/StackOBot/Blueprints/Camera.
Interacciones del juego
Stack O Bot incluye un componente de controlador de interacciones que se añade a cualquier actor con el que el personaje jugable pueda interactuar. Esto se aplica a objetos como botones y almohadillas de presión.
Los objetos que se pueden agarrar, como las cajas, tienen la pestaña del actor AGARRAR activada por la función Grab_Check en BP_Bot. Los objetos agarrados se actualizan mediante la función Grab_Update.
El componente del controlador de interacciones se encuentra en la carpeta /Content/StackOBot/Blueprints/GameElements. La lógica de captura se incluye en el blueprint BP_Bot, que se encuentra en la carpeta /Content/StackOBot/Blueprints/Character.
Reconocimiento de objetivos
Stack O Bot implementa un sistema de objetivos mediante el modo de juego. Puedes etiquetar actores interactivos con el booleano IsObjective en el componente de blueprint del controlador de interacciones. Cuando el jugador interactúa con el actor etiquetado, el objetivo se actualiza.
Los objetivos se registran en la interfaz de usuario (IU) del juego. El controlador de interacción envía el estado del objeto a la IU y actualiza la IU según sea necesario.
Los objetivos también se representan visualmente en el mapa mediante el actor BP_Portal, que tiene una luz por objetivo. Las luces se encienden a medida que se completan los objetivos. Cuando se hayan completado todos los objetivos y se hayan encendido todas las luces, el portal se activará y se activará la colisión de triggers. Esta activación permite al jugador completar el mapa al acceder al portal. El componente de controlador de interacciones administra la lógica de las luces y el portal.
El componente del controlador de interacciones (BPC_InteractionHandler) y el blueprint del portal (BP_Portal) se encuentran en la carpeta /Content/StackOBot/Blueprints/GameElements. El recurso de la interfaz de usuario (HUD_InGame) se encuentra en la carpeta /Content/StackOBot/Blueprints/Framework.