Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Häufig gestellte Fragen

Was kann ich mit Godot machen? Wie viel kostet es? Wie lauten die Lizenzbedingungen?

Godot ist freie und quelloffene Software, die unter der von der OSI genehmigten MIT-Lizenz verfügbar ist. Das bedeutet, dass sie frei ist, sowohl im Sinne von „freier Rede“ als auch von „Freibier.“

Zusammengefasst:

  • Sie können Godot frei herunterladen und für jeden Zweck verwenden: persönlich, gemeinnützig, kommerziell oder sonstiges.

  • Es steht Ihnen frei, Godot nach Herzenslust zu verändern, neu zu veröffentlichen, weiterzugeben und zu remixen, und zwar aus jedem beliebigen Grund, sowohl nichtkommerziell als auch kommerziell.

Der gesamte Inhalt dieser Begleitdokumentation wird unter der Creative Commons Attribution 3.0 (CC BY 3.0) Lizenz veröffentlicht, mit der Namensnennung „Juan Linietsky, Ariel Manzur and the Godot Engine community.“

Für Logos und Icons gilt generell die gleiche „Creative Commons“-Lizenz. Beachten Sie jedoch, dass manche Bibliotheken von Drittanbietern, die im Quellcode Godots enthalten sind, abweichende Lizenzen enthalten können.

Für alle Details siehe die Dateien COPYRIGHT.txt und LICENSE.txt, sowie LOGO_LICENSE.txt im Godot-Repository.

Siehe auch Hinweise zur Lizenz auf der Godot-Webseite.

Welche Plattformen werden von Godot unterstützt?

Vom Editor unterstützt:

  • Windows

  • macOS

  • Linux, *BSD

  • Android (experimentell)

  • Web (experimentell)

Für das Exportieren von Spielen:

  • Windows

  • macOS

  • Linux, *BSD

  • Android

  • iOS

  • Web

Wo es sinnvoll ist, werden sowohl 32- als auch 64-Bit-Binärdateien unterstützt, wobei 64 der Default ist. Offizielle macOS-Builds unterstützen sowohl Apple Silicon nativ als auch x86_64 .

Einige Nutzer berichten, dass sie Godot auch auf ARM-basierten Linux-Systemen, wie dem Raspberry Pi, erfolgreich kompilieren und benutzen konnten.

Das Godot-Team kann aufgrund der von den Konsolenherstellern auferlegten Lizenzbedingungen keinen Open-Source-Export für Konsolen anbieten. Unabhängig davon, welche Engine Sie verwenden, ist die Veröffentlichung von Spielen auf Konsolen jedoch immer mit viel Arbeit verbunden. Sie können mehr über Konsolenunterstützung in Godot lesen.

Mehr dazu in den Abschnitten Exportieren und Godot kompilieren.

Bemerkung

Godot 3 bot auch Unterstützung für die Universal Windows Platform (UWP). Diese Plattform-Portierung wurde in Godot 4 aufgrund mangelnder Wartung entfernt, und sie wird auch von Microsoft nicht weiter unterstützt. Sie ist im aktuellen stable Release von Godot 3 für interessierte Benutzer weiterhin verfügbar.

Welche Programmiersprachen werden in Godot unterstützt?

Die offiziell unterstützten Sprachen für Godot sind GDScript, C# und C++. Siehe die Unterkategorien für jede Sprache im Abschnitt Skripting.

Wenn Sie gerade beginnen, sich mit Godot oder generell Spieleentwicklung zu befassen, empfehlen wir GDScript zu lernen und zu nutzen, da es nativ von Godot unterstützt wird. Skriptsprachen sind insgesamt weniger performant als Lower-Level Sprachen wie C oder Rust, aber zum Schreiben von Prototypen, Minimal-Viable-Products (MVPs) und bezogen auf die Time-To-Market (TTM), bietet GDScript einen schnellen, nutzerfreundlichen und mächtigen Weg, Spiele zu entwickeln.

Beachten Sie, dass die C#-Unterstützung noch relativ neu ist und Sie daher auf dem Weg dorthin auf einige Probleme stoßen können. Die C#-Unterstützung fehlt derzeit auch für die Web-Plattform. Unsere freundliche und fleißige Entwickler-Community ist immer bereit, neue Probleme zu lösen, sobald sie auftauchen. Da es sich jedoch um ein Open-Source-Projekt handelt, empfehlen wir Ihnen, zunächst selbst einige Nachforschungen anzustellen. Das Durchsuchen von Diskussionen zu offenen Issues ist ein guter Weg, um mit der Fehlersuche zu beginnen.

