Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Logik-Blöcke sind das visuelle Skripting-System von Cave.

Sie ermöglichen es Ihnen, Gameplay-Verhalten zu erstellen, indem Sie Knoten verbinden, statt Python-Code direkt zu schreiben.

cave-nocode-b.png

Diese Lektion führt ein, was Logik-Blöcke sind, wo sie sich befinden, wie sie ausgeführt werden und wann Sie sie verwenden sollten. Sie werden das gesamte System in späteren Lektionen eingehender kennenlernen, aber diese Übersicht hilft Ihnen zu verstehen, wo Logik-Blöcke in den Workflow von Cave passen.

Video-Tutorial

Wir haben ein komplettes Video-Tutorial darüber, wie man mit Logik-Blöcken anfängt. Wir empfehlen, dass Sie es sich ansehen.

Auf YouTube ansehen

Das wird ein viel besserer Ansatz sein, um sie eingehend zu lernen.

Aber wenn Sie hier fortfahren möchten, dann lassen Sie uns eine schnelle Einführung machen:


Was sind Logik-Blöcke?

Logik-Blöcke sind visuelle Logik-Grafen, die es Ihnen ermöglichen, Logik schnell visuell zu erstellen, ohne tatsächlich Code zu schreiben.

image.png

Wenn Sie mit anderen visuellen Skripting-Ansätzen wie Unreal Engine's Blueprints vertraut sind, ist jeder Block im Grunde genommen ein Knoten. Aber bei den Namenskonventionen von Cave werden sie Blöcke genannt. Blöcke können viele Arten von Logik darstellen:

  • Ereignisse.
  • Aktionen.
  • Werte.
  • Mathematik.
  • Zeichenfolgen.
  • Engine-Dienstprogramme.
  • Entitätsoperationen.
  • Komponentenoperationen.
  • Asset-Referenzen.
  • Funktionen.

Sie erstellen Verhalten, indem Sie Blöcke miteinander verbinden.

Wenn Sie neu in der Programmierung sind, können Logik-Blöcke eine freundliche Möglichkeit sein, um Interaktionen zu erstellen, da Sie das Verhalten als Graph sehen können.

Zum Beispiel könnte ein einfacher Graph Folgendes bedeuten:

Wenn der Spieler diesen Auslöser berührt:
  Öffne eine Tür.
  Spiele einen Sound ab.
  Deaktiviere den Auslöser.

Eine solche Interaktion ist oft einfacher visuell zu verstehen als als langer Skript, während Sie noch lernen.

Dies ist nicht der vollständige Kurs über Logik-Blöcke

Diese Lektion ist nur eine Übersicht.

Logik-Blöcke können viel tiefer gehen als das:

  • Funktionen.
  • Flusskontrolle.
  • Wert-Sockets.
  • Laufzeit-Debugging.
  • Kommentare.
  • Asset-Handler-Blöcke.
  • Wiederverwendbare Grafen.
  • State-Machine-Integration.

Diese Themen verdienen später fokusierten Unterricht.

Für jetzt ist das Ziel, die Rolle der Logik-Blöcke zu verstehen: Sie sind eine visuelle Möglichkeit, Verhalten zu erstellen, Systeme zu verbinden, Interaktionen zu prototypisieren und Spielobjekte auf Ereignisse reagieren zu lassen.

Wenn Sie ein vollständiges Tutorial zu Logik-Blöcken wünschen, bitte sehen Sie sich dies an.

Logik-Blöcke-Assets

Ein Logik-Blöcke-Graph ist ein Asset. Sie erstellen es im Asset-Browser, genau wie Sie Szenen, Python-Skripte, Zeitachsen, Materialien oder Entitätsvorlagen erstellen.

Da es sich um ein Asset handelt, kann es:

  • Benannt werden.
  • In Ordnern organisiert werden.
  • Im Asset-Browser ausgewählt werden.
  • Im Eigenschaften-Tab bearbeitet werden.

  • Von mehreren Entitäten wiederverwendet werden.

  • Mit dem Projekt gespeichert werden.

Das ist wichtig: Der Graph selbst ist Projektinhalt.

