Erstellen eines Dialogsystems in Godot mit GDScript
HeimHeim > Blog > Erstellen eines Dialogsystems in Godot mit GDScript

Erstellen eines Dialogsystems in Godot mit GDScript

Jul 06, 2023

Verleihen Sie Ihren Charakteren mit einem ausdrucksstarken Dialogsystem etwas Persönlichkeit und Hintergrund.

Bei der Spieleentwicklung sind fesselndes Gameplay und fesselndes Storytelling der Schlüssel zur Schaffung unvergesslicher Erlebnisse. Ein leistungsstarkes Tool, das Ihnen dabei helfen kann, dies zu erreichen, ist ein Dialogsystem.

Mit einem gut implementierten Dialogsystem können Charaktere kommunizieren, Informationen austauschen und mit dem Spieler interagieren, was Ihrem Spiel Tiefe und Immersion verleiht.

Beginnen Sie damit, die Grundlage für Ihr Spiel zu schaffen. Richten Sie für dieses Beispiel eine einfache 2D-Umgebung mit einem steuerbaren Charakter ein, der sich mithilfe der Pfeiltasten bewegen kann.

Der in diesem Artikel verwendete Code ist in diesem GitHub-Repository verfügbar und kann unter der MIT-Lizenz kostenlos verwendet werden.

Beginnen Sie damit, eine neue Szene für Ihren Spielercharakter zu erstellen. Fügen Sie innerhalb dieser Szene die erforderlichen Komponenten hinzu. Ein ... kreierenCharacterBody2D Knoten, der den Körper des Spielercharakters darstellt. Befestigen einCollisionShape2Dmit rechteckiger Form, um den Kollisionsbereich des Spielers zu definieren.

Fügen Sie nun mithilfe von GDScript die Bewegung der Charaktere und die Interaktion mit Plattformen hinzu. Ersetzen Sie das Standardskript des CharacterBody2D-Knotens durch den folgenden Code:

Dieses Skript ermöglicht es Ihrem Charakter, sich basierend auf den Pfeiltasteneingaben nach links, rechts, oben und unten zu bewegen. Dermove_and_collideDie Funktion stellt sicher, dass der Charakter mit Plattformen interagiert und auf Kollisionen reagiert.

Jetzt können Sie mit der Erstellung des Dialogsystems beginnen. Der erste Schritt besteht darin, ein Dialogfeld hinzuzufügen, das Text anzeigt, wenn Ihr Charakter mit bestimmten Objekten oder NPCs interagiert.

In deinemCharacterBody2DSkript, fügen Sie ein paar weitere Variablen ein, um das Dialogfeld und seinen Inhalt zu verwalten:

DerDialog Boxist für die Anzeige des Dialogtextes verantwortlich, während dieclose_buttonermöglicht es den Spielern, das Dialogfeld bei Bedarf zu schließen.

Im_bereitFunktion, erstellen und initialisieren Sie das Dialogfeld:

Jetzt können Sie sich auf die Anzeige des Textes im Dialogfeld konzentrieren. Sie können den Text über mehr als eine Zeile verteilen und scrollen, sodass jeweils eine Textzeile angezeigt wird.

Ändern Sie Ihre_Physik_ProzessFunktion zur Handhabung der Anzeige von Dialogzeilen:

Dieses Codesegment prüft, ob dieline_timer ist größer als 0. Wenn dies der Fall ist, wird der Timer um den Deltawert verringert. Wenn der Timer nicht aktiv ist und weitere Dialogzeilen angezeigt werden sollen, ruft er den aufshow_next_dialogue_lineFunktion.

Implementieren Sie dieshow_next_dialogue_lineFunktion wie folgt:

Diese Funktion aktualisiert den Text im Dialogfeld mit der aktuellen Dialogzeile und erhöht denaktuelle_Zeile Index. Derline_timerstellt sicher, dass jede Zeile für einen kurzen Zeitraum angezeigt wird, bevor zur nächsten Zeile übergegangen wird.

Jetzt können Sie den Spielern die Möglichkeit geben, das Dialogfeld zu schließen und das Spiel fortzusetzen. Tun Sie dies mit einer Schaltfläche zum Schließen, die beim Drücken das Dialogfeld ausblendet und es dem Spieler ermöglicht, seine Reise fortzusetzen.

Ändern Sie zunächst die_bereitFunktion zum Erstellen einer Schließen-Schaltfläche und zum Anhängen ihrer Funktionalität.

Dieser Code erstellt eine Instanz vonTaste Klasse und passt deren Aussehen und Position an. Es verbindet auch diegedrücktSignal an die_on_close_button_pressedFunktion.