Was neue Sprachen betrifft, so ist die Unterstützung durch Dritte mit GDExtensions möglich. (Siehe die Frage zu Plugins weiter unten). Derzeit wird zum Beispiel an inoffiziellen Bindings für Godot an Python und Nim gearbeitet.

Was ist GDScript und warum sollte ich es verwenden?

GDScript ist die integrierte Skriptsprache von Godot. Sie wurde von Grund auf entwickelt, um das Potenzial von Godot mit möglichst wenig Code zu maximieren und es sowohl Anfängern als auch erfahrenen Entwicklern zu ermöglichen, die Stärken von Godot so schnell wie möglich zu nutzen. Wenn Sie schon einmal etwas in einer Sprache wie Python geschrieben haben, werden Sie sich sofort zu Hause fühlen. Beispiele und einen vollständigen Überblick über die Möglichkeiten, die Ihnen GDScript bietet, finden Sie in der GDScript Skripting-Anleitung.

Es gibt mehrere Gründe, GDScript zu verwenden, insbesondere wenn Sie Prototypen erstellen, sich in der Alpha-/Beta-Phase Ihres Projekts befinden oder nicht gerade den nächsten AAA-Titel entwickeln. Der hervorstechendste Grund ist die allgemeine Reduzierung der Komplexität.

Es gab ursprünglich zwei Gründe, eine eng integrierte, benutzerdefinierte Skriptsprache für Godot zu entwickeln: Erstens erlaubt sie, sich schneller mit Godot vertraut zu machen, und gibt damit Entwicklern die Gelegenheit, schnell produktiv zu werden; Zweitens verringert sie die allgemeine Wartungslast, reduziert die Dimensionalität von Problemen und ermöglicht es den Entwicklern der Engine, sich auf Fehlerbehebung und Verbesserung von Engine-Kernfeatures zu konzentrieren, anstatt viel Zeit damit zu verbringen, kleinere inkrementelle Features über eine Vielzahl von Sprachen hinweg zum Laufen zu bringen.

Da es sich bei Godot um ein Open-Source-Projekt handelt, war es von Anfang an unumgänglich, einem stärker integrierten und nahtlosen Erlebnis den Vorrang vor der Gewinnung zusätzlicher Nutzer durch die Unterstützung vertrauterer Programmiersprachen zu geben, insbesondere wenn die Unterstützung dieser vertrauten Sprachen zu einem schlechteren Erlebnis führen würde. Wir verstehen, wenn Sie lieber eine andere Sprache in Godot verwenden möchten (siehe die Liste der unterstützten Optionen oben). Wenn Sie GDScript jedoch noch nicht ausprobiert haben, sollten Sie es drei Tage lang testen. Sobald Sie sehen, wie leistungsfähig es ist und wie sehr es Ihre Entwicklung beschleunigt, glauben wir, dass GDScript Ihnen genau wie Godot ans Herz wachsen wird.

Weitere Informationen, um sich mit GDScript bzw. dynamisch typisierten Sprachen vertraut zu machen, finden Sie im Tutorial GDScript: Eine Einführung in dynamische Programmiersprachen.

Was war die Motivation, GDScript zu entwickeln?

Anfänglich nutzte die Engine noch Lua als Skriptsprache. Lua ist schnell dank LuaJIT, aber die Sprachanbindung an ein objektorientiertes System zu erstellen (durch Verwendung von Fallbacks) war komplex, langsam und verlangte nach enorm viel Code. Nach einigen Experimenten mit Python stellte sich auch diese Sprache als schwierig einzubetten heraus.

Die Hauptgründe, eine eigene Skriptsprache für Godot zu entwickeln, waren:

  1. Schlechte Threading-Unterstützung in den meisten Skript-VMs, und Godot nutzt Threads (Lua, Python, Squirrel, JavaScript, ActionScript, etc.).

  2. Schlechte Unterstützung für Klassenerweiterung in den meisten Skript-VMs, und die Anpassung an die Funktionsweise von Godot ist sehr ineffizient (Lua, Python, JavaScript).

  3. Viele bestehende Sprachen haben ineffiziente Schnittstellen zur Anbindung an C++, was zu einer großen Menge Code, Bugs, Bottlenecks und allgemeiner Ineffizienz führt (Lua, Python, Squirrel, JavaScript, etc.). Wir wollten uns auf eine großartige Engine konzentrieren, nicht auf eine große Anzahl von Skriptsprachen.

  4. Keine nativen Vektor-Typen (vector3, Transform3D, usw.), was eine stark reduzierte Performance zur Folge hat, wenn eigene Objekttypen genutzt werden (Lua, Python, Squirrel, JavaScript, ActionScript, etc.).

  5. Der Garbage Collector führt zu Verzögerungen oder unnötig viel Speicherbelegung (Lua, Python, JavaScript, ActionScript, etc.).

  6. Schwierigkeiten bei der Integration in den Code-Editor zur Code-Vervollständigung, Live-Bearbeitung, etc. (alle davon).

GDScript wurde entworfen, um diese und weitere Probleme zu umgehen.

Welche Arten von 3D-Modellformaten unterstützt Godot?

Ausführliche Informationen zu den unterstützten Formaten, zum Export aus Ihrer 3D-Modellierungssoftware und zum Import für Godot finden Sie in der Dokumentation 3D-Szenen importieren.

Wird ein proprietäres SDK à la FMOD, GameWorks, etc. in Godot unterstützt werden?

Das Ziel von Godot ist es, eine freie und quelloffene, MIT-lizensierte Engine zu entwickeln, die modular und erweiterbar ist. Es gibt keine Pläne der Kernengine-Entwickler-Community, irgendwelche proprietären SDKs einzubinden, da dies dem Ethos Godots widersprechen würde.

Da Godot allerdings quelloffen und modular ist, hindert Sie nichts daran, diese Bibliotheken als Module hinzuzufügen und Ihr Spiel mit ihnen zu vertreiben - sei es als Open Source oder als proprietäre Software.

Wie die Implementierung für Ihr gewünschtes SDK doch umgesetzt werden könnte, erfahren Sie bei der Frage zu Plugins weiter unten im Text.

Wenn Ihnen ein nützliches SDK bekannt ist, das noch nicht von Godot unterstützt wird, aber eine freie und quelloffene Integration erlaubt, können Sie gern selbst an einer Integration arbeiten. Godot gehört nicht einer Person; es gehört der Community und wächst mit ambitionierten Mitwirkenden aus der Community wie Ihnen.

Wie kann ich Godot erweitern?

Um Godot zu erweitern, zum Beispiel durch das Erstellen von Godot-Editor-Plugins oder die Unterstützung weiterer Sprachen, siehe Plugins und die Tool-Skripte.

Siehe auch die offiziellen Blogeinträge zum Thema GDExtension, eine Möglichkeit, native Erweiterungen für Godot zu entwickeln (auf Englisch):

Sie können auch einen Blick auf die GDScript-Implementierung, die Godot-Module und die Integration der Jolt-Physik-Engine für Godot werfen. Dies wäre ein guter Ausgangspunkt, um zu sehen, wie sich eine andere Drittanbieter-Bibliothek in Godot integriert.

Wie installiere ich den Godot Editor (für Desktop-Integration) auf meinem System?

Da Godot für die Ausführung nicht unbedingt auf dem eigenen System installiert werden muss, bedeutet es, dass die Desktop-Integration nicht automatisch passiert. Es gibt zwei Wege, das zu trotzdem erreichen. Sie können Godot von Steam (alle Plattformen), Scoop (Windows), Homebrew (macOS) oder Flathub (Linux) installieren. Dies wird automatisch die benötigten Schritte für eine Desktop-Integration ausführen.

Alternativ können Sie die Schritte, die ein Installationsprogramm für Sie erledigen würde, auch manuell durchführen:

Windows

  • Verschieben Sie die ausführbare Godot-Datei an einen dauerhaften Speicherort (z.B. außerhalb des Downloads-Ordners), damit Sie sie nicht aus Versehen verschieben und die Verknüpfung in Zukunft nicht mehr funktioniert.

  • Klicken Sie mit der rechten Maustaste auf die ausführbare Godot-Datei und wählen Sie Verknüpfung erstellen.

  • Verschieben Sie die erstellte Verknüpfung nach %APPDATA%\Microsoft\Windows\Start Menu\Programs. Dies ist der benutzerweite Speicherort für Verknüpfungen, die im Startmenü angezeigt werden. Sie können Godot auch an die Taskleiste anheften, indem Sie mit der rechten Maustaste auf die ausführbare Datei klicken und An Taskleiste anheften wählen.

macOS

