Skriptsprachen

Diese Lektion gibt Ihnen einen Überblick über die verfügbaren Skriptsprachen in Godot. Sie lernen die Vor- und Nachteile der einzelnen Optionen kennen. Im nächsten Teil werden Sie Ihr erstes Skript mit GDScript schreiben.

Skripte hängen an einem Node und erweitern dessen Verhalten. Das bedeutet, dass Skripte alle Funktionen und Eigenschaften des Nodes erben an das sie angehängt sind.

For example, take a game where a Camera2D node follows a ship. The Camera2D node follows its parent by default. Imagine you want the camera to shake when the player takes damage. As this feature is not built into Godot, you would attach a script to the Camera2D node and code the shake.

../../_images/scripting_camera_shake.gif

Verfügbare Skriptsprachen

Godot offers five gameplay programming languages: GDScript, C#, VisualScript, and, via its GDNative technology, C and C++. There are more community-supported languages, but these are the official ones.

Sie können mehrere Sprachen in einem einzigen Projekt verwenden. In einem Team könnten Sie zum Beispiel die Spiellogik in GDScript programmieren, da es schnell zu schreiben ist, Leveldesigner Quests in der grafischen Sprache VisualScript skripten lassen und C# oder C++ verwenden, um komplexe Algorithmen zu implementieren und ihre Leistung zu maximieren. Oder Sie können alles in GDScript oder C# schreiben. Es ist Ihre Entscheidung.

Wir bieten diese Flexibilität, um den Anforderungen verschiedener Spieleprojekte und Entwickler gerecht zu werden.

Warnung

Godot 4.0 will remove VisualScript from core entirely. As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension.

While Godot 3.x will keep VisualScript supported, we recommend trying out GDScript instead, especially if you intend to migrate your project to Godot 4.

Welche Sprache soll verwendet werden?

Wenn Sie Anfänger sind, empfehlen wir mit GDScript zu beginnen. Wir haben diese Sprache speziell für Godot und die Bedürfnisse von Spieleentwicklern entwickelt. Sie hat eine leichtgewichtige und unkomplizierte Syntax und bietet die engste Integration mit Godot.

../../_images/scripting_gdscript.png

For C#, you will need an external code editor like VSCode or Visual Studio. While C# support is now mature, you will find fewer learning resources for it compared to GDScript. That's why we recommend C# mainly to users who already have experience with the language.

Schauen wir uns die Merkmale jeder Sprache an, sowie ihre Vor- und Nachteile.

GDScript

GDScript ist eine objektorientierte und imperative Programmiersprache für Godot. Sie wurde von und für Spieleentwickler entwickelt, um Ihnen Zeit beim Programmieren von Spielen zu sparen. Seine Funktionen umfassen:

  • Eine einfache Syntax, die zu kurzen Dateien führt.

  • Rasend schnelle Kompilierungs- und Ladezeiten.

  • Enge Editor-Integration mit Code-Vervollständigung für Nodes, Signale und weitere Informationen aus der Szene, an die es angehängt ist.

  • Integrierte Vektor- und Transformations-Typen, die eine effiziente Nutzung der linearen Algebra ermöglichen - ein Muss für Spiele.

  • Supports multiple threads as efficiently as statically typed languages.

  • Keine garbage collection, da dieses Feature bei der Erstellung von Spielen irgendwann im Weg ist. Die Engine zählt Referenzen und verwaltet den Speicher in den meisten Fällen standardmäßig für Sie, aber Sie können den Speicher auch kontrollieren, wenn Sie ihn brauchen.

  • Graduale Typisierung. Variablen haben standardmäßig dynamische Typen, aber Sie können auch Typ-Hinweise für strenge Typ-Prüfungen verwenden.

GDScript sieht aus wie Python, da Sie Ihre Codeblöcke mit Einrückungen strukturieren, aber in der Praxis funktioniert es nicht so. Es ist von mehreren Sprachen inspiriert, darunter Squirrel, Lua und Python.

Bemerkung

Warum verwenden wir nicht direkt Python oder Lua?

Vor Jahren verwendete Godot Python, dann Lua. Die Integration beider Sprachen erforderte eine Menge Arbeit und hatte starke Einschränkungen. Zum Beispiel war die Unterstützung von Threads eine große Herausforderung bei Python.

