Only had 2 hours of sleep last night, but I uploaded something playable in the final 3 minutes! Still could have used another hour of polish, but oh well.
Some new things I learned in Godot:
- MultiMeshInstance3D - used these to make the clouds and the cloud grass. Without it, there is a big framerate hit to the Quest 2.
- How to write Godot shaders (the code version, not the visual graph)
- Trail particles (for the wind streaks). They don't work well on the Quest since they don't bend, but are nice on the desktop version.
- Fog particle system
- There is a big difference in the lighting between the Quest and desktop OpenXR for some reason. I don't know why. But I figured out how to check which operating system (OS.get_name()) it is using at runtime to pick which lighting environment/light to use.
- AnimatableBody3D doesn't work when its parent node moves. I had to add a script that copies the transform.
Here's how it turned out:
https://andyman404.itch.io/cloud-shepherd