Ziehen Sie die extrahierte Godot-Anwendung nach /Applications/Godot.app, dann ziehen Sie sie in das Dock, falls gewünscht. Spotlight wird in der Lage sein, Godot zu finden, solange es sich in /Applications oder ~/Applications befindet.

Linux

  • Verschieben Sie die ausführbare Godot-Datei an einen dauerhaften Speicherort (z.B. außerhalb des Downloads-Ordners), damit Sie sie nicht aus Versehen verschieben, wodurch die Verknüpfung in Zukunft nicht mehr funktionieren würde.

  • Benennen Sie die Godot-Anwendung um und verschieben Sie sie an einen Ort, der in Ihrer PATH Umgebungsvariablen enthalten ist. Dies ist normalerweise /usr/local/bin/godot oder /usr/bin/godot. Dazu sind zwar Administratorrechte erforderlich, aber damit können Sie auch den Godot-Editor von einem Terminal aus starten, indem Sie godot eingeben.

    • Wenn Sie die Godot-Editor-Anwendung nicht an einen geschützten Ort verschieben können, ist es auch möglich, die Binärdatei irgendwo in Ihrem Home-Verzeichnis aufzubewahren und die Zeile Path= in der unten verlinkten Datei .desktop so zu ändern, dass sie den vollständigen absoluten Pfad zur Godot-Anwendung enthält.

  • Speichern Sie diese .desktop-Datei unter $HOME/.local/share/applications/. Wenn Sie über Administratorrechte verfügen, können Sie die .desktop-Datei auch unter /usr/local/share/applications speichern, damit die Verknüpfung für alle Benutzer verfügbar ist.

Ist der Godot-Editor eine portable Anwendung?

In seiner Default-Konfiguration ist Godot halbportabel. Seine ausführbare Datei kann von jedem Ort aus ausgeführt werden (auch von nicht beschreibbaren Orten) und erfordert keine Administratorrechte.

Die Konfigurationsdateien werden jedoch in das benutzerweite Konfigurations- oder Datenverzeichnis geschrieben. Dies ist in der Regel ein guter Ansatz, aber das bedeutet, dass Konfigurationsdateien nicht auf andere Rechner übertragen werden, wenn Sie den Ordner mit der ausführbaren Godot-Datei kopieren. Siehe Dateipfade in Godot-Projekten für weitere Informationen.

Wenn ein echter portabler Betrieb gewünscht ist (z.B. für die Verwendung auf einem USB-Stick), folgen Sie den Schritten in Portabler Modus.

Warum verwendet Godot Vulkan oder OpenGL anstelle von Direct3D?

Godot strebt in erster Linie plattformübergreifende Kompatibilität und offene Standards an. OpenGL und Vulkan sind die Technologien, die sowohl offen als auch (fast) auf allen Plattformen verfügbar sind. Dank dieser Designentscheidung wird ein mit Godot unter Windows entwickeltes Projekt auch unter Linux, MacOS und anderen Systemen sofort einsatzbereit sein.

Da am Godot-Renderer nur wenige Leute arbeiten, würden wir es bevorzugen, weniger Renderer zu unterstützen. Darüber hinaus bietet eine einzelne, verwendete API auf allen Platformen eine höhere Konsistenz und weniger plattformspezifische Probleme.

Auf lange Sicht könnten wir einen Direct3D 12-Renderer für Godot entwickeln (vor allem für die Xbox), doch Vulkan und OpenGL werden die Default-Renderer auf allen Plattformen bleiben, auch auf Windows.

Warum ist die Godot Engine darauf aus, ihren Feature-Umfang klein zu halten?

Godot beinhaltet bewusst keine Features, die als Add-On implementiert werden können, es sei denn, sie werden häufig genutzt. Ein Beispiel für etwas, das nicht oft verwendet wird, sind moderne KI-Funktionen.

