Unit 0 — Setup & Erster Start
Zeit
Lesen: ~20 min · Training: ~15 min GPU / ~1 Std CPU
Installiere den Godot-Editor (Standard-Version) und die Python-Toolchain. Starte deine erste Trainingssitzung mit dem mitgelieferten Foundations-Racer und bestätige, dass der Godot ↔ Python Socket funktioniert.
Erster Erfolg (eine Sitzung)
- Godot — der Racer bewegt sich auf seiner Strecke (Szene abspielen, während Python trainiert)
- Python — Terminal zeigt Rollout-Tabellen;
ep_rew_meanerscheint - TensorBoard (optional) —
tensorboard --logdir=logs/foundations_racerzeigt eine Kurve - Neuronale Grundlagen — du wirst sichtbare Neuronen bauen, bevor die RL-Schleife beginnt
Drei Wege, deine KI zu beobachten (jede Einheit)
Godot-Verhalten · TensorBoard-Kurven · was du in AIController änderst
Wenig Zeit?
Folge dem Erster-Abend-Skript (~2½–3 Std.), um Unit 0 abzuschließen und Neuronale Grundlagen 1 in einer Sitzung zu beginnen.
1 · Geteilte Architektur (split architecture)
Zwei Laufzeitumgebungen kommunizieren über einen lokalen Socket — Godot sendet Beobachtungen (observations) und empfängt Aktionen (actions); Python führt die Trainingsschleife aus.
| Komponente | Rolle | Laufzeit |
|---|---|---|
| Godot | Physik, Beobachtungen, Belohnungen | Godot 4 Standard, GDScript |
| Addon (GDScript) | NcnnSync-Node, native ncnn-Bridge | godot-native-rl (gepinntes Release, per Skript installiert) |
| Python | PPO-Training (SB3) | Conda, Python 3.10 |
Die Standard-Godot-Version genügt
Alles auf der Godot-Seite ist GDScript — kein C#, kein .NET SDK, kein Build-Schritt. Lade die Standard-Version (4.5+) von godotengine.org herunter; die Details stehen im Setup.
2 · Conda-Umgebung
Zum ersten Mal hier?
Vollständige Installationsanweisungen — Miniconda, godot_env und das Godot-Addon — findest du unter Setup. Schließe diese Seite zuerst ab und komme dann hierher zurück.
Kurze Erinnerung für jedes neue Terminal:
3 · Godot-Projekt & Addon
Unit 0 und die Einheiten der Neuronalen Grundlagen trainieren im eigenen Godot-Projekt des Kurs-Repos. Das godot-native-rl-Addon liegt nicht im Repo — seine nativen Bibliotheken wiegen mehr als alles andere darin — installiere deshalb zuerst das gepinnte Release:
scripts/fetch-native-runner.sh # aus dem Wurzelverzeichnis des Kurs-Repos
scripts/fetch-native-runner.sh --check # zeigt gepinnt vs. installiert
Danach:
- Godot → Import → navigiere zu
godot-rl-course/examples/neural_foundations/game/project.godot - Lass den ersten Import durchlaufen — es wird nichts kompiliert, das geht schnell
- Projekt → Projekteinstellungen → Plugins → Godot Native RL aktivieren
- Überprüfen: Node hinzufügen → suche nach
NcnnSync. Erscheint er, ist das Addon geladen.
Warum Schritt 3, wenn die Nodes auch ohne ihn funktionieren?
Die Node-Klassen registrieren sich von allein. Das Aktivieren des Plugins ergänzt das, was später zählt: Es packt deine ncnn-Modelldateien in exportierte Builds. Ohne das startet ein exportiertes Spiel und scheitert dann mit „cannot read model files" — weit weg von hier, ohne Hinweis zurück auf dieses Häkchen. Ein Klick jetzt.
Examples-Repo für spätere Einheiten
Die Einheiten ab RL Essentials nutzen derzeit noch Umgebungen aus dem separaten Repo godot_rl_agents_examples (der Legacy-Stack — die Migration wird in den Issues des Kurs-Repos verfolgt). Klone es neben das Kurs-Repo, wenn du diese Einheiten erreichst:
4 · Erster Trainingslauf
Im Editor
Terminal 1 — Python-Trainer starten (aus dem Stammverzeichnis des Kurs-Repos):
Warte auf "waiting for remote GODOT connection" in der Log-Ausgabe.
Terminal 2 optional: tensorboard --logdir=logs/foundations_racer
Godot — öffne unit_03_racer/racer_train.tscn, drücke F6 (Szene abspielen). Der Racer sollte sich verbinden und Steps ausführen; SB3 gibt Rollout-Tabellen in Terminal 1 aus. Die standardmäßigen 2048 Timesteps sind ein Smoke-Test (wenige Minuten) — er beweist, dass Socket, Trainer und Szene zusammenspielen. Für sichtbares Lernen starte erneut mit --timesteps 50000.
Nach dem Lauf speichert der Trainer einen Checkpoint und einen ONNX-Export unter examples/neural_foundations/game/unit_03_racer/models/.
Erfolgskriterien
Racer in Godot sichtbar; Rollout-Tabellen mit ep_rew_mean erscheinen; keine Warnungen, keine Socket-Fehler; TensorBoard-Kurve optional, aber empfohlen.
5 · Trainingsmodi für diesen Kurs
| Phase | Einheiten | Standard |
|---|---|---|
| Erkunden | 0–2 | Editor-Szene abspielen — Physik- und Belohnungsfehler sichtbar machen |
| Skalieren | 3–8 | Exportiertes Binary + --headless — schnellere Rollouts |
| Veröffentlichen | 9–10 | Native ncnn-Inferenz im NcnnSync — kein Python zur Laufzeit |
Native Inferenz-Vorschau (optional)
Nach dem Training kann das exportierte ONNX zu ncnn konvertiert und nativ ausgeführt werden: Die Evaluationsszene unit_03_racer/racer_eval.tscn nutzt NcnnSync im Inferenzmodus — der Racer läuft ohne Python. Neuronale Grundlagen 3 führt durch die komplette Export → Verifizieren → Deployen Pipeline. Das funktioniert unter macOS, Windows und Linux; nötig sind die nativen Bibliotheken, die scripts/fetch-native-runner.sh installiert (siehe Setup).
Erster-Abend-Skript (~2½–3 Stunden)
Eine Sitzung: Tooling funktioniert, Akteur lernt, du änderst eine Belohnung. Die Zeiten sind Richtwerte — Installationsschritte variieren je nach Rechner.
| Block | Zeit | Aufgabe | Fertig wenn |
|---|---|---|---|
| 1 · Installieren | 45–75 Min | Abschnitt 2 — Miniconda installieren → godot_env erstellen → pip installAbschnitt 3 — das Kurs-Spielprojekt in Godot öffnen |
import godot_rl gibt ok aus; Spielprojekt öffnet sich und NcnnSync erscheint unter „Node hinzufügen" |
| 2 · Erster Trainingslauf | 30–45 Min | Abschnitt 4 — Python-Trainer + Godot F6 Zweites Terminal: tensorboard --logdir=logs/foundations_racer |
Racer bewegt sich; Rollout-Tabellen erscheinen; keine Socket-Fehler |
| 3 · Grundlagen 1 beginnen | 45–60 Min | Öffne Neuronale Grundlagen 1 Abschnitt 1 lesen (was ein Neuron berechnet), dann die Handrechnung in Abschnitt 2 vorhersagen (~15 Min) → Research-Plot oder Godot-Jumper-Szene starten Während des Erkundens: Abschnitte 3–4 lesen |
Du kannst jeden Beitrag, die gewichtete Summe und den Aktivierungswert benennen |
Minimales Befehls-Spickzettel (Block 2)
conda activate godot_env
tensorboard --logdir=logs/foundations_racer &
python scripts/train_foundations_racer.py --timesteps 2048
# Godot: unit_03_racer/racer_train.tscn → F6 (Szene abspielen)
Checkliste zum Abend
- [ ] Godot — Akteur in Aktion gesehen
- [ ] Python — Training ohne Verbindungsfehler durchgelaufen
- [ ] TensorBoard — mindestens einmal geöffnet (localhost:6006)
- [ ] Code — einen Neuron-Forward-Pass-Test oder ein visuelles Beispiel ausgeführt
Morgen: Grundlagen 1–2 abschließen, dann RL Essentials (BallChase-Belohnung anpassen) und Unit 2 Phase A (SimpleReachGoal).
Nicht weitergekommen?
Die häufigsten Hindernisse am ersten Abend: Godot älter als 4.5, Godot F6 gedrückt bevor der Python-Trainer wartete, oder Firewall blockiert den localhost-Socket. Lies Abschnitt 1 erneut, wenn die geteilte Architektur unklar ist.
Stretch Goals
Das exportierte ONNX inspizieren. Öffne examples/neural_foundations/game/unit_03_racer/models/foundations_racer.onnx in Netron (ziehe die Datei in den Browser-Tab — keine Installation). Identifiziere die Form des Eingabetensors (obs), die Form des Ausgabetensors (out0) und die Aktivierung zwischen den Schichten. Dieser Graph ist die portable Form des Gehirns — die Export → Verifizieren → Deployen Pipeline in Neuronale Grundlagen 3 baut darauf auf.
Die deterministischen Mathe-Tests ausführen. Das Spielprojekt liefert Headless-Tests für die Beobachtungs- und Belohnungsmathematik des Racers mit:
Es geht nicht um die Tests selbst — sondern darum zu bestätigen, dass dein godot-Kommandozeilen-Setup aus dem Setup funktioniert, worauf jede spätere Einheit aufbaut.
Wie geht es weiter?
Das Tooling funktioniert. In Neuronale Grundlagen 1 baust du ein sichtbares Neuron und verbindest Netze später mit der RL-Schleife.
Dazwischen liegen zwei optionale Auffrischungen: Mathe-Grundlagen 1 behandelt Vektoren und Skalarprodukt, Mathe-Grundlagen 2 Wahrscheinlichkeit und Erwartungswert. Überspringe sie, wenn dir das Rechnen in Neuronale Grundlagen 1 leichtfällt, und komm zurück, sobald die Notation einer späteren Einheit nicht mehr aufgeht.