Setup
Einmalige Installation für alle Einheiten dieses Kurses. Führe dies vor Unit 0 durch.
Du kannst den Kurs online lesen
Der Kurs ist unter
godot-rl.onlinekurs.training
veröffentlicht und braucht zum Lesen keine Installation. Alles Folgende dient
dem Ausführen des Codes: die Einheiten starten Python- und Godot-Szenen aus
dem Repository, du klonst es also weiterhin und legst weiterhin die Umgebung
godot_env an.
Kurs-Repository — zuerst klonen
Alles in diesem Kurs — requirements-course.txt, der examples/-Code der Neuronalen Grundlagen, Hilfsskripte — liegt im Kurs-Repository. Klone es und arbeite aus seinem Stammverzeichnis:
Kein git? Nutze stattdessen Code → Download ZIP auf github.com/minigraphx/godot-rl-course, entpacke das Archiv und wechsle mit cd in den entpackten Ordner.
Alle Kursbefehle im Repo-Stammverzeichnis ausführen
Sofern eine Einheit nichts anderes sagt, setzt jeder pip-, python -m examples.…- und godot --headless-Befehl in diesem Kurs voraus, dass dein Terminal sich im Stammverzeichnis des Kurs-Repos befindet — dem Ordner mit requirements-course.txt.
Godot 4 — Standard-Version
Lade die Standard-Version von Godot 4 von godotengine.org herunter. Der native Runner des Kurses benötigt Godot 4.5 oder neuer.
Kein .NET SDK, kein C# — die Standard-Version genügt
Frühere Fassungen dieses Kurses nutzten ein C#-Plugin, das die .NET/Mono-Edition von Godot plus das .NET SDK erforderte. Der Kurs verwendet jetzt godot-native-rl, ein Addon, das du mit einem einzigen Befehl (siehe unten) ins Kurs-Repo installierst — sodass die Standard-Version ausreicht. Falls du die .NET-Edition bereits installiert hast, funktioniert sie ebenfalls; es gibt nur keinen Grund mehr, sie zu installieren.
Godot auf der Kommandozeile
Mehrere Einheiten starten Godot aus dem Terminal (godot --headless …). Der Editor-Download legt keinen godot-Befehl auf deinen PATH — richte das einmalig ein:
macOS — die Binärdatei liegt im App-Bundle. Füge deinem Shell-Profil (~/.zshrc) einen Alias hinzu:
Windows — füge den Ordner mit Godot_*.exe zu deinem PATH hinzu (Einstellungen → System → Info → Erweiterte Systemeinstellungen → Umgebungsvariablen) oder rufe die Datei über ihren vollständigen Pfad auf. Forward Slashes funktionieren in jeder Shell:
Linux — mache die heruntergeladene Binärdatei ausführbar und verlinke sie auf deinen PATH:
chmod +x Godot_v4.5-stable_linux.x86_64
sudo ln -s "$PWD/Godot_v4.5-stable_linux.x86_64" /usr/local/bin/godot
Überprüfen
Öffne ein neues Terminal und führe godot --version aus — es sollte eine 4.x-Versionsnummer ausgeben.
Python — Conda-Umgebung (environment)
Warum Conda? Es erlaubt dir, Python 3.10 in einem isolierten Ordner zu fixieren, sodass die ML-Pakete nicht mit anderen Projekten kollidieren. godot-rl und Stable-Baselines3 funktionieren am zuverlässigsten mit Python 3.10; neuere Versionen führen häufig zu Problemen mit Paket-Wheels.
Miniconda installieren (überspringen, falls conda bereits vorhanden):
Lade von docs.conda.io/en/latest/miniconda.html für dein Betriebssystem herunter. Nach der Installation öffne ein neues Terminal und prüfe:
Umgebung erstellen (einmalig):
In jedem neuen Terminal — vor jedem Trainingsbefehl aktivieren:
requirements-course.txt befindet sich im Stammverzeichnis des Kurs-Repos, das du oben geklont hast — führe den Befehl von dort aus. Es fixiert alle Pakete auf bekannte, funktionierende Versionen — siehe die Kompatibilitätstabelle unten.
Was installiert wird
godot-rl— Python ↔ Godot Socket-Bridge und Stable-Baselines3-Wrapper. Es installiert außerdem einen Befehlgdrl, den upstream abgekündigt hat und den dieser Kurs nicht verwendet — siehe Referenzstable-baselines3— PPO, SAC und andere Algorithmentorch— PyTorch-Backend für das Trainingtensorboard— Visualisierung der Trainingskurvenmatplotlib,onnx,onnxruntime,ncnn,opencv-python— Plots, Modell-Export und Paritätsprüfungen in Neuronalen Grundlagen
Überprüfen: python -c "import godot_rl; print('ok')"
Native Inferenz läuft auf allen Desktop-Plattformen
Das Training läuft über einen lokalen Socket und ist reines GDScript. Die native ncnn-Inferenz — ein trainiertes Gehirn ohne Python in Godot ausführen, genutzt in Neuronale Grundlagen 3 und der Ship-Phase — liefert vorgebaute Bibliotheken für macOS Apple Silicon, Windows x86_64 und Linux x86_64 mit (dazu iOS, Android und Web). Alle drei Desktop-Plattformen der Kompatibilitätstabelle sind abgedeckt.
macOS / Linux — erster Start
Der Installer fordert dich möglicherweise auf, conda init auszuführen — folge der Anweisung und öffne dann ein neues Terminal.
Windows — erster Start
Siehe Windows — erster Start unten für Hinweise zur PowerShell / cmd / Git Bash Aktivierung und Windows-spezifische Besonderheiten.
Kompatibilitätstabelle
Die folgende Tabelle zeigt die Paketversionen aus requirements-course.txt und die Godot-Version, mit der sie getestet wurden.
| Kurs-Tag | Godot | godot-native-rl | godot-rl (Python-Bridge) | stable-baselines3 | PyTorch | Python |
|---|---|---|---|---|---|---|
| 2026-05 | 4.5+ (Standard) | v0.4.0 (nachgeladen) |
0.8.2 | 2.3.2 | 2.6.0 | 3.10 |
Pakete während des Kurses nicht aktualisieren
godot-rl, SB3 und PyTorch haben inkompatible API-Änderungen zwischen Releases. Bleibe für die Dauer des Kurses bei den fixierten Versionen in requirements-course.txt. Nach dem Kurs kannst du gerne neuere Versionen ausprobieren — erstelle dafür einfach eine neue Conda-Umgebung.
Windows — erster Start
Die obigen Schritte funktionieren auf Windows mit kleinen Unterschieden. Lies diesen Abschnitt, bevor du das erste Mal conda activate ausführst.
Shell-Wahl
| Shell | Hinweise |
|---|---|
| Anaconda Prompt | Am einfachsten — conda activate godot_env funktioniert sofort. |
| PowerShell | Führe einmalig conda init powershell aus (als Administrator), starte PowerShell neu, dann conda activate godot_env. |
| cmd | Führe einmalig conda init cmd.exe aus, starte cmd neu, dann conda activate godot_env. |
| Git Bash | Führe einmalig conda init bash (aus dem Anaconda Prompt) aus, starte Git Bash neu, dann conda activate godot_env. |
--env_path mit Windows-Pfaden
godot-rl akzeptiert Schrägstriche (Forward Slashes) unter Windows — bevorzuge diese gegenüber Backslashes, um Shell-Escape-Probleme zu vermeiden:
# Empfohlen — Forward Slashes funktionieren überall, auch in PowerShell und cmd
python stable_baselines3_example.py --env_path=C:/Users/DeinName/Projekte/mein_spiel/mein_spiel.exe
# Auch gültig — Backslashes, müssen aber escaped oder in Anführungszeichen gesetzt werden
python stable_baselines3_example.py --env_path="C:\Users\DeinName\Projekte\mein_spiel\mein_spiel.exe"
Windows Defender / Antivirusproblem mit Sockets
Windows Defender (und viele Antivirusprogramme von Drittanbietern) blockieren manchmal still und heimlich den lokalen TCP-Port, den godot-rl für die Kommunikation zwischen Python und Godot verwendet (Standard: Port 11008). Symptome: Das Training scheint zu starten, aber Godot stellt keine Verbindung her; Python wartet auf die erste Beobachtung.
Lösung:
- Öffne Windows-Sicherheit → Firewall & Netzwerkschutz → App durch Firewall zulassen.
- Füge eine Ausnahme für
python.exe(das Python deiner Conda-Umgebung) und für die Godot-Anwendung hinzu. - Den Port zu wechseln ist auf der Python-Seite kein Kommandozeilen-Flag —
GodotEnvnimmtport=im Code entgegen, die Godot-Seite liest--port=…von ihrer eigenen Kommandozeile. Die Firewall-Ausnahme oben ist der einfachere Weg.
Wenn du ein Antivirusprogramm eines Drittanbieters verwendest, füge den Conda-Umgebungsordner (z. B. C:\Users\DeinName\miniconda3\envs\godot_env\) und deinen Godot-Projektordner zur Ausschlussliste hinzu.
chmod +x ist unter Windows nicht erforderlich
Die macOS/Linux-Befehle chmod +x godot_binary gelten nicht für Windows. Godot .exe-Dateien sind vom Betriebssystem bereits ausführbar.
WSL2 vs. natives Windows
| Ansatz | Vorteile | Nachteile |
|---|---|---|
| Natives Windows | Einfachste Einrichtung, keine Übersetzungsschicht, Direct3D GPU | Antivirus-/Firewall-Reibung; Pfade verwenden Backslashes |
| WSL2 (Ubuntu) | Vollständige Linux-Toolchain, einfachere GPU-Einrichtung via CUDA | GPU-Durchleitung (CUDA in WSL2) erfordert Windows 11 + WSL2-Kernel ≥ 5.15; Godot-GUI kann in WSL2 ohne X-Server oder WSLg nicht rendern |
Empfehlung für diesen Kurs: Verwende natives Windows, es sei denn, du hast bereits ein funktionierendes WSL2 + GPU-Setup. Godot muss ohnehin auf der Windows-Host-Seite (oder WSLg) laufen; die Kombination von Godot unter Windows und Python in WSL2 erfordert zusätzliche Port-Weiterleitungsschritte, die in diesem Kurs nicht behandelt werden.
Godot-Addon — godot-native-rl
Die Godot-seitige Bridge ist godot-native-rl. Ihre nativen Bibliotheken sind größer als das gesamte Kurs-Repository, deshalb liegen sie nicht im Repo — ein Befehl installiert das gepinnte Release:
Er lädt die in examples/neural_foundations/game/GODOT_NATIVE_RL_VERSION gepinnte Version, prüft ihre Prüfsumme und entpackt sie ins Spielprojekt. Mit scripts/fetch-native-runner.sh --check siehst du jederzeit, was installiert ist. Zu bauen gibt es nichts.
- Training: Der
NcnnSync-Node spricht dasselbe lokale Socket-Protokoll wie diegdrl-Python-Seite. Reines GDScript — funktioniert auf jeder Plattform. - Inferenz: Eine ncnn-GDExtension führt trainierte Gehirne nativ in Godot aus, mit vorgebauten Bibliotheken für macOS, Windows und Linux. Das Training benötigt sie nicht.
Die Node-Klassen des Addons (NcnnSync, NcnnAIController2D, NcnnAIController3D, Sensor-Nodes) registrieren sich automatisch, wenn das Projekt geöffnet wird — Szenen funktionieren also, bevor du irgendetwas anfasst. Trotzdem: aktiviere das Plugin einmal unter Projekt → Projekteinstellungen → Plugins → Godot Native RL. Es ergänzt drei Dinge, die die Klassen allein nicht leisten:
- Es packt deine ncnn-Modelldateien in exportierte Builds — ohne das startet ein exportiertes Spiel und scheitert dann mit „cannot read model files"
- Es meldet klar, wenn die native Inferenz-Bibliothek für deine Plattform fehlt, statt still zu scheitern
- Es installiert die
NcnnAIController-Skriptvorlagen ins Projekt
Nur das Erste tut wirklich weh — und zwar spät, in der Ship-Phase, weit weg von dieser Seite.
Zwei verschiedene Dinge
godot-rl ist das Python-Paket (installiert über requirements-course.txt), das den Trainingsserver betreibt. godot-native-rl ist das Godot-Addon, das scripts/fetch-native-runner.sh installiert. Beide kommunizieren über einen lokalen Socket.
Überprüfen
Öffne examples/neural_foundations/game/project.godot in Godot, dann Node hinzufügen → suche nach NcnnSync und NcnnAIController3D. Wenn diese erscheinen, funktioniert das Addon.
Das Addon im eigenen Projekt verwenden: Kopiere addons/godot_native_rl/ in den addons/-Ordner deines Projekts. Für native Inferenz kopiere zusätzlich ncnn_runner.gdextension und den bin/-Ordner.
Legacy-Plugin — godot-rl-agents (Einheiten vor der Migration)
Die Einheiten ab RL Essentials nutzen noch Beispielumgebungen auf Basis des älteren C#-Plugins. Überspringe diesen Abschnitt, bis du diese Einheiten erreichst — Unit 0 und die Neuronalen Grundlagen brauchen nichts davon.
Der Legacy-Stack erfordert zusätzlich die .NET/Mono-Edition von Godot und das .NET SDK. Danach:
- Klone oder lade github.com/edbeeching/godot_rl_agents_plugin herunter
- Kopiere den Ordner
addons/godot_rl_agentsin denaddons/-Ordner des Beispielprojekts (die offiziellen Beispielprojekte liefern ihn bereits mit) - Projekt → Projekteinstellungen → Plugins → Godot RL Agents → Aktiviert; warte, bis MSBuild fertig ist
- Falls Godot beim ersten Öffnen einen C#-Build-Fehler meldet, schließe das Projekt und öffne es erneut — die Assemblies werden beim zweiten Öffnen korrekt erstellt
- Überprüfen: Node hinzufügen → suche nach
SyncundAIController2D
Diese Einheiten werden nach und nach auf den nativen Stack migriert; dieser Abschnitt verschwindet, sobald die Migration abgeschlossen ist.