Cave: Erste Schritte Anleitung
Cave: Erste Schritte Anleitung
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 wurde so gestaltet, dass es einfach zu erlernen ist, aber es gibt dennoch einige wichtige Konzepte, die du verstehen musst.
Diese Lektion erklärt die Kernbegriffe, die du überall im Editor sehen wirst: Szene, Entity, Komponente, Asset, Entity Template, Transform, Rigidbody, Character Component, Python Component, Logic Brick, Timeline und Runtime.
Dies ist ein Überblick auf hoher Ebene und geht nicht auf die Details jedes Begriffs ein, aber es ist wichtig, dein Verständnis der Engine zu verbessern. Sobald diese Begriffe Sinn ergeben, wird der Rest der Engine viel leichter verständlich.
Das große Ganze
Die meisten Cave-Projekte bestehen aus einigen wiederkehrenden Grundideen:
| Konzept | Einfache Bedeutung |
|---|---|
| Scene | Ein Level, Menü, Testbereich oder spielbarer Raum. |
| Entity | Ein Objekt in einer Szene. |
| Component | Ein Feature, das an eine Entity angehängt ist. |
| Asset | Wiederverwendbarer Projektinhalt, der im Asset Browser gespeichert ist. |
| Entity Template | Ein wiederverwendbares Entity-Setup, ähnlich einer Prefab. |
Zum Beispiel stelle dir eine Holzkiste in einem Level vor:

- Das Level ist eine
Scene. - Die im Level platzierte Kiste ist eine
Entity. - Die Position der Kiste wird in ihrem
Transformgespeichert. - Das sichtbare Modell wird durch eine
Mesh Componentgehandhabt. - Die Kollisionsabbildung kann durch eine
Rigid Body Componenterfolgen. - Das Modell, Material und die Textur, die von der Kiste verwendet werden, sind
Assets.
Wenn du dieses Kisten-Setup in vielen Szenen wiederverwenden möchtest, kannst du es als Entity Template speichern.
Scene
Eine Szene ist eine Sammlung von Entities.
Szenen können verwendet werden für:
- Spielelevels.
- Menüs.
- Testkarten.
- Prototyp-Räume.
- Cutscene-Bereiche.
Nur die aktive Szene wird im Haupt-3D-Ansichtsfenster bearbeitet. Wenn du das Spiel testest, führt Cave die Szene als Gameplay aus und nicht nur als Editor-Inhalt.
Beim Exportieren oder Testen des Projekts als Runtime bestimmt die Projekteinstellung, welche Szene als Startszene verwendet wird. Du kannst das ändern, indem du zum Settings Tab gehst.
Entity
Eine Entity ist ein Objekt in einer Szene.
Entities können sichtbar oder unsichtbar sein. Sie können einfach oder komplex sein.
Beispiele für Entities:
- Eine Spielfigur.
- Eine Tür.
- Eine Kamera.
- Ein Licht.
- Ein Trigger.
- Ein UI-Button.
- Ein Spawnpunkt.
- Ein Ordner zur Organisation.
Eine Entity an sich ist hauptsächlich ein Container. Was sie tatsächlich kann, hängt von den Komponenten ab, die an sie angehängt sind.
Component
Eine Komponente fügt einer Entity Verhalten oder Daten hinzu.
Statt für jede mögliche Sache einen großen Objekttyp zu haben, erlaubt Cave dir, Entities durch das Kombinieren von Komponenten zu bauen. Genau so solltest du die verschiedenen Elemente deines Spiels erstellen, indem du Entities mit verschiedenen Komponententypen zusammensetzt.
Beispiel:
| Entity | Mögliche Komponenten |
|---|---|
| Statische Wand | Transform, Mesh, Rigid Body. |
| Spieler | Transform, Character, Camera, Python. |
| Tür | Transform, Mesh, Rigid Body, Python oder Logic Bricks. |
| Punktlicht | Transform, Light. |
| UI-Button | UI Element. |
Dies ist eine der wichtigsten Ideen in Cave: Entities sind Container. Komponenten geben ihnen Funktionen.
Es ist auch wichtig zu erwähnen, dass eine weitere Möglichkeit, deine Objekttypen zu komponieren, darin besteht, mehrere Entities in der Child-Entity-Hierarchie zu verwenden.
Entity-Benennung
Wenn du eine neue Entity erstellst, bietet Cave verschiedene Starttypen an, wie Folder, Empty, Mesh, Point Light, Camera, UI Element, Text und Button.
Diese sind nicht völlig getrennte Welten, sondern praktische Ausgangspunkte.
Beispiele:
- Eine
Emptyist eine einfache Entity mit Transform. - Eine
MeshEntity ist eine Entity, die vorbereitet ist, ein Mesh anzuzeigen. - Eine
Point LightEntity ist eine Entity, die als Licht fungieren kann. - Eine
CameraEntity ist eine Entity, die eine Ansicht rendert. - Ein
Folderist eine Entity, die hauptsächlich zur Organisation dient.
Du kannst normalerweise Komponenten später hinzufügen, entfernen oder bearbeiten, daher ist der Starttyp nur eine praktische Abkürzung.
Transform
Das Transform gibt an, wo eine Entity ist und wie sie orientiert ist.
Es umfasst:
- Position.
- Rotation.
- Skalierung.
Fast jede Scene-Entity hat ein Transform, da die meisten Objekte irgendwo in der Welt existieren müssen. Wenn du eine Entity mit dem Gizmo verschiebst, drehst oder skalierst, bearbeitest du ihr Transform. Wenn eine Entity eine Eltern-Entity hat, wird ihr Transform relativ zu dieser Hierarchie ausgewertet.
Asset
Ein Asset ist wiederverwendbarer Projektinhalt, der im Asset Browser gespeichert ist. Es ist wichtig zu erwähnen, dass eine Entity intern auch als Asset betrachtet wird, aber ein Asset ist nicht dasselbe wie eine Entity.
Beispiele:
- Ein Mesh-Asset ist die Modelldaten. Eine Mesh-Entity ist ein Objekt in der Szene, das dieses Mesh-Asset nutzt.
- Ein Material-Asset definiert, wie eine Oberfläche aussieht. Eine Mesh-Entity kann auf dieses Material verweisen.
- Ein Python-Script-Asset enthält Code. Eine Python-Komponente kann dieses Script verwenden.
Diese Trennung ist mächtig, da ein Asset oft mehrfach verwendet werden kann. Wenn zehn Kisten dasselbe Material nutzen, wird durch das Bearbeiten des Material-Assets alles aktualisiert.
Entity Template
Ein Entity Template ist ein wiederverwendbares Entity-Setup. Schau dir den Screenshot unten an. Entity Template Assets sind an einer grünen Linie unter dem Thumbnail gekennzeichnet:

Wenn du von einer anderen Engine kommst, kannst du es dir ähnlich wie eine Prefab vorstellen.
Ein Entity Template kann speichern:
- Eine Entity-Hierarchie.
- Komponenten.
- Komponenteneinstellungen.
- Asset-Verweise.
- Kind-Entities.
Dies ist nützlich für alles, was du wiederverwenden möchtest:
- Gegner.
- Sammelobjekte.
- Türen.
- Requisiten.
- Fahrzeuge.
- UI-Widgets.
- Gameplay-Objekte.
Statt dasselbe Objekt immer wieder neu zu bauen, erstellst du es einmal als Entity Template und platzierst Instanzen davon, wo immer nötig.
Rigid Body
Ein Rigid Body verleiht einer Entity physikalisches Verhalten. Er wird verwendet, wenn ein Objekt Kollision oder physische Bewegung benötigt.
Beispiele:
- Eine Kiste, die den Spieler blockiert.
- Ein Ball, der rollen kann.
- Eine Tür mit Kollision.
- Eine Wand, durch die der Spieler nicht laufen kann.
Rigid Bodies sind Teil des Physik-Systems der Engine. Du wirst sie verwenden, wenn Objekte physikalisch mit der Welt interagieren müssen.
Character Component
Eine Character Component wird für charaktertypische Bewegungen verwendet. Dies unterscheidet sich von einem normalen Rigid Body, da ein Charakter meist spezielles Verhalten benötigt:
- Gehen.
- An Wänden entlangrutschen.
- Umgang mit Steigungen.
- Springen.
- Reagieren auf Spieler-Eingaben.
Für einen Spieler oder NPC ist eine Character Component meist ein besserer Ausgangspunkt, als zu versuchen, ein einfaches Physikobjekt wie einen Charakter zu verhalten.
Wenn wir in Cave von einer Character Component sprechen, meinen wir die Character Physics, nicht spiel-spezifische Logik (wie Bewegung, etc.).
Tags und Properties
Tags und Properties helfen dir, Entities zu identifizieren und zu konfigurieren.
- Ein Tag ist ein Label, das Skripte oder Logik helfen kann, Dinge zu finden und zu kategorisieren.
- Properties sind editierbare Werte, die im Editor sichtbar sind. Sie erlauben es dir, das Verhalten anzupassen, ohne den Code jedes Mal neu schreiben zu müssen.
Beispiel: Ein Gegner könnte Eigenschaften haben wie:
- Gehgeschwindigkeit.
- Lebenspunkte.
- Angriffsreichweite.
- Patrouillen-Ziel.
Guter Einsatz von Properties macht dein Spiel leichter abstimmbar.
Properties sind nicht auf Entities beschränkt: Auch Szenen, Logic Bricks und andere Assets können sie besitzen.
Wenn wir in Cave von Properties sprechen, meinen wir speziell solche Properties, die über Python-Dictionaries im Code zugänglich sind. In der Regel sind sie auch im Editor verfügbar.
Python Component
Eine Python-Komponente erlaubt es einer Entity, Python-Logik auszuführen.
Das ist nützlich, wenn du benutzerdefiniertes Verhalten möchtest, z. B.:
- Eine Tür öffnen.
- Eine Plattform bewegen.
- Spieler-Eingaben verarbeiten.
- Ein Objekt spawnen.
- UI-Text aktualisieren.
- Ereignisse auslösen.
Python-Komponenten sind einer der Hauptwege, Gameplay in Cave zu programmieren.
Python Code Component
Eine Python Code-Komponente wird verwendet, wenn der Code direkt in der Komponente gespeichert wird, anstatt als separates Script-Asset verlinkt zu sein. Dies kann für schnelle Tests, kleine Verhaltensweisen oder Prototypen nützlich sein.
Für größere Gameplay-Systeme ist ein separates Python-Script-Asset in der Regel leichter zu organisieren und wiederzuverwenden.
Logic Brick
Logic Bricks sind eine visuelle Möglichkeit, Logik zu erstellen. Sie sind nützlich, wenn du Verhalten möchtest, ohne direkt Python-Code schreiben zu müssen.
Wenn du Unreal Blueprints kennst, gehören Logic Bricks zu einer ähnlichen Familie von Ideen: die Logik wird visuell verbunden, statt alles als Text zu schreiben.
Sie sind speziell nützlich, um jede Art von Logik zu erstellen, ohne Python-Code zu schreiben. Zum Beispiel Gameplay-Ereignisse und Logik, Objektverhalten, Systeme verbinden, Trigger, usw.
Du wirst sie später in diesem Leitfaden kennenlernen.
Timeline
Eine Timeline ist ein Asset für vorgefertigte Sequenzen. Timelines können Dinge über die Zeit animieren oder auslösen.
Sie sind nützlich für:
- Cutscenes.
- Kamerabewegungen.
- Skriptgesteuerte Ereignisse.
- Koordinierte Gameplay-Sequenzen.
Timelines sind nicht für jedes Spiel erforderlich, aber praktisch, wenn etwas in einer bestimmten Reihenfolge ablaufen soll.
Wichtig: Timelines sind nicht zum Bearbeiten einzelner Animationen gedacht, wie etwa das Bearbeiten eines Walk-Cycle für deinen Charakter. In diesem Fall solltest du spezialisierte DCC-Software wie Blender verwenden und die Animation dann in Cave importieren.
Player und Game Runtime
- Der Cave Editor ist der Ort, an dem du das Projekt erstellst.
- Der Cave Player ist die Runtime, die das Spiel ausführt.
Wenn du im Editor auf Play drückst, führt Cave deine Szene im Spielmodus innerhalb des Editors aus. Wenn du als eigenständige Runtime testest, startet Cave das Spiel in einem separaten Player-Fenster.
Das endgültige exportierte Spiel läuft als Player/Runtime-Build, nicht als Editor. Diese Trennung ist wichtig, da einige Dinge nur im Editor verfügbar sind (damit du dein Projekt debuggen und/oder entwickeln kannst), während andere Teil des eigentlichen Spiels sind.
Die wichtigste Beziehung
Wenn du dir aus dieser Lektion nur eines merken sollst, dann dies:
Eine Scene enthält Entities, Entities enthalten Components, und Components verwenden oft Assets.
Das ist das Rückgrat eines Cave-Projekts.