Cave: Guia de Introdução
Arquitetura e Terminologia do Motor
Lesson 5 of 19 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Cave foi projetado para ser simples de aprender, mas ainda tem alguns conceitos importantes que você precisa entender.
Esta lição explica as palavras principais que você verá em todo lugar no editor: cena, entidade, componente, ativo, template de entidade, transformação, corpo rígido, componente de personagem, componente Python, bloco lógico, linha do tempo e tempo de execução.
Esta é uma visão geral de alto nível e não entra nos detalhes de cada palavra, mas é importante começar a melhorar sua compreensão do motor. Uma vez que essas palavras façam sentido, o resto do motor se torna muito mais fácil de compreender.
A Grande Imagem
A maioria dos projetos Cave é construída a partir de algumas ideias repetidas:
| Conceito | Significado Simples |
|---|---|
| Cena | Um nível, menu, área de teste ou espaço jogável. |
| Entidade | Um objeto dentro de uma cena. |
| Componente | Uma característica anexada a uma entidade. |
| Ativo | Conteúdo de projeto reutilizável armazenado no Navegador de Ativos. |
| Template de Entidade | Uma configuração reutilizável de entidade, semelhante a um prefab. |
Por exemplo, imagine uma caixa de madeira em um nível:

- O nível é uma
Cena. - A caixa colocada no nível é uma
Entidade. - A posição da caixa é armazenada em sua
Transformação. - O modelo visível é tratado por um
Componente de Malha. - A colisão pode ser tratada por um
Componente de Corpo Rígido. - O modelo, material e textura usados pela caixa são
Ativos.
Se você quiser reutilizar essa configuração de caixa em muitas cenas, pode salvá-la como um Template de Entidade.
Cena
Uma cena é uma coleção de entidades.
As cenas podem ser usadas para:
- Níveis de jogo.
- Menus.
- Mapas de teste.
- Quartos de protótipo.
- Espaços de cutscenes.
Apenas a cena ativa é editada na Visualização 3D principal. Quando você testa o jogo, o Cave executa a cena como jogabilidade em vez de apenas conteúdo de editor.
Ao exportar ou testar o projeto como um tempo de execução, as configurações do projeto decidem qual cena é usada como a cena inicial. Você pode mudar isso indo para a Aba de Configurações.
Entidade
Uma entidade é um objeto em uma cena.
As entidades podem ser visíveis ou invisíveis. Elas podem ser simples ou complexas.
Exemplos de entidades:
- Um personagem jogador.
- Uma porta.
- Uma câmera.
- Uma luz.
- Um gatilho.
- Um botão de UI.
- Um ponto de spawn.
- Uma pasta usada para organização.
Uma entidade por si só é principalmente um contêiner. O que ela pode realmente fazer depende dos componentes anexados a ela.
Componente
Um componente adiciona comportamento ou dados a uma entidade.
Em vez de ter um tipo de objeto enorme para cada coisa possível, o Cave permite que você construa entidades combinando componentes. E é exatamente assim que você deve construir os diferentes elementos do seu jogo, compostando as entidades com múltiplos tipos de componentes diferentes.
Por exemplo:
| Entidade | Componentes Possíveis |
|---|---|
| Parede estática | Transformação, Malha, Corpo Rígido. |
| Jogador | Transformação, Personagem, Câmera, Python. |
| Porta | Transformação, Malha, Corpo Rígido, Python ou Blocos Lógicos. |
| Luz pontual | Transformação, Luz. |
| Botão de UI | Elemento de UI. |
Esta é uma das ideias mais importantes no Cave: As entidades são contêineres. Os componentes as dotam de recursos.
É importante mencionar aqui também que outra maneira de compor seus diferentes tipos de objeto é usando múltiplas entidades na hierarquia de entidade filha.
Nomeação de Entidade
Quando você cria uma nova entidade, o Cave oferece diferentes tipos iniciais, como Pasta, Vazia, Malha, Luz Pontual, Câmera, Elemento de UI, Texto e Botão.
Esses não são mundos completamente separados. Eles são pontos de partida convenientes.
Por exemplo:
- Uma
Vaziaé uma entidade básica com uma transformação. - Uma entidade
Malhaé uma entidade preparada para exibir uma malha. - Uma entidade
Luz Pontualé uma entidade preparada para se comportar como uma luz. - Uma entidade
Câmeraé uma entidade preparada para renderizar uma visão. - Uma
Pastaé uma entidade usada principalmente para organização.
Você geralmente pode adicionar, remover ou editar componentes mais tarde, então o tipo inicial é apenas um atalho útil.
Transformação
A transformação diz ao Cave onde uma entidade está e como está orientada.
Inclui:
- Posição.
- Rotação.
- Escala.
Quase toda entidade de cena tem uma transformação porque a maioria dos objetos precisa existir em algum lugar no mundo. Quando você move, gira ou escala uma entidade com o gizmo, você está editando sua transformação. Quando uma entidade é filha de outra entidade, sua transformação é avaliada em relação a essa hierarquia.
Ativo
Um ativo é conteúdo reutilizável de projeto armazenado no Navegador de Ativos. É importante mencionar que, enquanto uma Entidade é considerada internamente um Ativo, um Ativo não é a mesma coisa que uma Entidade.
Por exemplo:
- Um ativo de malha é os dados do modelo. Uma entidade de malha é um objeto colocado na cena que usa esse ativo de malha.
- Um ativo de material define como uma superfície aparece. Uma entidade de malha pode referenciar esse material.
- Um ativo de script Python contém código. Um componente Python pode usar esse script.
Essa separação é poderosa porque um ativo pode ser reutilizado muitas vezes. Se dez caixas usam o mesmo material, editar o ativo de material pode atualizar todas elas.
Template de Entidade
Um template de entidade é uma configuração reutilizável de entidade. Confira a captura de tela abaixo. Os Ativos de Template de Entidade são marcados com uma linha verde abaixo de sua miniatura:

Se você vem de outro motor, pode pensar nisso como semelhante a um prefab.
Um template de entidade pode armazenar:
- Uma hierarquia de entidades.
- Componentes.
- Configurações de componente.
- Referências de ativo.
- Entidades filhas.
Isso é útil para qualquer coisa que você queira reutilizar:
- Inimigos.
- Itens colecionáveis.
- Portas.
- Props.
- Veículos.
- Widgets de UI.
- Objetos de jogabilidade.
Em vez de reconstruir o mesmo objeto repetidamente, você o cria uma vez como um template de entidade e coloca instâncias dele onde for necessário.
Corpo Rígido
Um corpo rígido dá a uma entidade comportamento físico. Ele é usado quando um objeto precisa de colisão ou movimento físico.
Exemplos:
- Uma caixa que bloqueia o jogador.
- Uma bola que pode rolar.
- Uma porta com colisão.
- Uma parede pela qual o jogador não pode passar.
Corpos rígidos são parte do lado físico do motor. Você os usará quando os objetos precisarem interagir fisicamente com o mundo.
Componente de Personagem
Um componente de personagem é usado para movimento no estilo de personagem. Isso é diferente de um corpo rígido regular porque um personagem geralmente precisa de comportamento especial:
- Caminhar.
- Deslizar ao longo de paredes.
- Lidar com rampas.
- Salto.
- Responder à entrada do jogador.
Para um jogador ou NPC, um componente de personagem é geralmente um ponto de partida melhor do que tentar fazer um objeto físico básico se comportar como um personagem.
Quando falamos sobre um Componente de Personagem no Cave, estamos nos referindo à sua Física de Personagem, não à lógica específica do jogo (como movimento, etc).
Tags e Propriedades
Tags e propriedades ajudam você a identificar e configurar entidades.
- Uma tag é um rótulo que pode ajudar scripts ou lógica a encontrar e categorizar coisas.
- Propriedades são valores editáveis expostos ao editor. Elas permitem que você ajuste comportamentos sem reescrever código toda vez.
Por exemplo, um inimigo pode ter propriedades como:
- Velocidade de andar.
- Saúde.
- Distância de ataque.
- Alvo de patrulha.
Um bom uso de propriedades torna seu jogo mais fácil de ajustar.
Propriedades não se limitam a Entidades: Cenas, Blocos Lógicos e outros Ativos também podem tê-las.
Quando falamos sobre propriedades no Cave, nos referimos especificamente a tais propriedades que podem ser acessadas usando dicionários Python por meio de código. Elas estão quase sempre disponíveis no Editor também.
Componente Python
Um componente Python permite que uma entidade execute a lógica Python.
Isso é útil quando você deseja comportamento personalizado, como:
- Abrir uma porta.
- Mover uma plataforma.
- Lidar com entrada do jogador.
- Spawnear um objeto.
- Atualizar texto da UI.
- Acionar eventos.
Componentes Python são uma das principais maneiras de programar jogabilidade no Cave.
Componente de Código Python
Um componente de Código Python é usado quando o código é armazenado diretamente no componente em vez de ser vinculado como um ativo de script separado. Isso pode ser útil para testes rápidos, pequenos comportamentos ou protótipos.
Para sistemas de jogabilidade maiores, um ativo de script Python separado geralmente é mais fácil de organizar e reutilizar.
Bloco Lógico
Blocos lógicos são uma maneira visual de construir lógica. Eles são úteis quando você deseja comportamento sem escrever código Python diretamente.
Se você conhece os Blueprints da Unreal, os blocos lógicos estão em uma família de ideias semelhante: você conecta a lógica visualmente em vez de escrever tudo como texto.
Eles são especificamente úteis para criar qualquer tipo de lógica que você deseja sem exigir a escrita de código Python. Por exemplo, eventos de jogabilidade e lógica, comportamento de objetos, conectando sistemas, gatilhos, etc.
Você aprenderá sobre eles mais adiante neste guia.
Linha do Tempo
Uma linha do tempo é um ativo usado para sequências criadas. Linhas do tempo podem animar ou acionar coisas ao longo do tempo.
Elas são úteis para:
- Cutscenes.
- Movimentos de câmera.
- Eventos roteirizados.
- Sequências de jogabilidade coordenadas.
Linhas do tempo não são necessárias para todo jogo, mas são úteis quando você deseja que algo aconteça em uma ordem específica estabelecida.
Importante: Linhas do tempo não são meios para edição de animação individual, como editar uma animação de Ciclo de Andar para seu personagem. Nesse caso, você deve usar um software DCC especializado, como Blender, e depois importá-lo para o Cave.
Player e Tempo de Execução do Jogo
- O Editor do Cave é onde você constrói o projeto.
- O Player do Cave é o tempo de execução que executa o jogo.
Quando você pressiona Play no editor, o Cave executa sua cena em um modo semelhante ao jogo dentro do editor. Quando você testa como um tempo de execução independente, o Cave inicia o jogo em uma janela de player separada.
O jogo final exportado roda como uma build de jogador/runtime, não como o editor. Essa separação é importante porque algumas coisas são exclusivas do editor (para você depurar e/ou desenvolver seu projeto), enquanto outras fazem parte do jogo real.
O Relacionamento Mais Importante
Se você lembrar de apenas uma coisa desta lição, lembre-se disto:
Uma cena contém entidades, entidades contêm componentes, e componentes geralmente usam ativos.
Esse é o alicerce de um projeto Cave.