Die Entwicklung einer eigenen Sprache bedeutet für uns nicht mehr Arbeit und wir können sie auf die Bedürfnisse von Spieleentwicklern zuschneiden. Wir arbeiten jetzt an Leistungsoptimierungen und Funktionen, die mit Sprachen von Drittanbietern nur schwer zu realisieren wären.

.NET / C#

Da Microsofts C# ein Favorit unter Spieleentwicklern ist, unterstützen wir sie offiziell. C# ist eine ausgereifte und flexible Sprache, für die eine Vielzahl von Bibliotheken geschrieben wurde. Dank einer großzügigen Spende von Microsoft konnten wir die Unterstützung für diese Sprache hinzufügen.

../../_images/scripting_csharp.png

C# besitzt einen hervorragenden Kompromiss zwischen Leistung und Benutzerfreundlichkeit, obwohl man sich seines Müllsammlers bewusst sein muss.

Bemerkung

Sie müssen die Mono-Edition des Godot-Editors verwenden, um in C# zu schreiben. Sie können ihn auf der Godot-Website herunterladen .

Da Godot die Mono .NET-Laufzeitumgebung verwendet, können Sie theoretisch jede .NET-Bibliothek oder jedes .NET-Framework eines Drittanbieters in Godot verwenden, ebenso wie jede Common Language Infrastructure-konforme Programmiersprache wie F#, Boo oder ClojureCLR. C# ist jedoch die einzige offiziell unterstützte .NET-Option.

Bemerkung

Der GDScript-Code selbst ist nicht so schnell wie kompilierter C#- oder C++-Code. Allerdings ruft der meiste Skriptcode Funktionen auf, die mit schnellen Algorithmen in C++-Code innerhalb der Engine geschrieben wurden. In vielen Fällen hat das Schreiben von Spiellogik in GDScript, C# oder C++ keine signifikanten Auswirkungen auf die Leistung.

VisualScript

Warnung

Godot 4.0 will remove VisualScript from core entirely. As a result, creating new projects using visual scripting in Godot is not recommended. Future Godot 4.x releases may have VisualScript reimplemented as an extension.

While Godot 3.x will keep VisualScript supported, we recommend trying out GDScript instead, especially if you intend to migrate your project to Godot 4.

Visual Scripting ist eine graphenbasierte visuelle Programmiersprache, bei der man Blöcke miteinander verbindet. Sie kann ein großartiges Werkzeug für Nicht-Programmierer wie Spieldesigner und Künstler sein.

../../_images/scripting_visualscript.png

You can use other languages to create custom blocks that are specific to your game, for example, to script AIs, quests, or dialogues. That's where the strength of VisualScript lies.

Obwohl es alle grundlegenden Bausteine bietet, die Sie benötigen, um komplette Spiele zu programmieren, raten wir davon ab, VisualScript auf diese Weise zu verwenden. Die Programmierung mit VisualScript ist im Vergleich zu anderen Programmiersprachen langsam.

Siehe auch

Weitere Informationen finden Sie unter Einführung in VisualScript.

C und C++ über GDNative

Mit GDNative können Sie Spielcode in C oder C++ schreiben, ohne dass Sie Godot neu kompilieren oder gar neu starten müssen.

../../_images/scripting_cpp.png

Dank unserer internen C-API-Brücke können Sie jede beliebige Version der Sprache verwenden oder Compiler-Marken und -Versionen für die generierten gemeinsamen Bibliotheken mischen.

GDNative is the best choice for performance. You don't need to use it throughout an entire game, as you can write other parts in GDScript, C#, or VisualScript.

Bei der Arbeit mit GDNative ähneln die verfügbaren Typen, Funktionen und Eigenschaften sehr stark der eigentlichen C++-API von Godot.

Zusammenfassung

Skripte sind Dateien mit Code, die Sie an ein Node anhängen, um dessen Funktionalität zu erweitern.

Godot unterstützt fünf offizielle Skriptsprachen und bietet Ihnen damit Flexibilität in Bezug auf Leistung und Benutzerfreundlichkeit.

Sie können Sprachen mischen, um beispielsweise anspruchsvolle Algorithmen mit C oder C++ zu implementieren und den Großteil der Spiellogik mit GDScript oder C# zu schreiben.