Skip to content

Add an about page for the Godot XR Editor #10083

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

Merged
merged 1 commit into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions tutorials/editor/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,19 @@ in other sections where appropriate. For example, the :ref:`animation editor
default_key_mapping
customizing_editor

XR editor
---------

Godot offers a port of the editor designed to run natively on Meta Quest devices.
The port can be downloaded from the `Meta Horizon Store <https://www.meta.com/experiences/godot-game-engine/7713660705416473/>`__,
or from the `Godot download page <https://godotengine.org/download/preview/>`__.

.. toctree::
:maxdepth: 1
:name: toc-xr-editor

using_the_xr_editor

Android editor
--------------

Expand Down
72 changes: 53 additions & 19 deletions tutorials/editor/using_the_android_editor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
Using the Android editor
========================

In 2023, `we added <https://godotengine.org/article/android_godot_editor_play_store_beta_release/>`__
an `Android port of the editor <https://godotengine.org/download/android/>`__
that can be used to work on new or existing projects on Android devices.
In 2023, we added an `Android port of the editor <https://godotengine.org/article/android_godot_editor_play_store_beta_release/>`__
that can be used to create, develop, and export 2D and 3D projects on Android devices.

The app can be downloaded from the `Godot download page <https://godotengine.org/download/android/>`__
or from the `Google Play Store <https://play.google.com/store/apps/details?id=org.godotengine.editor.v4>`__.

.. note::

The Android editor is in early access, while we continue to refine the experience,
and bring it up to parity with the Desktop version of the editor. See :ref:`doc_using_the_android_editor_limitations` below.
The Android editor is in early access, while we continue to refine the experience. See :ref:`doc_using_the_android_editor_limitations` below.

Android devices support
-----------------------
Expand All @@ -21,31 +22,64 @@ The Android editor requires devices running Android 5 Lollipop or higher, with a
- Android-powered netbooks
- Chromebooks supporting Android apps

.. _doc_using_the_android_editor_limitations:
Runtime Permissions
-------------------

- `All files access permission <https://developer.android.com/training/data-storage/manage-all-files#all-files-access>`__:
Enables the editor to create, import, and read project files from any file locations on the device.
Without this permission, the editor is still functional, but has limited access to the device's files and directories.
- `REQUEST_INSTALL_PACKAGES <https://developer.android.com/reference/android/Manifest.permission#REQUEST_INSTALL_PACKAGES>`__: Enables the editor to install exported project APKs.
- `RECORD_AUDIO <https://developer.android.com/reference/android/Manifest.permission#RECORD_AUDIO>`__: Requested when the `audio/driver/enable_input <https://docs.godotengine.org/en/stable/classes/class_projectsettings.html#class-projectsettings-property-audio-driver-enable-input>`__ project setting is enabled.

Tips & Tricks
-------------

**Input**

- For the best experience and high level of productivity, connecting a bluetooth keyboard & mouse is recommended to interact with the Android editor.
The Android editor supports all of the `usual shortcuts and key mappings <https://docs.godotengine.org/en/stable/tutorials/editor/default_key_mapping.html>`__.
- When interacting with keyboard & mouse, you can decrease the size of the scrollbar using the `interface/touchscreen/increase_scrollbar_touch_area <https://docs.godotengine.org/en/stable/classes/class_editorsettings.html#class-editorsettings-property-interface-touchscreen-increase-scrollbar-touch-area>`__ editor setting.
- For 2D projects, the `block coding plugin <https://godotengine.org/asset-library/asset/3095>`__ can provide a block-based visual alternative to composing scripts when lacking a connected hardware keyboard.

**Multi-tasking**

Required Permissions
--------------------
- On smaller devices, enabling and using picture-in-picture (PiP) mode provides the ability to easily transition between the *Editor* and the *Play window*.

