Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Android editor] Improve support for XR projects #96624

Merged
merged 1 commit into from
Sep 6, 2024

Conversation

m4gr3d
Copy link
Contributor

@m4gr3d m4gr3d commented Sep 5, 2024

Port the Android editor to Meta Quest (HorizonOS) devices:

  • Add support for developing, running and debugging 2D, 3D and XR projects natively on Meta Quest devices
  • Add support for building Godot binaries natively on Meta Quest devices
  • Leverage Meta's APIs to turn the editor into an Hybrid App
    • Provide the ability to open multi windows (editor and play window) side by side
    • Provide the ability to transition between the editor (2D) window and a running immersive XR project
    • Provide the ability to invoke the editor window while an immersive XR project is running to enable hot reload and live debugging

Note: Requires Horizon OS v69 or higher

Copy link
Contributor

@dsnopek dsnopek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just tested on the Meta Quest 3, both with a flatscreen app and an immersive XR app. Everything seems to be working great!

The code looks good to me too.

Copy link
Contributor

@BastiaanOlij BastiaanOlij left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool, you weren't kidding, I was expecting much more invasive changes. This creates a really nice platform to expand upon.

@m4gr3d m4gr3d force-pushed the android_editor_improvements branch from 33caabd to a54accb Compare September 6, 2024 00:07
@m4gr3d m4gr3d requested a review from a team as a code owner September 6, 2024 00:07
Comment on lines +6 to +7
horizonos:minSdkVersion="69"
horizonos:targetSdkVersion="69" />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

boolean debugSymbols = devBuild || isAndroidStudio()
boolean debugSymbols = devBuild
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily for this PR, but I think the back and forth on this shows that we need a dedicated option for enabling debug symbols in gradle, and not just infer it from dev or debug symbols.

It should be possible for users to make template_release and template_debug builds with debug symbols, to be stripped when uploading their builds, so they can symbolicate crashes.

Copy link
Member

@akien-mga akien-mga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks really clean and the refactor makes sense to properly support multiple flavors of the Android editor.

Can't test it for now as I believe my dusty Quest 1 doesn't have a recent enough OS version for this :D

@m4gr3d m4gr3d force-pushed the android_editor_improvements branch from a54accb to 9dc0543 Compare September 6, 2024 07:38
Copy link
Contributor

@devloglogan devloglogan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, working great on my Quest 3!

@akien-mga akien-mga merged commit 0e9950b into godotengine:master Sep 6, 2024
20 checks passed
@akien-mga
Copy link
Member

Thanks to everyone involved! That's a pretty exciting change, I'm eager to see more of what it will enable :)

@m4gr3d m4gr3d deleted the android_editor_improvements branch September 6, 2024 21:00
@Zeirus
Copy link

Zeirus commented Sep 11, 2024

Please post screenshots or videos of the editor working in Quest 3 with some demos. We are very curious! P.S.: Is there any chance it could work in Quest 2?

@dsnopek
Copy link
Contributor

dsnopek commented Sep 11, 2024

We'll make some videos after not too long - this is just the beginning. :-)

It can "work" on the Quest 2, however, it's a little under-powered and doesn't provide as good an experience as Quest 3 and Quest Pro, so we decided not to support it, at least for now - perhaps we'll be able to optimize and improve the experience in the future.

However, if want to build it yourself and allow it to run on Quest 2, you just need to change this line in the AndroidManifest.xml: https://github.com/godotengine/godot/pull/96624/files#diff-336222dc899645e608d8d7355038c154f74316238dec6ab406bfe544441e9f0bR77

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants