Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Releasing on App Lab With Godot 4

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.

Download the Meta XR Simulator

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.

Use OpenGL Rendering for Cross Compatibility

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.

Changes to the AndroidManifest.xml

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.

Changes in Android SDK Versions

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.

Blank Image as Splash Image

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.

Disable Sharing Features on Meta Quest

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.

Final Thoughts

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.


Support this post

Did you like this post? Tell us

Leave a comment

Log in with your itch.io account to leave a comment.