The Android editor requires the `All files access permission <https://developer.android.com/training/data-storage/manage-all-files#all-files-access>`__.
The permission allows the editor to create / import / read project files from any file locations on the device.
Without the permission, the editor is still functional, but has limited access to the device's files and directories.
- PiP can be enabled via the `run/window_placement/play_window_pip_mode <https://docs.godotengine.org/en/latest/classes/class_editorsettings.html#class-editorsettings-property-run-window-placement-play-window-pip-mode>`__ editor setting.
- The `run/window_placement/android_window <https://docs.godotengine.org/en/latest/classes/class_editorsettings.html#class-editorsettings-property-run-window-placement-android-window>`__ editor setting can be used to specify whether the *Play* window should always launch in PiP mode.
- **Note:** In PiP mode, the *Play* window does not have input access.

**Projects sync**

- Syncing projects via Git can be done by downloading an Android Git client.
We recommend the `Termux terminal <https://termux.dev/en/>`__, an Android terminal emulator which provides access to common terminal utilities such Git and SSH.

- **Note:** To use Git with the Termux terminal, you'll need to grant *WRITE* permission to the terminal.
This can be done by `running the following command <https://wiki.termux.com/wiki/Termux-setup-storage>`__ from within the terminal: ``termux-setup-storage``

**Plugins**

- GDExtension plugins work as expected, but require the plugin developer to provide native Android binaries.

.. _doc_using_the_android_editor_limitations:

Limitations & known issues
--------------------------

Here are the known limitations and issues of the Android editor:

- No C#/Mono support
- No support for external script editors
- While available, the *Vulkan Forward+* renderer is not recommended due to severe performance issues
- No support for building and exporting an Android APK binary.
As a workaround, you can generate and export a `Godot PCK or ZIP file <https://docs.godotengine.org/en/stable/tutorials/export/exporting_projects.html#pck-versus-zip-pack-file-formats>`__
- No support for building and exporting binaries for other platforms
- UX not optimized for Android phones form-factor
- No gradle build support.
- No support for Android plugins as they require gradle build support. GDExtensions plugins are supported.
- No C#/Mono support.
- No support for external script editors.
- While available, the *Vulkan Forward+* renderer is not recommended due to severe performance issues.
- UX not optimized for Android phones form-factor.
- `Android Go devices <https://developer.android.com/guide/topics/androidgo>`__ lacks
the *All files access* permission required for device read/write access.
As a workaround, when using an Android Go device, it's recommended to create new projects only in the Android *Documents* or *Downloads* directories.
- The editor doesn't properly resume when *Don't keep activities* is enabled in the *Developer Options*
- The editor doesn't properly resume when *Don't keep activities* is enabled in the *Developer Options*.
- There is a `bug <https://github.com/godotengine/godot/issues/70751>`__ with the Samsung keyboard that causes random input to be inserted when writing scripts.
It's recommended to use the `Google keyboard (Gboard) <https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin>`__ instead.

.. seealso::

Expand Down
90 changes: 90 additions & 0 deletions tutorials/editor/using_the_xr_editor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
.. _doc_using_the_xr_editor:

Using the XR editor
===================

In 2024, we introduced the `Godot XR editor <https://godotengine.org/article/godot-editor-horizon-store-early-access-release/>`__,
a version of the Godot editor **designed to run natively on XR devices**, enabling the creation,
development and export of 2D, 3D, and **XR** apps and games directly on device.

The app can be downloaded from the `Meta Horizon Store <https://www.meta.com/experiences/godot-game-engine/7713660705416473/>`__,
or from the `Godot download page <https://godotengine.org/download/preview/>`__.

.. note::

The XR editor is in early access, while we continue to refine the experience. See :ref:`doc_using_the_xr_editor_limitations` below.

XR devices support
------------------

For now, the Godot XR editor is only available for the following `Meta Quest <https://www.meta.com/quest/>`__
devices running **Meta Horizon OS v69 or higher**:

- Meta Quest 3
- Meta Quest 3s
- Meta Quest Pro

.. note::

We are working to add support for more XR devices, including PCVR devices.

