XR-Spielentwicklung in Godot meistern: Lektionen aus der Entwicklung von "Assemble!"
Schritt-für-Schritt-Anleitung zur Optimierung von Godot-XR-Projekten für die Einreichung im Meta Horizon Store, mit Leistungsbenchmarks und einer Quest-Compliance-Checkliste
Von Unity zu XR-Pionier: Warum Godot?
WARUM??? Weil Unity zwar zunächst einfacher erscheinen mag, ihr Closed-Source-Modell und der Exodus der Community nach Riccitiello Godot jedoch zu unserer klaren Wahl machten. Als CTO/CDO von weltfern habe ich intensiv die Entwicklung von Assemble! geleitet – einem bahnbrechenden XR-Puzzle-Spiel, das mit Godot 4 entwickelt wurde. Basierend auf diesen Erfahrungen bin ich überzeugt, dass Godot tatsächlich für professionelle XR-Entwicklung geeignet ist:
- Jolt Physics Integration für realistische Interaktionen
- Erweiterbares Dynamisches GLTF-Ladesystem (Für den Modelloader mit 3 Schwierigkeitsgraden)
- Benutzerdefinierte XR-Interaktionssysteme basierend auf Godot XR Tools (Open Source)
Mein Learning basierend auf der Erfahrung mit Godot
Bevor wir uns mit den technischen Details beschäftigen, hier ein paar persönliche Entwicklungsmomente mit Assemble! Es gab definiv eine Reihe von Herausforderungen, die mich aus meiner Komfortzone geholt haben. Angefangen mit Godots neuartigen XR-Paradigmen bis hin zur Lösung unerwarteter Leistungsengpässe bei der Erweiterung und vor allem der mobilen Version. Diese Herausforderungen waren aber nicht nur technische Hürden – vielmehr entstanden damit Chancen, in Iteration bessere Ergebnisse zu erzielen
Für mich steht hinter diesem Lohnbucheintrag die Leidenschaft, Ausdauer und der nie endenden Innovationsdrang der meine Karriere in der XR-Entwicklung geprägt hat. Zielsetzung ist deshalb: Einblicke und persönlichen Erfahrungen zu teilen, zu inspirieren und zu motivieren. Es ist extrem wichtig Herausforderungen bewusst anzunehmen. Letztlich packt jeder seine Koffer selbst für die Reise in der sich ständig entwickelnden Welt der immersiven Technologien.
Godots XR-Entwicklung: Durchbrüche im Jahr 2024
1. Horizon Store Early Access
Godots neue native Horizon Store-Version revolutioniert XR-Workflows:
- Verwenden Sie Godot in XR, um Ihr Spiel auszuführen (Meta Quest 3 und höher)
- Integrierte Leistungsvalidierung für XR-Inhalte
- Testen Sie Shader und Schattierungen auf dem Gerät
- Ein-Klick-Import von optimierten 3D-Modellen

