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 gut für professionelle XR-Entwicklung geeignet ist:
- Jolt Physics Integration für realistische Interaktionen
- Dynamisches GLTF-Ladesystem mit adaptiver Schwierigkeit
- Benutzerdefinierte XR-Interaktionssysteme basierend auf Godot XR Tools (Open Source)
Was ich aus der Erfahrung mit Godot gelernt habe
Bevor ich auf die technischen Details eingehe, möchte ich einige persönliche Reflexionen aus der Entwicklung von Assemble! teilen. Während des Projekts sah ich mich mit einer Reihe von Herausforderungen konfrontiert, die mich aus meiner Komfortzone zwangen, angefangen beim Umgang mit Godots neuartigen XR-Paradigmen bis hin zur Lösung unerwarteter Leistungsengpässe während der Entwicklung. Diese Herausforderungen waren nicht nur technische Hürden – sie waren auch Gelegenheiten, sowohl beruflich als auch persönlich zu wachsen.
Mehr als nur ein technischer Leitfaden spiegelt dieser Beitrag die Leidenschaft, Ausdauer und den nie endenden Innovationsdrang wider, der meine Karriere in der XR-Entwicklung geprägt hat. Ich hoffe, dass das Teilen dieser Einblicke und persönlichen Erfahrungen andere dazu inspirieren wird, die Herausforderungen anzunehmen und ihre eigenen Reisen in der sich ständig weiterentwickelnden Welt der immersiven Technologien zu beginnen.
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

Während der Entwicklung von Assemble! konnte ich die Godot-Version aus dem Horizon Store erst am Ende nutzen, da sie zu Beginn noch nicht existierte. Bis zum Schluss war das Ziel, native Leistung für den Quest 2 zu erreichen, daher arbeitete ich hauptsächlich mit diesem Gerät. Godot als vollständige Engine auf einem Quest 2 auszuführen, funktioniert technisch überhaupt nicht!
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
Leistung: Lehren aus den Schützengräben
Kritische Optimierungsstrategien
- Asset-Disziplin
- Halten Sie die Polygonanzahl < 100k pro Szene
- Verwenden Sie maximal 2048x2048 Texturen
- Deaktivieren Sie Glow-/Postprocessing-Funktionen in VR
- Debugging-Essentials
# Aktivieren der Leistungsmonitore
Engine.set_iterations_per_second(90)
Engine.set_physics_jitter_fix(0.8)
- XR-spezifische Anpassungen
- 72Hz Bildwiederholrate mindestens
- MSAA 2x + FSR-Upscaling
- Aggressives LOD-Management
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 sie 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. Aber am Ende mussten wir 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. Dies bedeutete, dass alle zuvor in der AppLab befindlichen Titel "angeblich" direkt auf die Oberfläche geladen wurden.
FALSCHER GEDANKE – die Richtlinien wurden massiv verschärft, was es extrem schwierig machte, in den Store zu kommen und schnell 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 begann ich buchstäblich explizit zu 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
- Beginnen Sie mit Godots XR-Setup-Leitfaden
- Übernehmen Sie das verbesserte XR-Startskript
- Profilieren Sie 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 Sie direkt in VR/AR
- Bearbeiten Sie Szenen live während des Testens
- Greifen Sie in-Headset auf die Dokumentation zu
Nutzen Sie die verfügbare Hilfe. Die Godot-Community kann äußerst hilfreich und nützlich sein, um Ihr 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