Cave: Guía de Inicio
Arquitectura y Terminología del Engine
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 está diseñado para ser fácil de aprender, pero aún tiene algunos conceptos importantes que necesitas entender.
Esta lección explica las palabras clave que verás por todas partes en el editor: escena, entidad, componente, asset, plantilla de entidad, transform, cuerpo rígido, componente de personaje, componente Python, ladrillo lógico, línea de tiempo y tiempo de ejecución.
Esta es una visión general a nivel superior, y no entra en los detalles específicos de cada palabra, pero es importante empezar a mejorar tu comprensión del engine. Una vez que estas palabras tengan sentido, el resto del engine será mucho más fácil de entender.
La Visión General
La mayoría de los proyectos en Cave se construyen a partir de unas pocas ideas repetidas:
| Concepto | Significado Simple |
|---|---|
| Scene | Un nivel, menú, área de prueba o espacio jugable. |
| Entity | Un objeto dentro de una escena. |
| Component | Una función adjunta a una entidad. |
| Asset | Contenido reutilizable del proyecto almacenado en el Navegador de Assets. |
| Entity Template | Una configuración reutilizable de entidad, similar a un prefab. |
Por ejemplo, imagina una caja de madera en un nivel:

- El nivel es una
Scene. - La caja colocada en el nivel es una
Entity. - La posición de la caja se almacena en su
Transform. - El modelo visible está gestionado por un
Mesh Component. - La colisión puede ser gestionada por un
Rigid Body Component. - El modelo, material y textura usados por la caja son
Assets.
Si quieres reutilizar esa configuración de caja en muchas escenas, puedes guardarla como una Entity Template.
Scene
Una escena es una colección de entidades.
Las escenas pueden usarse para:
- Niveles de juego.
- Menús.
- Mapas de prueba.
- Habitaciones prototipo.
- Espacios para escenas cinemáticas.
Solo la escena activa se edita en la Vista 3D principal. Cuando pruebas el juego, Cave ejecuta la escena como juego en lugar de solo contenido del editor.
Al exportar o probar el proyecto en tiempo de ejecución, la configuración del proyecto decide qué escena se usa como escena inicial. Puedes cambiarlo yendo a la pestaña Settings.
Entity
Una entidad es un objeto en una escena.
Las entidades pueden ser visibles o invisibles. Pueden ser simples o complejas.
Ejemplos de entidades:
- Un personaje jugador.
- Una puerta.
- Una cámara.
- Una luz.
- Un disparador.
- Un botón UI.
- Un punto de aparición.
- Una carpeta usada para organización.
Una entidad por sí sola es principalmente un contenedor. Lo que puede hacer realmente depende de los componentes que tenga adjuntos.
Component
Un componente agrega comportamiento o datos a una entidad.
En lugar de tener un tipo de objeto enorme para cada cosa posible, Cave te permite construir entidades combinando componentes. Y esta es exactamente la forma en la que debes construir los diferentes elementos de tu juego, componiendo las entidades con múltiples tipos de componentes.
Por ejemplo:
| Entity | Componentes posibles |
|---|---|
| Muro estático | Transform, Mesh, Rigid Body. |
| Jugador | Transform, Character, Camera, Python. |
| Puerta | Transform, Mesh, Rigid Body, Python o Logic Bricks. |
| Luz puntual | Transform, Light. |
| Botón UI | UI Element. |
Esta es una de las ideas más importantes en Cave: las entidades son contenedores. Los componentes les dan características.
También es importante mencionar que otra forma de componer tus diferentes tipos de objetos es usando múltiples entidades dentro de la jerarquía de entidad hija.
Nomenclatura de Entidades
Cuando creas una nueva entidad, Cave ofrece diferentes tipos iniciales, como Folder, Empty, Mesh, Point Light, Camera, UI Element, Text y Button.
Estos no son mundos completamente separados. Son puntos de partida convenientes.
Por ejemplo:
- Un
Emptyes una entidad básica con un transform. - Una entidad
Meshes una entidad preparada para mostrar un mesh. - Una entidad
Point Lightes una entidad preparada para comportarse como una luz. - Una entidad
Cameraes una entidad preparada para renderizar una vista. - Un
Folderes una entidad usada principalmente para organización.
Por lo general, puedes añadir, eliminar o editar componentes después, así que el tipo inicial es solo un acceso directo útil.
Transform
El transform indica a Cave dónde está una entidad y cómo está orientada.
Incluye:
- Posición.
- Rotación.
- Escalado.
Casi todas las entidades de escena tienen un transform porque la mayoría de los objetos necesitan existir en algún lugar del mundo. Cuando mueves, rotas o escalas una entidad con el gizmo, estás editando su transform. Cuando una entidad es subordinada a otra, su transform se evalúa relativo a esa jerarquía.
Asset
Un asset es contenido reutilizable del proyecto almacenado en el Navegador de Assets. Es importante mencionar que aunque una Entidad internamente es considerada un Asset, un Asset no es lo mismo que una Entidad.
Por ejemplo:
- Un asset de mesh es el dato del modelo. Una entidad mesh es un objeto colocado en la escena que usa ese asset de mesh.
- Un asset de material define cómo se ve una superficie. Una entidad mesh puede referenciar ese material.
- Un asset de script Python contiene código. Un componente Python puede usar ese script.
Esta separación es poderosa porque un asset puede reutilizarse muchas veces. Si diez cajas usan el mismo material, editar el asset de material puede actualizar todas ellas.
Entity Template
Una plantilla de entidad es una configuración reutilizable de entidad. Revisa la captura de pantalla abajo. Los Assets de Plantilla de Entidad están marcados con una línea verde debajo de su miniatura:

Si vienes de otro engine, puedes pensar en ella como similar a un prefab.
Una plantilla de entidad puede almacenar:
- Una jerarquía de entidades.
- Componentes.
- Configuraciones de componentes.
- Referencias a assets.
- Entidades hijas.
Esto es útil para cualquier cosa que quieras reutilizar:
- Enemigos.
- Ítems recogibles.
- Puertas.
- Props.
- Vehículos.
- Widgets UI.
- Objetos de gameplay.
En lugar de reconstruir el mismo objeto una y otra vez, lo creas una vez como plantilla de entidad y colocas instancias cuando lo necesites.
Rigid Body
Un cuerpo rígido le da a una entidad comportamiento físico. Se usa cuando un objeto necesita colisión o movimiento físico.
Ejemplos:
- Una caja que bloquea al jugador.
- Una pelota que puede rodar.
- Una puerta con colisión.
- Una pared por la que el jugador no puede pasar.
Los cuerpos rígidos son parte del motor de física. Los usarás cuando los objetos necesiten interactuar físicamente con el mundo.
Character Component
Un componente de personaje se usa para movimientos estilo personaje. Esto es diferente de un cuerpo rígido regular porque un personaje usualmente necesita comportamientos especiales:
- Caminar.
- Deslizarse por paredes.
- Manejar pendientes.
- Saltar.
- Responder al input del jugador.
Para un jugador o NPC, un componente de personaje suele ser un mejor punto de partida que intentar hacer que un objeto básico de física se comporte como un personaje.
Cuando hablamos de Character Component en Cave, nos referimos a su Física de Personaje, no a la lógica específica del juego (como movimiento, etc).
Tags y Properties
Las tags y properties te ayudan a identificar y configurar entidades.
- Una tag es una etiqueta que puede ayudar a scripts o lógica a encontrar y categorizar cosas.
- Las properties son valores editables expuestos al editor. Permiten ajustar el comportamiento sin tener que reescribir código cada vez.
Por ejemplo, un enemigo podría tener properties como:
- Velocidad de caminata.
- Salud.
- Distancia de ataque.
- Objetivo de patrulla.
Un buen uso de las properties hace que tu juego sea más fácil de ajustar.
Las properties no se limitan a las Entidades: las Escenas, Logic Bricks y otros Assets también pueden tenerlas.
Cuando hablamos de properties en Cave, nos referimos específicamente a propiedades que pueden ser accesibles usando diccionarios Python vía código. Casi siempre también están disponibles en el Editor.
Python Component
Un componente Python permite que una entidad ejecute lógica en Python.
Esto es útil cuando quieres comportamiento personalizado, como:
- Abrir una puerta.
- Mover una plataforma.
- Manejar la entrada del jugador.
- Generar un objeto.
- Actualizar texto de la UI.
- Disparar eventos.
Los componentes Python son una de las formas principales de programar la jugabilidad en Cave.
Python Code Component
Un componente de código Python se usa cuando el código está almacenado directamente en el componente en lugar de estar enlazado como un script separado. Esto puede ser útil para pruebas rápidas, comportamientos pequeños o prototipos.
Para sistemas de juego más grandes, un script Python separado suele ser más fácil de organizar y reutilizar.
Logic Brick
Los ladrillos lógicos son una forma visual de construir lógica. Son útiles cuando quieres comportamiento sin escribir código Python directamente.
Si conoces Blueprints de Unreal, los ladrillos lógicos están en una familia similar de ideas: conectas lógica visualmente en lugar de escribir todo como texto.
Son especialmente útiles para crear cualquier tipo de lógica que quieras sin necesidad de escribir código Python. Por ejemplo, eventos de gameplay y lógica, comportamiento de objetos, conectar sistemas, triggers, etc.
Los aprenderás más adelante en esta guía.
Timeline
Una línea de tiempo es un asset usado para secuencias creadas (authored sequences). Las líneas de tiempo pueden animar o disparar cosas a lo largo del tiempo.
Son útiles para:
- Escenas cinemáticas.
- Movimientos de cámara.
- Eventos guionizados.
- Secuencias coordinadas de gameplay.
Las líneas de tiempo no son necesarias para todos los juegos, pero son útiles cuando quieres que algo ocurra en un orden específico y planeado.
Importante: Las líneas de tiempo no son medios para editar animaciones individuales, como editar una animación de ciclo de caminata para tu personaje. En ese caso, debes usar un software DCC especializado, como Blender, y luego importarlo a Cave.
Player y Tiempo de Ejecución del Juego
- El Cave Editor es donde construyes el proyecto.
- El Cave Player es el runtime que ejecuta el juego.
Cuando presionas Play en el editor, Cave ejecuta tu escena en un modo tipo juego dentro del editor. Cuando pruebas como runtime independiente, Cave lanza el juego en una ventana separada del player.
El juego final exportado se ejecuta como una build de jugador/tiempo de ejecución, no como el editor. Esta separación es importante porque algunas cosas son solo para el editor (para que puedas depurar y/o desarrollar tu proyecto), mientras que otras forman parte del juego real.
La relación más importante
Si recuerdas solo una cosa de esta lección, recuerda esto:
Una escena contiene entidades, las entidades contienen componentes, y los componentes a menudo utilizan assets.
Esa es la columna vertebral de un proyecto en Cave.