Runtime Permissions
-------------------

- `All files access permission <https://developer.android.com/training/data-storage/manage-all-files#all-files-access>`__:
Enables the editor to create, import, and read project files from any file locations on the device.
Without this permission, the editor is still functional, but has limited access to the device's files and directories.
- `REQUEST_INSTALL_PACKAGES <https://developer.android.com/reference/android/Manifest.permission#REQUEST_INSTALL_PACKAGES>`__: Enables the editor to install exported project APKs.
- `RECORD_AUDIO <https://developer.android.com/reference/android/Manifest.permission#RECORD_AUDIO>`__: Requested when the `audio/driver/enable_input <https://docs.godotengine.org/en/stable/classes/class_projectsettings.html#class-projectsettings-property-audio-driver-enable-input>`__ project setting is enabled.
- `USE_SCENE <https://developers.meta.com/horizon/documentation/native/native-spatial-data-perm/>`__: Required to enable and access the scene APIs when running an XR project.

Tips & Tricks
-------------

**Input**

- For the best experience and high level of productivity, connecting a bluetooth keyboard & mouse is recommended to interact with the XR editor.
The XR editor supports all of the `usual shortcuts and key mappings <https://docs.godotengine.org/en/stable/tutorials/editor/default_key_mapping.html>`__.
- When interacting with tracked controllers or tracked hands, you can toggle on the
`interface/touchscreen/enable_long_press_as_right_click <https://docs.godotengine.org/en/stable/classes/class_editorsettings.html#class-editorsettings-property-interface-touchscreen-enable-long-press-as-right-click>`__ editor setting to enable right-click by long press.
- When interacting with tracked controllers or tracked hands, you can increase the size of the scrollbar using the
`interface/touchscreen/increase_scrollbar_touch_area <https://docs.godotengine.org/en/stable/classes/class_editorsettings.html#class-editorsettings-property-interface-touchscreen-increase-scrollbar-touch-area>`__ editor setting.

**Multi-tasking**

- `Theater View <https://www.meta.com/blog/quest/meta-quest-v67-update-new-window-layout-creator-content-horizon-feed/>`__ can be used to fullscreen the *Editor window*.
- Enable `Seamless Multitasking <https://www.uploadvr.com/seamless-multitasking-experimental-quest/>`__, available in the Quest *Experimental Settings*,
to enable the ability to quickly transition between a running XR project and the *Editor window*.
- When developing a non-XR project, the Godot editor app icon will provide the ability to switch between the *Editor window* and the *Play window* when the latter is active, using Quest's *App menu* feature.
- When developing and running an XR project, you can bring back the *Editor window* by:

- Pressing on the *Meta* button to invoke the menu bar
- Clicking on the Godot editor app icon to summon the *App menu*, and select the *Editor window* tile.

**Projects sync**

- Syncing projects via Git can be done by downloading an Android Git client. We recommend the `Termux terminal <https://termux.dev/en/>`__,
an Android terminal emulator which provides access to common terminal utilities such Git and SSH.

- **Note:** To use Git with the Termux terminal, you'll need to grant *WRITE* permission to the terminal.
This can be done by `running the following command <https://wiki.termux.com/wiki/Termux-setup-storage>`__ from within the terminal: ``termux-setup-storage``

**Plugins**

- GDExtension plugins work as expected, but require the plugin developer to provide native Android binaries.

.. _doc_using_the_xr_editor_limitations:

Limitations & known issues
--------------------------

Here are the known limitations and issues of the XR editor:

- No Meta Quest 2 support due to the limited amount of memory on the device.
However advanced users can grab the XR editor APK from the `download page <https://godotengine.org/download/preview/>`__
and sideload it onto their device if they desire to do so.
- No gradle build support.
- No support for Android plugins as they require gradle build support. GDExtension plugins are supported.
- No C#/Mono support.
- No support for external script editors.
- While available, the *Vulkan Forward+* renderer is not recommended due to severe performance issues.