Dafür gibt es mehrere Gründe:

  • Wartung und Fehlersuche. Jedes Mal, wenn neuer Code ins Godot Repository aufgenommen wird, übernehmen die bestehenden Entwickler oft die Aufgabe ihn zu warten. Einige Autoren beteiligen sich nicht mehr nach dem Merge der eingebrachten Codestellen, wodurch die Wartung dieser Stelle erschwert wird. Dies kann zu schlecht gepflegten Features mit Fehlern führen, die nie behoben werden. Zusätzlich wächst dadurch die API, welche weiterhin getested und auf Regressionen geprüft werden muss.

  • Einfacheres Mitwirken. Wenn der Code klein und übersichtlich bleibt, geht es schneller und leichter, den Code zu kompilieren. Das macht es einfacher für neue Entwickler, mit Godot zu starten, ohne High-end Hardware kaufen zu müssen.

  • Es hält die Dateigröße des Editors klein. Nicht jeder besitzt eine schnelle Internetverbindung. Dadurch, dass jeder den Godot-Editor herunterladen, entpacken und in weniger als 5 Minuten ausführen kann, wird Godot für Entwickler in allen Ländern leichter zugänglich.

  • Es hält die Größe der Dateien für Exportvorlagen klein. Dies hat direkten Einfluss auf die Größe von Projekten, die mit Godot exportiert werden. Auf mobilen und Web-Plattformen ist eine geringe Dateigröße von großer Bedeutung, um eine schnelle Installation und ein schnelles Laden auf leistungsschwachen Geräten zu ermöglichen. Auch hier gilt, dass es viele Länder gibt, in denen Hochgeschwindigkeits-Internet nicht ohne weiteres verfügbar ist. Hinzu kommt, dass in diesen Ländern oft strenge Datennutzungsobergrenzen gelten.

Aus all den oben genannten Gründen müssen wir selektiv auswählen, was wir als Kernfunktionalität in Godot akzeptieren können. Aus diesem Grund möchten wir einige Kernfunktionen in zukünftigen Versionen von Godot auf offiziell unterstützte Add-Ons übertragen. In Bezug auf die Dateigröße hat das auch den Vorteil, dass man nur die wirklich benötigten Features mit im finalen Export hat. So kann die Größe des Export minimiert werden. (In der Zwischenzeit ist es auch möglich benutzerdefinierte Exportvorlagen mit deaktivierten nicht verwendeten Features zu kompilieren , um die Verteilungsgröße Ihres Projekts zu optimieren.)

Wie sollten Assets für einen optimalen Umgang mit unterschiedlichen Bildschirmauflösungen und Seitenverhältnissen angelegt werden?

Diese Frage kommt häufig auf und rührt wahrscheinlich von einem durch Apple entstandenen Missverständnisses, als sie damit begannen, eine Verdoppelung der Größe ihrer Bildschirmauflösungen vorzunehmen. Es ließ die Leute in dem Glauben, Assets in verschiedenen Größen bereitzustellen sei eine gute Idee, und so fand diese Praxis immer häufiger Einzug bei Entwicklern. Dies klappte jedoch nur bis zu einem gewissen Grad und ausschließlich für Apple-Geräte, jedoch nicht für Android- und spätere Apple-Produkte, die mit einer deutlich größeren Bandbreite neuer Bildschirmgrößen und DPIs ausgestattet waren.

Der eleganteste Weg, dies zu erreichen, ist eine Basisauflösung für das Spiel zu verwenden und anschließend lediglich mit verschiedenen Bildschirm-Größenverhältnissen umzugehen. Dies wird am meisten für 2D benötigt, denn in 3D ist es im Wesentlichen nur eine Frage der vertikalen und horizontalen FOV-Werte der Kamera .

  1. Wählen Sie eine einfache Basisauflösung für Ihr Spiel. Selbst zwischen Geräten, die über eine Auflösung von 1440p hinausgehen und denen, die nur eine Auflösung von unter 400p unterstützen, erledigt das standardisierte, hardwarebasierte Skalieren in Ihrem Gerät die Arbeit mit minimalen oder ohne Performanceeinbußen. Die gängigsten Auflösungen sind 1080p (1920x1080) oder 720p (1280x720). Beachten Sie jedoch, dass je höher die Auflösung und die Assets sind, desto mehr Arbeitsspeicher wird das Gerät benötigen und desto länger wird es dauern, bis das Spiel fertig geladen ist.

  2. Benutzen Sie die Stretch-Optionen in Godot. Am besten funktioniert Canvas-Element-Stretching, wenn das Seitenverhältnis gleich bleibt. Siehe das Tutorial zu Mehrere Auflösungen, um dies zu erreichen.

  3. Setzen Sie eine minimale Auflösung und entscheiden dann, ob das Spiel bei unterschiedlichen Seitenverhältnissen horizontal oder vertikal gestreckt werden soll, oder ob um eine feste Auflösung herum schwarze Balken gezeichnet werden sollen. Das wird auch in Mehrere Auflösungen erklärt.

  4. Für Benutzeroberflächen verwenden Sie die Verankerung, um zu bestimmen, wo Steuerelemente bleiben und sich bewegen sollen. Wenn die Benutzeroberflächen komplexer sind, sollten Sie sich mit Containern vertraut machen.

Und das war's! Das Spiel dürfte nun in mehreren Auflösungen funktionieren.

Wann erscheint die nächste Godot-Version?

Wenn sie fertig ist! Siehe Wann erscheint das nächste Godot-Release? für weitere Informationen.

Welche Godot-Version sollte ich für ein neues Projekt verwenden?

Wir empfehlen die Nutzung von Godot 4.x für neue Projekte, aber je nach den benötigten Features kann es besser sein, stattdessen Godot 3.x zu verwenden. Siehe Welche Version sollte ich für ein neues Projekt verwenden? für weitere Informationen .

Sollte ich mein Projekt aktualisieren, um neue Godot-Versionen zu verwenden?

Bei einigen neuen Versionen ist ein Upgrade sicherer als bei anderen. Im Allgemeinen hängt es von den Umständen Ihres Projekts ab, ob Sie ein Upgrade durchführen sollten. Siehe Sollte ich mein Projekt aktualisieren, um neue Engine-Versionen zu verwenden? für weitere Informationen.

Ich würde gerne etwas beitragen! Wie kann ich anfangen?

Super! Als Open Source-Projekt lebt Godot von den Ambitionen und Ideen von Entwicklern wie Ihnen.

Der beste Weg, einen Beitrag zu Godot zu leisten, besteht darin, Godot zu benutzen und alle Probleme unter https://github.com/godotengine/godot/issues zu melden, die bei Ihnen unter Umständen auftreten. Ein guter Fehlerbericht mit klaren Reproduktionsschritten hilft Ihren Mitstreitern, Fehler schnell und effizient zu beheben. Sie können auch Probleme melden, die Sie in der Online-Dokumentation finden.

Wenn Sie sich bereit fühlen, Ihren ersten PR einzureichen, suchen Sie sich eine Issue, die Sie anspricht, unter einem der oben genannten Links aus und versuchen Sie, sie zu beheben. Sie werden lernen müssen, wie man die Engine aus dem Quellcode kompiliert oder wie man die Dokumentation erstellt. Sie müssen sich auch mit Git vertraut machen, einem Versionskontrollsystem, das Godot-Entwickler verwenden.

Wir erklären in unserer Dokumentation für Mitwirkende, wie man mit dem Quellcode der Engine arbeitet, wie man die Dokumentation bearbeitet und welche anderen Möglichkeiten es gibt, einen Beitrag zu leisten.

Ich habe eine tolle Idee für Godot. Wie kann ich sie teilen?

Wir sind immer auf der Suche nach Vorschlägen, wie wir die Engine verbessern können. Das Feedback der Nutzer ist die treibende Kraft hinter unserem Entscheidungsprozess, und Einschränkungen, auf die Sie bei der Arbeit an Ihrem Projekt stoßen könnten, sind ein großartiger Datenpunkt für uns, wenn wir über Verbesserungen der Engine nachdenken.

Wenn Sie ein Problem mit der Benutzerfreundlichkeit haben oder ein Feature in der aktuellen Version von Godot vermissen, diskutieren Sie es zunächst mit unserer Community https://godotengine.org/community/. Vielleicht gibt es andere, bessere Möglichkeiten, das gewünschte Ergebnis zu erreichen, die Mitglieder der Community vorschlagen könnten. Und Sie können erfahren, ob andere Benutzer das gleiche Problem haben, und gemeinsam eine gute Lösung finden.

Wenn Sie eine gut definierte Idee für die Engine haben, können Sie einen Vorschlag einreichen. Versuchen Sie, Ihr Problem und Ihren Lösungsvorschlag spezifisch und konkret zu beschreiben - nur umsetzbare Vorschläge können berücksichtigt werden. Sie müssen nicht, aber wenn Sie es selbst umsetzen wollen, ist dies immer willkommen!

Wenn Sie nur eine allgemeine Idee ohne spezifische Details haben, können Sie eine Vorschlagsdiskussion eröffnen. Diese Vorschläge könnten alles sein, was immer Sie wollen, und erlauben eine freie Diskussion auf der Suche nach einer Lösung. Sobald Sie eine Lösung gefunden haben, kann ein Vorschlagsthema eröffnet werden.

Bitte lesen Sie das Readme-Dokument, bevor Sie einen Vorschlag erstellen, um mehr über den Prozess zu erfahren.

Ist es möglich mit Godot Anwendungen zu entwickeln die keine Spiel sind?

