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:

image.png

  • 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 Empty es una entidad básica con un transform.
  • Una entidad Mesh es una entidad preparada para mostrar un mesh.
  • Una entidad Point Light es una entidad preparada para comportarse como una luz.
  • Una entidad Camera es una entidad preparada para renderizar una vista.
  • Un Folder es 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:

image.png

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.