Zum Beispiel könnten Sie ein Tür-Logik-Asset erstellen und es an mehreren Türen verwenden. Später, wenn Sie den Graph verbessern, können diese Türen das aktualisierte Verhalten teilen, je nachdem, wie Sie das wiederverwendbare Setup strukturieren.

Logik-Blöcke-Komponente

Um ein Logik-Blöcke-Asset im Spiel auszuführen, fügen Sie es einer Entität mit einer Logik-Blöcke-Komponente hinzu.

image.png

Die Komponente wählt aus, welches Logik-Blöcke-Asset verwendet werden soll. Zur Laufzeit erstellt die Komponente eine Laufzeitinstanz des Graphen für ihre zugehörige Entität.

Das bedeutet:

  • Das Asset definiert das gemeinsame Verhalten.
  • Jede Entität erhält ihre eigene laufende Instanz.
  • Der gleiche Graph kann von mehreren Entitäten wiederverwendet werden.

Das ist ähnlich, wie ein wiederverwendbares Python-Skript separat auf vielen Entitäten ausgeführt werden kann.

Wiederverwendbare Logik-Blöcke

Logik-Blöcke sind wiederverwendbar, und das ist einer ihrer größten Vorteile.

Zum Beispiel könnten Sie ein Logik-Blöcke-Asset namens Tür öffnen erstellen. Dann könnten mehrere Türentitäten dasselbe Graph verwenden.

Wiederverwendbare Logik funktioniert gut, wenn:

  • Viele Objekte dasselbe Verhalten teilen.
  • Jedes Objekt leicht unterschiedliche lokale Werte benötigt.
  • Sie das Verhalten an einem Ort verbessern möchten.
  • Sie möchten, dass das Projekt organisiert bleibt.

Das ist ähnlich wie:

Wiederverwendbares Asset Wiederverwendet von
Python-Skript Python-Komponenten.
Entitätsvorlage Szeneninstanzen.
Material Mesh-Entitäten.
Logik-Blöcke Logik-Blöcke-Komponenten.

Anstatt denselben Graph an vielen Orten zu kopieren, behalten Sie ein Verhaltensasset bei und konfigurieren jede Entität nach Bedarf.

Logik-Blöcke-Eigenschaften

Logik-Blöcke können Eigenschaften freigeben.

Diese Eigenschaften werden in die Logik-Blöcke-Komponente synchronisiert, wo sie lokal überschrieben werden können.

Zum Beispiel könnte ein wiederverwendbarer Schadensgraph freigeben:

  • Maximaler Gesundheit.
  • Schadensbetrag.
  • Schadensabklingzeit.
  • Ziel-Tag.
  • Ob es das Objekt nach dem Auslösen zerstört.

Dann kann jede Entität, die den Graph verwendet, unterschiedliche Werte haben.

Eine Spike-Falle könnte niedrigen Schaden verursachen, während ein Lava-Volumen dieselbe Logik mit viel höherem Schaden verwenden kann.

Flussereignisse

Logik beginnt normalerweise mit Ereignissen.

Häufige Flussereignisse sind:

Ereignis Wann es ausgeführt wird
On Start Wenn die Logik beginnt.
On First Update Bei der ersten Aktualisierung nach dem Start.
On Update Wiederholt, während das Spiel aktualisiert wird.
On Paused Update Während pausierte Aktualisierungen erlaubt sind.
On Late Update Später im Aktualisierungszyklus.
On End Wenn die Logik endet.

Ereignisse sind die Einstiegspunkte des Graphen.

Ohne ein Ereignis oder einen anderen Auslöser hat der Graph keinen Grund, mit der Arbeit zu beginnen.

Logikfluss

Der Logikfluss bestimmt, was passiert und in welcher Reihenfolge. Fluss-Sockets verbinden Ereignis- und Aktionsblöcke.

Zum Beispiel:

image.png

Das bedeutet, dass die Druckaktion ausgeführt wird, wenn der Graph startet.

Die wichtige Unterscheidung für Anfänger ist:

Verbindungstyp Zweck
Flussverbindungen Definieren, wann Aktionen ausgeführt werden.
Wertverbindungen Stellen Daten für diese Aktionen bereit.

Sobald das in den Kopf kommt, werden Logik-Blöcke viel einfacher zu lesen.

Komplexere Grafen können verzweigen, verzögern, planen, Funktionen aufrufen, Werte lesen, Entitäten ändern und mit Komponenten kommunizieren.

Laufzeit-Debugging

Logik-Blöcke können nützliche Rückmeldungen zur Laufzeit beim Testen anzeigen.

Wenn die zugehörige Entität während des Spielmodus ausgewählt ist, können ausgeführte Blöcke und Links hervorgehoben werden, sodass Sie sehen können, was ausgeführt wurde:

image.png

Laufzeit-Debugging kann helfen, Fragen zu beantworten wie:

  • Wurde das Ereignis ausgeführt?
  • Hat die Bedingung bestanden?
  • Wurde die Aktion ausgeführt?
  • Hat der Graph das richtige Objekt erreicht?
  • Wurde ein Fehler in die Konsole gedruckt?

Wenn eine Tür sich nicht öffnete, hilft dieses Feedback Ihnen zu untersuchen, ob das Triggerereignis ausgeführt wurde, ob die Bedingung bestanden hat und ob die Aktion die Tür erreicht hat.

Wenn Sie einen Logik-Block nach dem Testen des Spiels auswählen, zeigt er auch in der unteren linken Ecke des Bildschirms an, wie oft er ausgeführt wurde und die durchschnittliche Ausführungszeit.

Logik-Blöcke in Zustandsmaschinen

Logik-Blöcke werden nicht nur als eigenständige Komponenten verwendet. Sie können auch innerhalb von Zustandsmaschinen verwendet werden.

Zum Beispiel:

  • Ein Zustand einer Zustandsmaschine kann Logik-Blöcke für sein Verhalten verwenden.
  • Ein Übergang kann Logik-Blöcke für seine Bedingung verwenden.

Zustandsmaschinen werden später erklärt, aber es ist nützlich zu wissen, dass Logik-Blöcke Teil größerer strukturierter Verhaltenssysteme sein können.

Das bedeutet, dass Sie visuelle Logik für einfache Interaktionen und auch für organisierte Verhaltensweisen wie Gegnerzustände verwenden können.

Wann man Logik-Blöcke verwenden sollte

Logik-Blöcke eignen sich gut für:

  • Anfänger, die Gameplay-Logik lernen.
  • Designer, die visuelle Logik bevorzugen.
  • Schnelle Prototypen.
  • Einfache Interaktionen.
  • Trigger.
  • UI-Verhalten.
  • Wiederverwendbare Gameplay-Ereignisse.
  • Systeme miteinander verbinden.

Gute Anfängerbeispiele sind:

  • Eine Druckplatte, die eine Tür öffnet.
  • Ein Pickup, das die Gesundheit erhöht.
  • Ein Trigger, der eine Timeline startet.
  • Eine UI-Schaltfläche, die Szenen ändert.
  • Ein Hazard, das dem Spieler Schaden zufügt.
  • Ein Checkpoint, der eine Position speichert.

Für sehr große oder komplexe Systeme kann Python einfacher zu organisieren sein. Für viele Gameplay-Interaktionen sind Logik-Blöcke schnell, visuell und leicht zu überprüfen.

Eine einfache Regel

Das visuelle Skripting der Kave-Engine hat eine Eins-zu-eins-Übereinstimmung mit der Python-API, was bedeutet, dass jede Funktion, die über Code verfügbar ist, auch über Logik-Blöcke verfügbar sein sollte. Das bedeutet, dass Sie frei wählen können, welche Methode Sie bevorzugen, um die Logik Ihres Spiels zu erstellen. Das bedeutet:

  • Verwenden Sie Logik-Blöcke, wenn Sie das Verhalten als Graph sehen möchten.
  • Verwenden Sie Python, wenn das Verhalten einfacher als Code auszudrücken ist.
  • Sie können auch beides kombinieren!

Beide Ansätze sind Teil von Cave, und viele Projekte verwenden visuelle Logik für einige Systeme und Python für andere.