Ja! Godot beinhaltet ein umfangreiches integriertes UI-System. Die geringe Distributions-Größe von Godot kann es zu einer geeigneten Alternative zu Frameworks wie Electron oder Qt machen.

Wenn Sie eine „nicht-Spiele“-Applikation entwickeln, stellen Sie sicher, dass Sie Prozessorenergiesparmodus in den Projekt-Einstellungen einschalten um die CPU- und GPU-Belastung zu verringern.

Besuchen Sie Material Maker und Pixelorama für Beispiele von Open Source-Anwendungen, die mit Godot erstellt wurden.

Ist es möglich Godot als Bibliothek zu nutzen?

Godot ist für die Verwendung in seinem eigenen Bearbeitungsprogramm gedacht. Wir empfehlen diesen auszuprobieren, da er Ihnen wahrscheinlich langfristig viel Zeit sparen wird. Es gibt keine Pläne, Godot als Bibliothek nutzbar zu machen, da es den Rest der Engine komplizierter und somit für normale Benutzer schwieriger verwendbar machen würde.

Wenn Sie eine Render-Bibliothek nutzen möchten, sollten Sie hierfür eine etablierte Render-Engine verwenden. Beachten Sie dabei, dass diese meist kleinere Benutzergruppen als Godot haben, was es schwieriger macht, Antworten auf Ihre Fragen zu finden.

Welches UI-Toolkit nutzt Godot?

Godot nutzt kein Standard GUI Toolkit wie GTK, Qt oder wxWidgets. Stattdessen nutzt Godot sein eigenes UI-Toolkit welches mit Open GL oder Vulcan gerendert wird. Dieses Toolkit wird in Form von Control-Nodes dargestellt, welche verwendet werden, um den Editor zu rendern (welcher in C++ geschrieben wurde). Diese Control-Nodes können ebenfalls in Projekten von jeder durch Godot unterstützten Skriptsprache aus verwendet werden.

Dieses benutzerdefinierte Toolkit ermöglicht es, die Vorteile der Hardwarebeschleunigung zu nutzen und ein einheitliches Erscheinungsbild auf allen Plattformen zu erzielen. Außerdem muss es sich nicht mit den Vorbehalten der LGPL-Lizenzierung auseinandersetzen, die mit GTK oder Qt einhergehen. Schließlich bedeutet dies, dass Godot "sein eigenes Hundefutter isst" (Dogfooding), da der Editor selbst einer der komplexesten Benutzer von Godots UI-System ist.

Dieses eigene UI-Toolkit kann nicht als lib verwendet werden, aber Sie können immer noch Godot für „für nicht Spiele“-Apps verwenden, indem Sie den Editor nutzen.

Warum verwendet Godot das SCons Buildsystem?

Godot verwendet das SCons Buildsystem. Es gibt keine Pläne, in naher Zukunft auf ein anderes Buildsystem zu wechseln. Es gibt viele Gründe, warum wir SCons gegenüber anderen Alternativen gewählt haben. Zum Beispiel:

  • Godot kann für ein Dutzend verschiedener Plattformen kompiliert werden: alle PC-Plattformen, alle mobilen Plattformen, viele Konsolen und WebAssembly.

  • Entwickler müssen oft für mehrere Plattformen zur gleichen Zeit kompilieren, oder sogar für verschiedene Targets derselben Plattform. Sie können es sich nicht leisten, das Projekt jedes Mal neu zu konfigurieren und neu zu erstellen. Mit SCons ist dies problemlos möglich, ohne die Builds zu zerstören.

  • SCons wird nie einen Build zerstören, egal wie viele Änderungen, Konfigurationen, Hinzufügungen, Entfernungen usw. verwendet weden.

  • Der Build-Prozess von Godot ist nicht einfach. Einige Dateien werden durch Code erzeugt (Binder), andere werden geparst (Shader), und wieder andere müssen Anpassungen erlauben (Module). Dies erfordert eine komplexe Logik, die leichter in einer Programmiersprache (wie Python) geschrieben werden kann, als in einer hauptsächlich makrobasierten Sprache, die nur für den Build-Prozess gedacht ist.

  • Godot's build process makes heavy use of cross-compiling tools. Each platform has a specific detection process, and all these must be handled as specific cases with special code written for each.

Bitte versuchen Sie, aufgeschlossen zu sein und sich zumindest ein wenig mit SCons vertraut zu machen, wenn Sie Godot selbst bauen wollen.

