Stack O Bot é um projeto de jogo de amostra criado como um recurso de aprendizado para explorar o desenvolvimento de jogos com a Unreal Engine. Ele demonstra várias funcionalidades da engine, incluindo geração procedural de conteúdo (PCG), Blueprints e instâncias de nível. O projeto de amostra inclui comentários do desenvolvedor no jogo que abordam as escolhas de design e a implementação, além de Blueprints e materiais comentados.
Em Stack O Bot, o jogador controla um personagem robô de uma perspectiva em terceira pessoa e deve concluir uma série de desafios de plataforma e quebra-cabeças baseados em física. Ele suporta um amplo intervalo de dispositivos, de dispositivos móveis a PCs de última geração, e pode ser controlado usando entradas de teclado e mouse, controle e tela sensível ao toque.
Esta página explica como abrir o projeto de amostra Stack O Bot, fornece uma visão geral dos principais recursos do projeto e links para documentação relacionada para aprendizado adicional.
Abrir o projeto Stack O Bot
A amostra Stack O Bot descrita nesta página foi criada usando a Unreal Engine 5.6. Para testar a amostra Stack O Bot mais antiga, baixe o projeto para versões da engine anteriores à 5.6.
Para abrir o projeto de amostra Stack O Bot, siga estas etapas:
Em Fab, vá para a amostra Stack O Bot e clique em Adicionar à minha biblioteca.
Você também pode pesquisar o projeto de amostra do plugin Fab para a Unreal Engine.
Vá para Stack O Bot e clique em Criar projeto.
Volte ao Inicializador da Epic Games e acesse Unreal Engine, Biblioteca, Biblioteca de Fab.
Insira um nome e um local para sue projeto.
Selecione 5.6 como a versão da engine.
Clique em Criar. O projeto será aberto.
Para saber mais sobre como acessar conteúdo de amostra e o plugin Fab para a Unreal Engine, consulte Amostras e tutoriais.
Especificações de sistema recomendadas
O Stack O Bot foi projetado para ser compatível com um intervalo de dispositivos, incluindo dispositivos móveis e computadores. O conteúdo escala através dos níveis de detalhe e é totalmente compatível com dispositivos móveis.
As seguintes especificações de sistema são recomendadas para um PC:
Windows 10, 64 bits, versão 1909, revisão 0.1350 ou superior, ou versões 2004 e 20H2, revisão 0.789 ou superior
O Windows 11 é compatível com o Unreal Engine 5 e segue as especificações recomendadas.
Quad-core Intel ou AMD, 2,5 GHz ou superior
32 GB de RAM do sistema
8 GB de VRAM
Placa de vídeo compatível com DirectX 11 ou 12
Como navegar pelo projeto Stack O Bot
Depois que você abre o projeto Stack O Bot, o mapa Lvl_Empty é aberto por padrão no editor de níveis. O mapa fornece algumas informações na tela para usar este projeto de amostra.
A maior parte do conteúdo do projeto de amostra está na pasta /Content/StackOBot/. O mapa principal do jogo, Lvl_StackOBot está na pasta /Content/StackOBot/Maps.
Para jogar o jogo, clique no ícone Jogar na barra de ferramentas principal.
O jogo começa com um menu principal, incluído no mapa Lvl_MainMenu. Clique em JOGAR para ir ao mapa principal do jogo, Lvl_StackOBot.
O mapa principal do jogo inclui ícones de bolhas que acionam comentários do desenvolvedor quando o jogador se aproxima. Este comentário explica alguns dos detalhes de implementação e decisões de design que os desenvolvedores tomaram ao criar o Stack O Bot.
O conteúdo dos balões de comentários do desenvolvedor está na pasta /Content/DevCom.
Controles no jogo do Stack O Bot
Para jogar Stack O Bot, o jogador pode usar um teclado e mouse, controle ou controles de tela sensível ao toque.
| Ação | Teclado e mouse | Controller | Toque (veja a imagem abaixo) |
|---|---|---|---|
Move | W, A, S, D | Direcional analógico esquerdo | 1 |
Olhar | Mouse | Direcional analógico direito | 2 |
Pular | Espaço (pressione) | Botão de face inferior (pressione) | 3 (pressione) |
Mochila a Jato | Espaço (segure) | Botão de face inferior (mantenha pressionado) | 3 (segure) |
Agarrar | E | Gatilho direito | 4 |
Pausar | Escape ou Shift esquerdo | Botão iniciar | 5 |
Funcionalidades do Stack O Bot
Esta seção descreve as funcionalidades usadas no projeto de amostra do Stack O Bot e as posições dos ativos relacionados na pasta do projeto.
Introdução ao nível
O Stack O Bot começa com uma introdução de nível, construída como uma sequência de nível usando o Sequencer. Na sequência de nível, três câmeras cinematografia e uma faixa de corte de câmera são usadas para mover pelo nível e mostrar vários elementos do mapa do jogo.
A sequência de nível (SQ_Lvl1_fly) está na pasta /Content/StackOBot/Maps.
Personagem personalizável em terceira pessoa
O projeto Stack O Bot inclui um personagem em terceira pessoa que se move, pula e pode interagir com personagens não jogáveis (PNJs) e objetos. O Blueprint do personagem, BP_Bot combina um gráfico de animação, um Control Rig e materiais personalizáveis.
O gráfico de animação é usado para animar o personagem em vários estados, como parado, correndo ou pulando. O Control Rig é usado para animações contextuais, como posicionar os pés do personagem em diferentes superfícies e guiar a mão até a posição de botão ao pressionar botões. Os materiais personalizáveis incluem parâmetros para alterar as combinações de cores e expressões faciais do personagem.
O Blueprint BP_Bot está na pasta /Content/StackOBot/ Blueprints/Character, e as animações e materiais do personagem estão na pasta /Content/StackOBot/Characters/Bot.
Geração de Conteúdo Procedural (PCG)
O mapa no Stack O Bot é criado usando a geração procedural de conteúdo (PCG). A PCG é usada para fazer muitos dos ativos, incluindo as ilhas flutuantes, a folhagem, as plataformas, as cúpulas hexagonais, as cercas e os geradores de moedas.
As plataformas são criadas definindo um tamanho, usando peças de ladrilhos existentes e um conjunto de regras para manter as plataformas visualmente consistentes. Cúpulas são colocadas em todo o mapa, mas você pode definir uma entrada e saída de nível que limpar tenha cúpulas.
As cercas são criadas usando um sistema PCG que obtém uma amostra de um spline, PCG_BP_FenceSpline, e aplica regras para gerar as diferentes partes da cerca, como postes e extremidades. O mapa inclui geradores de moedas, que também usam PCG para surgir moedas ao longo de um spline.
O conteúdo da PCG está na pasta /Content/StackOBot/Blueprints/PCG.
Materiais inteligentes sem UV
O projeto Stack-O-Bot usa materiais inteligentes sem UV para aplicar texturas de alta qualidade a cada malha no mapa com uma superfície de concreto, metal ou pintada, como plataformas flutuantes, cilindros de metal e partes metálicas da estrutura de cúpula. Em vez de criar canais UV para cada seção de uma malha, a equipe adicionou informações de cor do vértice a cada malha usando ferramentas de modelagem. Os materiais inteligentes usam a cor do vértice para posicionar a textura em cada malha.
Geração de HLOD
Como o mapa no Stack O Bot é grande e tem muitos ativos para renderizar, o projeto usa o sistema de Nível de Detalhe Hierarquizado (HLOD) da Unreal Engine para melhorar o desempenho durante a execução do jogo.
Comportamento de StateTree PNJ
O Stack O Bot inclui PNJs que podem interagir com o personagem jogável. Os PNJs caminham por partes do mapa, perseguem o jogador se ele estiver por perto, esbarram no jogador para empurrá-lo para trás e podem ser destruídos quando o personagem jogável pular sobre a cabeça deles. O comportamento do PNJ é controlado usando um StateTree, que define os diferentes estados em que cada PNJ pode estar (como ocioso, caminhando ou morto) e as ações que o PNJ deve realizar em cada estado.
O StateTree para os PNJs está na pasta /Content/StackOBot/AI/STree_Bug.
Instâncias de nível modular
O Stack O Bot usa instâncias de nível para criar segmentos de nível modulares reutilizáveis. Por exemplo, existem instâncias de nível com variantes das ilhas flutuantes que você pode usar para compilar mapas de jogo sem ter que criar conteúdo único para cada nova área.
Cada instância de nível pode ser reproduzida como um mapa independente ou adicionada a um mapa do World Partition. Quando colocadas em outro mapa, cada instância tem uma transformação para que possa ser girada e posicionada.
Você pode adicionar objetos marcados como Apenas mundo principal a uma instância no painel Detalhes do objeto. Esses objetos só aparecem se a instância for reproduzida como um mapa independente e não se você usar o mapa como uma instância de nível em um mapa do World Partition. Marque a caixa de seleção Apenas mundo principal na iluminação, início do jogador e outros objetos que você não deseja usar no mapa do World Partition, mas deseja usar ao testar e depurar a instância de nível como um mapa independente.
As instâncias de nível estão na pasta /Content/StackOBot/Maps/LevelInstances. Instâncias de nível que usam objetos marcados como "Apenas mundo principal" têm apenas uma pasta Main World que inclui esses objetos.
Interações baseadas em física
O Stack O Bot usa os sistemas de física da Unreal Engine para implementar objetos físicos, interações e destruição.
Para objetos físicos, como as caixas empilháveis, o personagem jogável agarra-os usando um identificador de física. Objetos como plataformas de quique e ventiladores usam comandos de física para arremessar o jogador no ar. Plataformas e pontes flutuantes usam uma configuração de restrições de física. Objetos destrutíveis, como telhados e plataformas de ressurgimento, usam uma coleção de geometria pré-fragmentada que o campo principal do Chaos aciona.
Os objetos de física estão localizados na pasta /Content/StackOBot/Blueprints/PhysicsElements.
Câmera dinâmica
O Stack O Bot usa um gerenciador de câmera de jogador personalizado (BP_CamManager) para criar três tipos de câmera distintos:
Uma câmera em terceira pessoa que segue o jogador
Uma perspectiva em terceira pessoa bloqueada projetada para mostrar vários elementos do mapa do jogo de um ângulo cinematografia
Uma implementação de rolagem lateral projetada para recriar o estilo dos jogos clássicos de plataforma 2D
A câmera em terceira pessoa que acompanha o jogador é usada na maior parte do mapa principal. Ao ficar em certas plataformas móveis, a câmera muda para a perspectiva em terceira pessoa bloqueada. Há uma parte do mapa onde a câmera muda para a perspectiva de rolagem lateral.
O gerenciador de câmera faz a transição entre os três tipos de câmera usando um ator de Blueprint (BP_GameCamVolume), lógica no gerenciador de câmera e uma interface (BPI_CamManager) para comunicação entre o gerenciador e o ator de Blueprint.
Os Blueprints do gerenciador de câmera e do volume da câmera de jogo estão na pasta /Content/StackOBot/Blueprints/Camera.
Interações de jogabilidade
O Stack O Bot inclui um componente de manipulador de interação que é adicionado a qualquer ator com o qual o personagem jogável possa interagir. Isso se aplica a objetos como botões e almofadas de pressão.
Objetos que podem ser agarrados, como caixas, têm a aba de ator GRAB que é verificada pela função Grab_Check em BP_Bot. Objetos agarrados são atualizados pela função Grab_Update.
O componente do manipulador de interação está na pasta /Content/StackOBot/Blueprints/GameElements. A lógica de agarrar está incluída no Blueprint BP_Bot, que está localizado na pasta /Content/StackOBot/Blueprints/Character.
Rastreamento de objetivo
O Stack O Bot implementa um sistema de objetivos usando o Modo de Jogo. Você pode etiquetar atores interativos usando o booleano IsObjective no componente de Blueprints do manipulador de interação. Quando o jogador interage com o ator etiquetado, o objetivo é atualizado.
Os objetivos são rastreados na interface de usuário (IU) do jogo. O manipulador de interação envia o status do objeto para a interface de usuário e a atualiza conforme necessário.
Os objetivos também são representados visualmente no mapa pelo ator BP_Portal, que tem uma luz por objetivo. As luzes se acendem quando os objetivos são concluídos. Depois que todos os objetivos forem concluídos e todas as luzes são ilumináveis, o portal se tornará ativo e a colisão de gatilho será habilitada. Essa ativação permite ao jogador concluir o mapa entrando no portal. O componente manipulador de interação gerencia a lógica das luzes e do portal.
O componente do manipulador de interação (BPC_InteractionHandler) e o Blueprint do portal (BP_Portal) estão na pasta /Content/StackOBot/Blueprints/GameElements. O ativo de interface de usuário (HUD_InGame) está na pasta /Content/StackOBot/Blueprints/Framework.