A few weeks ago, I decided to remake my first mobile game - Space Bunny - for VR. The original was released in 2019 using Godot 3 for Android and a year later for iOS. It's a simple game reminiscent of Doodle Jump with precise control over the jumps. I wanted to test the VR capabilities of Godot 4 so this seemed like a simple enough game for the job. This post will go over some things I learned that can help those looking to release their games on App Lab.
This is simply a must if you wish to avoid the frustration that is Mobile VR development. This let's you test out your VR games without having to put a headset on every time you want to test something out. To get this working with Godot you have to change the registry to point to the Simulator rather than the Oculus Runtime. As of this post, this only works in Godot 4.
Currently, the Vulkan Renderer does not work with Vive XR Elite and I had some material issues when testing on Meta Quest, so I recommend switching to opengl_compatibility in Project Settings > Rendering > Renderer for mobile. However, I keep the editor running in the Mobile Renderer as Meta XR Simulator currently has issues with OpenGL in Godot 4. I didn't find a noticeable difference from PC to VR, but some discrepancies may arise when I make a more graphically intensive game in the future.
To submit your games on App Lab or VIVEPORT, some changes have to be made to the AndroidManifest.xml file in order to pass the automatic tests. For Quest, this is as simple as changing android:launchMode="singleInstance" to android:launchMode="singleTask." For Viveport, the following has to be added:
<meta-data android:name="minWaveSDKVersion" android:value="1" /> <meta-data android:name="com.htc.vr.content.NumDoFHmd" android:value="6DoF"/> <meta-data android:name="com.htc.vr.content.NumDoFController" android:value="6DoF"/> <meta-data android:name="com.htc.vr.content.NumController" android:value="2"/>
This works as of version 4.1.2 since earlier versions of Godot 4 seem to override AndroidManifest.xml or cause errors when trying to export a build.
This is a pretty simple change. In Project Settings > Export I changed the Min SDK to 29 and the Target SDK to 32 on Quest. For Vive, I set Min SDK to 25 and the Target SDK to 29.
While testing on devices, disabling the splash image did not seem to work and would display across both eyes as one 2d image, so I just made a black png that displays when starting the game to avoid that. This may not be needed in the future once this bug has been fixed.
For some reason, the world of the game would stop rendering if a video recording was started after resetting the view in-game. This can be temporarily fixed by disabling sharing when submitting the app in the developer sidebar under Settings > Sharing.
Hopefully this post helps people get their games on these platforms. I've also put out a build for the Vive XR on revPass for those that are interested in supporting my future game development endeavors. This has made me excited to develop my next VR game that I plan to release sometime next year. Thanks for reading.
Did you like this post? Tell us
Leave a comment
Log in with your itch.io account to leave a comment.