Warum verwendet Godot nicht die STL (Standard Template Library)?

Wie viele andere Bibliotheken (zum Beispiel Qt) verzichtet auch Godot auf den Einsatz der STL (mit einigen Ausnahmen wie z.B. Threading-Primitiven). Wir glauben, dass die STL eine großartige Allzweck-Bibliothek ist, allerdings hatten wir besondere Anforderungen für Godot.

  • STL-Templates erzeugen sehr große Symbole und diese führen zu großen Debug-Binärdateien. Wir verwenden stattdessen nur wenige Templates mit sehr kurzen Namen.

  • Die meisten unserer Container sind für spezielle Anforderungen ausgelegt, wie z.B. Vector, welcher Copy on Write verwendet, und den wir verwenden, um Daten weiterzugeben, oder das RID-System, das O(1)-Zugriffszeit für gute Performance benötigt. Ebenso sind unsere Hash-Map-Implementierungen so konzipiert, dass sie sich nahtlos in die internen Enginetypen integrieren lassen.

  • Unsere Container verwenden integriertes „memory tracking“, was beim Analysieren des Speicherverbrauchs hilft.

  • Für den Gebrauch von großen Arrays, benutzen wir Memory-Pooling, das entweder einem vorab zugewiesenen Buffer oder einem virtuellen Speicher zugeordnet werden kann.

  • Wir verwenden unsere eigene angepasste String-Klasse, da die von STL bereitgestellte zu einfach ist und Internationalisierung nur unzureichend unterstützt.

Weshalb verwendet Godot keine Exceptions?

Wir glauben Spiele sollten nicht Abstürzen, egal was auch passiert. Wenn eine unerwartete Situation auftritt, dann schreibt Godot eine Fehlermeldung (die sogar auf Skipt-Code verweist), versucht den Fehler danach aber so gut es geht wieder auszugleichen und weiter zu laufen.

Außerdem erhöhen Exceptions die Binärgröße der ausführbaren Datei erheblich und führen zu einer längeren Kompilierzeit.

Verwendet Godot ein ECS (Entity-Component-System)?

Godot verwendet kein ECS und verlässt sich stattdessen auf Vererbung. Es gibt zwar keinen allgemein besseren Ansatz, aber wir haben festgestellt, dass die Verwendung eines auf Vererbung basierenden Ansatzes zu einer besseren Benutzerfreundlichkeit führt und dennoch für die meisten Anwendungsfälle schnell genug ist.

Nichtsdestotrotz können Sie die Zusammensetzung in Ihrem Projekt nutzen, indem Sie Child-Nodes mit individuellen Skripten erstellen. Diese Nodes können dann zur Laufzeit hinzugefügt und entfernt werden, um dynamisch Verhaltensweisen hinzuzufügen oder zu entfernen.

Weitere Informationen über die Gestaltung von Godot finden Sie in diesem Artikel.

Warum zwingt Godot seine Benutzer nicht zur Implementierung von DOD (Data-Oriented Design)?

Obwohl Godot intern versucht, so weit wie möglich Cache-Kohärenz zu nutzen, sind wir der Meinung, dass die Benutzer nicht gezwungen werden müssen, DOD-Praktiken zu verwenden.

Bei DOD handelt es sich hauptsächlich um eine Optimierung der Cache-Kohärenz, die nur dann zu signifikanten Leistungsverbesserungen führt, wenn es sich um zehntausende von Objekten handelt, die bei jedem Frame mit geringen Änderungen verarbeitet werden. Das heißt, wenn Sie ein paar hundert Sprites oder Gegner pro Frame bewegen, wird DOD nicht zu einer bedeutenden Leistungsverbesserung führen. In einem solchen Fall sollten Sie einen anderen Optimierungsansatz in Betracht ziehen.

In den allermeisten Spielen ist dies nicht erforderlich, und Godot bietet praktische Helfer, die diese Aufgabe in den meisten Fällen übernehmen.

Wenn ein Spiel eine so große Anzahl von Objekten verarbeiten muss, empfehlen wir, C++ und GDExtensions für leistungsintensive Aufgaben und GDScript (oder C#) für den Rest des Spiels zu verwenden.

Wie kann ich die Entwicklung von Godot unterstützen oder einen Beitrag leisten?

Siehe Möglichkeiten, einen Beitrag zu leisten.

Wer arbeitet an Godot? Wie kann ich euch kontaktieren?

Siehe die dazugehörige Seite auf der Godot-Webseite.