Versionskontrolle

Wonderland Engine Projekte wurden so gestaltet, dass sie sich gut mit jeder Versionskontrolle integrieren lassen und werden am häufigsten mit git verwendet.

Da die Projektdateien auf JSON basieren, können sie manuell zusammengeführt werden. Achte darauf, bei den letzten Elementen von Objekten und Listen die nachfolgenden Kommas zu entfernen!

UUIDs 

Um Konflikte bei Ressourcen-IDs neuer Objekte zu vermeiden, kannst Du den Editor dazu bringen, UUIDs anstelle von kurzen und lesbaren sequentiellen IDs zu generieren:

Ansichten > Projekteinstellungen > Editor > ids (auf uuid setzen).

.gitignore 

Das Folgende ist eine bewährte .gitignore Datei.

Beachte, dass Du, abhängig von Deinem CI/CD Setup, eventuell cache hinzufügen möchtest, um zu reduzieren, wie viel Zeit auf leistungsschwächeren Build-Maschinen beim Komprimieren von Bildern verbraucht wird.

Das Hinzufügen von cache hat den zusätzlichen Vorteil, dass das erste Laden des Projekts nach dem Klonen des Projekts beschleunigt wird.

 1# NPM Abhängigkeiten
 2**/node_modules/
 3
 4# Projekt-Pakete
 5**/deploy/
 6
 7# Lokale Editor-Daten
 8**/.editor/
 9
10# Zwischengespeicherte Editor-JS-Bundles
11**/cache/js/
12
13# Lokaler UI-Status
14**/imgui.ini
15
16# Blender Sicherungsdateien
17*.blend1

Git LFS 

Die Git Large File Storage Erweiterung kann Git-Operationen in Deinem Repository beschleunigen, besonders da WebXR normalerweise große Dateien für 3D Assets, Texturen und Audio enthält.

Hier sind einige Empfehlungen, die mit git lfs track <extensions> verfolgt werden sollten:

 1# Audiodateien
 2*.mp3 *.wav *.ogg *.webm
 3# Videodateien
 4*.mp4
 5# Binäre 3D-Modell-Dateien
 6*.glb *.fbx *.bin *.blend *.ply
 7# Bilddateien
 8*.png *.jpeg *.webp *.bmp *.exr *.hdr *.basis
 9# Schriftdateien
10*.ttf *.otf
11# Archive
12*.zip *.tar.gz

package-lock.json 

package-lock.json speichert die genauen Versionen der derzeit mit Deinem System installierten Abhängigkeiten. Bei der Verwendung von npm install wird diese Datei auf die neuesten Abhängigkeiten aktualisiert, die den in der package.json gegebenen Einschränkungen entsprechen.

Du kannst npm ci verwenden, um die exakten Abhängigkeitsversionen aus Deiner package-lock.json zu installieren. Um reproduzierbare Builds zu haben, solltest Du diese Datei committen.