Für die Entwicklung von Assemble! konnte ich die Godot-Version aus dem Horizon Store erst am Ende nutzen, da die App zu Beginn noch nicht existierte. Der Meta Simulator wurde viel eingesetzt, die native App ist als das Gegenstück direkt auf dem Gerät gedacht. Für mein Team bestand bis zum Schluss das Ziel, native Leistung für den Quest 2 zu erreichen, daher wurde hauptsächlich mit diesem Gerät gearbeitet. Godot als vollständie Engine plus Code und Modelle in einer Quest 2 auszuführen, läuft überhaupt nicht! Hierfür wird definitv der neuere Snapdragon Prozessor benötigt!
2. Essenzielle XR-Tools
Godots XR Tools Framework setzt Best Practices aus dem XR Design Handbook durch:
- Komfortmodi : Integrierte Teleportation, Snap-Turns + Bewegungsschattierung
- Statische Referenzpunkte : Persistente UI-Elemente + Bodenebenenanker
- Schrittweise Beschleunigung : Konfigurierbare Arm-Schwung-/Welt-Greif-Schwellenwerte
- Adaptives Rendering : Automatische LOD-Skalierung bei intensiver Bewegung
# Aktivierung des Komfortmodus in XR Tools
func _ready():
$XRController.movement_mode = XRConstants.MOVEMENT_TELEPORT
$XRController.snap_turn_degrees = 30
$XRController.vignette_strength = 0.7
Aktuelle Godot XR-Updates (Februar 2025)
Seit der Veröffentlichung dieses Logs hat Godot bedeutende XR-Verbesserungen erreicht, die viele der genannten Herausforderungen adressieren:
Meta Toolkit Erweiterung
- Platform SDK: Integration mit Metas Store-Services (In-App-Käufe, Erfolge, Bestenlisten)
- XR Simulator: Testen von Anwendungen ohne ständiges Aufsetzen des Headsets
- Export-Konfiguration: Automatische Einstellung der erforderlichen Exportparameter für Meta Quest
- Docs: https://godot-sdk-integrations.github.io/godot-meta-toolkit/manual/platform_sdk/getting_started.html
- Source: https://github.com/godot-sdk-integrations/godot-meta-toolkit
OpenXR Vendors 3.1.2
- Verbesserte Handtracking-Steuerung für Pico-Geräte
- Neues Berechtigungsmanagement-System (
xr/openxr/extensions/automatically_request_runtime_permissions
) - Behebung von Problemen mit räumlichen Ankern und Physik
Godot XR Tools 4.4.0
- Aktualisiertes StartXR-Skript mit besserer Passthrough-Unterstützung
- Neue WebXR-Modi (immersive-AR/VR)
- Verbesserte greifbare Objekte mit
action_released
-Signalen - Optimierte Greifpunkte und Vignette-Shader
Diese Updates vereinfachen die XR-Entwicklung in Godot erheblich, insbesondere für Meta Quest-Plattformen.
Leistung: Learnings im direkten Einsatz
Kritische Optimierungsstrategien
- Asset-Disziplin
- Polygonanzahl < 100k pro Szene halten
- Texturen maximal 2048x2048 verwenden
- Glow-/Nachbearbeitungseffekte in VR deaktivieren
- Debugging-Grundlagen
# Performance-Monitore aktivieren
Engine.set_iterations_per_second(90)
Engine.set_physics_jitter_fix(0.8)
- XR-spezifische Anpassungen
- Mindestens 72Hz Bildwiederholrate
- MSAA 2x + FSR-Upscaling
- Aggressives LOD-Management
- NEU: Meta XR Simulator für schnelle Performance-Iterationen nutzen
- NEU:
xr/openxr/extensions/automatically_request_runtime_permissions
für optimierte Berechtigungsverwaltung verwenden
Die strikten Standards von Meta Horizon
Godot-Alternativen zu Unitys OVR-Metriken
Während Metas OVR Metrics Tool Unity-spezifisch ist, bietet Godot vergleichbare Lösungen:
# Kontinuierliche Leistungsüberwachung
func _process(delta):
var cpu_time = Performance.get_monitor(Performance.TIME_PROCESS)
var gpu_time = Performance.get_monitor(Performance.TIME_FPS)
if cpu_time > 11 || gpu_time > 8:
$OptimizationAlert.trigger()
Obwohl Leistung ein wichtiges Thema bei der Spielplanung ist, kann das nicht allein anhand des geschriebenen Codes bewertet werden. Daher ist es wichtig, dieses Thema während des Entwicklungsprozesses stets im Auge zu behalten. Der einzige Weg, dies zu tun, ist, das Spiel genau zu beobachten, während es auf dem Gerät läuft, und zu analysieren, welche Faktoren eine Rolle spielen.
Bei Assemble! waren es einerseits die Tag/Nacht-Zyklus-Shader und andererseits die vielen Teile, die einen massiven Einfluss auf die Leistung hatten. Natürlich spielte auch die Physik, die ausschließlich von Jolt gehandhabt wurde, eine Rolle. Am Ende mussten wir aber vor allem hart an der Anzahl der Polygone und Shader arbeiten.
Horizon Store-Einreichungscheckliste
Basierend auf Metas VRC-Anforderungen:
- Bildrate: Auf 72/90Hz mit Engine.iterations_per_second festlegen
- Speicher: <1,5 GB RAM über OS.get_static_memory_usage()
- Thermik: Überwachen über Performance.get_monitor
(Performance.OBJECT_COUNT) - Inhaltsmaßstab: Verwenden Sie ProjectSettings.set_setting
("rendering/limits/time/frame_delay_msec", 16)
flowchart LR
A[Start] --> B{Bildzeit <13ms?}
B -->|Ja| C[Speicher prüfen]
B -->|Nein| D[Assets & Shader optimieren]
C --> E{<1,5GB?}
E -->|Ja| F[Einreichen!]
E -->|Nein| G[Texturen reduzieren]
Ähnlich wie Godot auf dem Quest 3 wurde auch Metas Horizon Store während der Entwicklung von Assemble! veröffentlicht und umgewandelt. Dies bedeutete, dass alle zuvor in der AppLab befindlichen Titel "angeblich" direkt auf die Oberfläche geladen wurden.
FALSCH GEDACHT – tatsächlich wurden gleichzeitig die Richtlinien massiv verschärft, was es extrem schwierig macht, in den Store zu kommen und direkt zu verkaufen.
Meine Empfehlung hier, wie auch bei der Leistung, ist, die erste und einfachste Version (MVP) zu veröffentlichen und das Ganze zunächst mit einer ausgewählten Gruppe zu testen. Es ist wichtig, den Aufwand für Dokumente, rechtliche Fragen und letztendlich das Verständnis des Feedbacks des Review-Teams nicht zu unterschätzen. Am Ende musste ich immer wieder explizit fragen, WAS GENAU mit dem Feedback gemeint war, als zusätzliche Notiz. Dies reduzierte die Menge an wilden Interpretationen erheblich.
Profi-Tipps für XR-Entwickler
- Starte mit dem Godots XR-Setup-Leitfaden
- Übernimm das verbesserte XR-Startskript
- Performance-Profiling! Möglichst früh und oft mit Godot-Leistungsdiagrammen
Die Zukunft von Godot XR
Mit Metas offizieller Godot-Unterstützung und den vollen XR-Fähigkeiten des Editors:
- Entwickeln direkt in VR/AR
- Bearbeiten von Szenen live während des Testens
- Im Headset auf die Dokumentation zugreifen
Nutzen Sie die verfügbare Hilfe. Die Godot-Community kann äußerst hilfreich und nützlich sein, um Dich mit deinem Spiel, sei es XR oder etwas anderes, in jeder Phase zu unterstützen!!!
Bereit, die XR-Reise zu beginnen? Godot herunterladen | Hier der verlinkte Assemble! Portfolio-Beitrag
Ingmar Konnow
Über mich | [X