Implementieren Sie nun das_on_close_button_pressed Funktion. Stellen Sie in dieser Funktion die Sichtbarkeit sowohl des Dialogfelds als auch der Schaltfläche zum Schließen auf einFALSCH . Dadurch wird die Dialogoberfläche effektiv vor dem Player verborgen.

Denken Sie daran, das zurückzusetzenaktuelle_Zeileindex auf 0, um sicherzustellen, dass der Dialog von vorne beginnt, wenn der Spieler das nächste Mal eine Konversation initiiert:

Mit diesen Änderungen können Spieler an Dialogen teilnehmen und das Dialogfeld schließen, wenn sie bereit sind, die Spielwelt weiter zu erkunden oder mit ihr zu interagieren.

Während Sie Ihr Dialogsystem weiterentwickeln und verfeinern, können Sie durch die Berücksichtigung der folgenden Best Practices sicherstellen, dass Ihr System das Storytelling Ihres Spiels und die Spielereinbindung in vollem Umfang verbessert.

Behalten Sie in Ihrem gesamten Dialogsystem einen einheitlichen Ton, Schreibstil und Vokabular bei. Konsistenz hilft den Spielern, sich mit den Charakteren und der Spielwelt zu verbinden und so ein nahtloses und immersives Erlebnis zu schaffen.

Jeder Charakter sollte eine eigene Stimme und Persönlichkeit haben, die sich in seinen Dialogen widerspiegelt. Berücksichtigen Sie beim Schreiben ihrer Zeilen ihren Hintergrund, ihre Motivationen und Emotionen.

Diese Differenzierung verleiht Ihren Charakteren Tiefe und macht Interaktionen einprägsamer. Sie können in Godot ganz einfach verschiedene Sounds für verschiedene Charaktere hinzufügen.

Entwerfen Sie Dialogentscheidungen, die sinnvolle Konsequenzen haben. Entscheidungen, die sich auf die Erzählung, die Beziehungen oder sogar die Spielmechanik des Spiels auswirken, ermutigen die Spieler, sich auf das Dialogsystem einzulassen und emotional in ihre Entscheidungen einzusteigen.

Testen Sie Ihre Dialogsequenzen gründlich, um Tippfehler, Grammatikfehler oder Tempoprobleme zu erkennen. Nehmen Sie an Spieltests teil, um Feedback von Spielern zu sammeln und notwendige Anpassungen vorzunehmen, um sicherzustellen, dass das Dialogsystem reibungslos funktioniert und das gesamte Spielerlebnis verbessert.

Stellen Sie sicher, dass Design und Präsentation des Dialogsystems zum gesamten Design der Benutzeroberfläche (UI) Ihres Spiels passen. Konsistente UI-Elemente, Schriftarten und Farben schaffen ein zusammenhängendes visuelles Erlebnis, das zum Eintauchen in das Spiel beiträgt.

Indem Sie diese Best Practices befolgen, können Sie ein Dialogsystem erstellen, das nicht nur die Erzählung Ihres Spiels verbessert, sondern auch ein unvergessliches und immersives Erlebnis für die Spieler schafft.

Die Integration eines Dialogsystems in Ihre Godot-Spiele kann das Engagement der Spieler verbessern und Ihr Geschichtenerzählen revolutionieren. Indem Sie es den Charakteren ermöglichen, zu kommunizieren, Emotionen auszudrücken und auf Spielerentscheidungen zu reagieren, schaffen Sie eine immersivere und interaktivere Spielwelt.

Mit der benutzerfreundlichen Umgebung von Godot und der Leistungsfähigkeit von GDScript verfügen Sie über die Werkzeuge, um überzeugende Dialogsysteme zu erstellen, die Spieler in Ihre Erzählung einbeziehen und ihr gesamtes Spielerlebnis verbessern.

Imran ist Autor bei MUO mit 3 Jahren Erfahrung im Schreiben technischer Inhalte. Er hat auch als Full-Stack-Entwickler mit vielen Startups zusammengearbeitet. Er schreibt leidenschaftlich gerne und hilft anderen dabei, etwas über Technologie zu lernen. In seiner Freizeit erforscht er gerne neue Programmiersprachen.

CharacterBody2DCollisionShape2Dmove_and_collideCharacterBody2DDialog Boxclose_button_bereit_Physik_Prozessline_timershow_next_dialogue_lineshow_next_dialogue_lineaktuelle_Zeileline_timer_bereitTastegedrückt_on_close_button_pressed_on_close_button_pressedFALSCHaktuelle_Zeile