10. Mai 2024

Studio Game 2 | Woche 2 | Dorian

Diese Woche war von anstrengen Kämpfen mit Config-Dateien und dem Installieren von spezifischen Compilern und Toolkits geprägt.

(Teils war das auch meine Schuld, weil ich vorletzte Woche mein Betriebssystem kaputt gemacht habe. Ich sah das dann als Zeichen, endlich mal NixOS auszuprobieren. Leider hat das nicht ganz so geklappt, jetzt bin ich wieder back to Kubuntu.)

Es kann nur eine Engine geben

Zu Beginn der Woche versuchte ich herauszufinden, mit welcher Engine ich mein Projekt umsetzen möchte. Im Idealfall wäre das eine Engine, die in Rust geschrieben ist, da der Javascript-Stuff auch in Rust geschrieben wird.

Bevy & bevy_oxr

Als erstes wollte ich herausfinden, ob sich Bevy mit dem (noch nicht gemergten) Plugin bevy_oxr als Engine eignen würde. Nachdem ich alle Dependencies installiert habe, konnte ich das Beispielprojekt auf meiner Quest 2 zum Laufen bringen. Leider lief es nicht so flüssig, bei einer sehr simplen Szene hatte ich ca. 30-45 FPS.

Ich bin aber sehr gespannt, wie bevy_oxr sich weiterentwickeln wird.

Gotham

Als zweite Engine wollte ich Gotham ausprobieren. Nachdem ich ein paar Shebangs eingefügt habe, wo es nötig war und irgendwelche Dateien angepasst habe, ohne mir zu notieren, was ich genau angepasst habe, gab ich bei folgendem Fehler auf:

Hotham setzt eine spezifische Version der Android NDK vor, die (wenn ich das richtig deute) nicht kompatibel mit aktuellen Rust-Compilern ist. Ich war dann aber zu faul, um einen älteren Rust Compiler zu verwenden.

Anmerkung
Gotham hat eine shell.nix Datei im Repository. Ich wollte gerade schreiben Wäre ich NixOS-affin, hätte ich all diese Probleme eventuell nicht.“ Ich habe jetzt aber die shell.nix Datei gelesen und habe doch noch Hoffnung, dass ich Hotham noch zum Laufen bringen werde. Ich wage nächste Woche nochmal einen Versuch.

Godot Engine

Zu guter Letzt habe ich Godot ausprobiert. Die Dokumentation von Godot für Android und VR ist fantastisch. Es lief wie am Schnürchen.

Es lief sogar gut, dass ich die Existenz meines Projektes in Frage stellte: Wenn es Godot gibt, braucht es mein Tool überhaupt noch? Godot ist ja bereits sehr einfach.

Für ein paar Stunden glaubte ich das. Abends realisierte ich dann aber, dass das Einrichten der Entwicklungstools auch einfach ziemlich schnell ging, weil ich mir mittlerweile den Umgang mit den CLI Tools der Android SDK gewohnt war. Wenn man Godot für Android-based VR verwenden möchte, muss man immernoch Java-Sachen installieren, Android SDK Stuff und irgendwelche Keys generieren.

Um den auf Deno basierenden Javascript-Stuff in Godot zu verwenden, habe ich vor, eine Art „Bridge“ mit C++ zu schreiben. Deshalb habe ich auch noch Godot’s GDExtension-System ausprobiert.

(Der Quellcode meines Projektes ist auf Codeberg.)

Aktueller Stand

Ich konnte ein paar kleinere Features implementieren: Mittlerweile kann man eine Szene als GLTF von Blender in die Godot-App schicken. Die Hintergrundfarbe der Blender-Welt und die Kameraposition wird auch synchronisiert. (Kamerarotation kommt auch bald, aber das ist leider weniger easy als die Position.)

 

Fazit

Die Woche lief anders als geplant, aber sie war trotzdem gut. Ich hoffe, dass ich nächste Woche Interviews mit potentiellen Leuten meiner Target Audience führen werde.

Beitrag der letzten Woche.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert