Add a blog post for the release of the Godot Editor on the Meta Horizon store (#935)

Co-authored-by: Emi <2206700+coppolaemilio@users.noreply.github.com>
This commit is contained in:
Fredia Huya-Kouadio
2024-09-20 09:42:32 -07:00
committed by Rémi Verschelde
parent 45e66762ba
commit 805218a2c4
12 changed files with 121 additions and 3 deletions

View File

@@ -19,7 +19,7 @@
- name: Fabio Alessandrelli
image: /assets/images/authors/faless.webp
- name: Fredia Huya-Kouadio
image: /assets/images/authors/default_avatar.svg
image: /assets/images/authors/fredia.jpg
- name: George Marques
image: /assets/images/authors/vnen.webp
- name: Gilles Roudiere

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -76,7 +76,7 @@ Drag & drop of Mesh to create MeshEmitter in visual shaders ([GH-93017](https://
### Initial Android editor support for XR devices
Thanks to Godot's unique feature of having an editor made with the engine itself, we've been able to bring the Godot editor to unconventional places, such as [the web](https://editor.godotengine.org/) and [Android devices](https://play.google.com/store/apps/details?id=org.godotengine.editor.v4). Building upon the latter, [Fredia Huya-Kouadio](https://github.com/m4gr3d) completed the proof of concept started by [Bastiaan Olij](https://github.com/BastiaanOlij) years ago, to add support for using the Android editor in an XR context using OpenXR ([GH-96624](https://github.com/godotengine/godot/pull/96624))! You can [test the current version](https://github.com/godotengine/godot-builds/releases/download/4.4-dev2/Godot_v4.4-dev2_android_editor_meta.apk) by sideloading the APK, currently supported on Meta Quest 3 or Quest Pro.
Thanks to Godot's unique feature of having an editor made with the engine itself, we've been able to bring the Godot editor to unconventional places, such as [the web](https://editor.godotengine.org/) and [Android devices](https://play.google.com/store/apps/details?id=org.godotengine.editor.v4). Building upon the latter, [Fredia Huya-Kouadio](https://github.com/m4gr3d) completed the proof of concept started by [Bastiaan Olij](https://github.com/BastiaanOlij) years ago, to add support for using the Android editor in an XR context using OpenXR ([GH-96624](https://github.com/godotengine/godot/pull/96624))! You can [test the current version](https://github.com/godotengine/godot-builds/releases/download/4.4-dev2/Godot_v4.4-dev2_android_editor_horizonos.apk) by sideloading the APK, currently supported on Meta Quest 3 or Quest Pro.
### And more!
@@ -174,7 +174,7 @@ This release is built from commit [`97ef3c837`](https://github.com/godotengine/g
## Known issues
- Typed dictionaries: Different typed keys/values are wrongly allowed when using the `[]` operator ([GH-96772](https://github.com/godotengine/godot/issues/96772)). A fix is already in the pipeline for the next dev snapshot.
- Windows: Detecting newly added assets ([GH-96828](https://github.com/godotengine/godot/issues/96828)), export variables ([GH-96810](https://github.com/godotengine/godot/issues/96810)), and the last modification dates for projects ([GH-96812](https://github.com/godotengine/godot/issues/96812)) is not working in this snapshot, due to a toolchain bug exposed by a recent FileAccess change on Windows. This was already fixed by [GH-74830](https://github.com/godotengine/godot/pull/74830)).
- Windows: Detecting newly added assets ([GH-96828](https://github.com/godotengine/godot/issues/96828)), export variables ([GH-96810](https://github.com/godotengine/godot/issues/96810)), and the last modification dates for projects ([GH-96812](https://github.com/godotengine/godot/issues/96812)) is not working in this snapshot, due to a toolchain bug exposed by a recent FileAccess change on Windows. This was already fixed by [GH-74830](https://github.com/godotengine/godot/pull/74830).
With every release we accept that there are going to be various issues, which have already been reported but haven't been fixed yet. See the GitHub issue tracker for a complete list of [known bugs](https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+label%3Abug+).

View File

@@ -0,0 +1,118 @@
---
title: "Godot Editor on the Meta Horizon Store"
excerpt: "Introducing the Godot Editor for Meta Quest (Horizon OS) devices"
categories: ["pre-release"]
author: Fredia Huya-Kouadio
image: /storage/blog/covers/godot-editor-horizon-store-early-access-release.webp
image_caption_description: "Godot Editor on Meta Quest running <a href='https://github.com/KenneyNL/Starter-Kit-3D-Platformer'>Kenney's Starter Kit 3D Platformer</a>"
date: 2024-09-20 16:00:00
---
A year ago, I [introduced the Android port of the Godot Editor](https://godotengine.org/article/android_godot_editor_play_store_beta_release/). To date, it has had over [500K+ downloads on the Google Play store](https://play.google.com/store/apps/details?id=org.godotengine.editor.v4), and has enabled developers to create and develop Godot apps and games using Android tablets, foldables and phones. Since then we have been hard at work refining the experience, improving the development workflow via picture-in-picture (PiP) support, providing the ability to build and export Godot binaries, and improving the Editor performance and reliability.
Building on that foundation, and thanks to the [Meta grants](https://godotengine.org/article/godot-engine-receiving-new-grant-meta-reality-labs/) in support of that work and with help from [W4 Games](https://www.w4games.com/), I was able to complete the proof of concept started by [Bastiaan Olij](https://github.com/BastiaanOlij) a couple years ago, to add support for using the Android editor in an XR context using Godot's first class [OpenXR](https://www.khronos.org/openxr/) integration!
Today, I am proud to release the **first mobile XR port** of the Godot Editor on Meta Quest devices!
* [https://www.meta.com/experiences/godot-game-engine/7713660705416473/](https://www.meta.com/experiences/godot-game-engine/7713660705416473/)
The Godot Editor is [now available on the Horizon Store](https://www.meta.com/experiences/godot-game-engine/7713660705416473/) for **Meta Quest 3** & **Meta Quest Pro** devices running [Horizon OS](https://www.meta.com/blog/quest/meta-horizon-os-open-hardware-ecosystem-asus-republic-gamers-lenovo-xbox/) **version 69 or higher**.
This is an early access version of the Godot Editor running natively on Meta Quest devices, enabling the creation and development of 2D, 3D and **immersive XR** apps and games directly on device without the need for an external computer.
As usual, this work is entirely **free and open source**, and already merged in Godot 4.4's development branch ([GH-96624](https://github.com/godotengine/godot/pull/96624)). The version we publish on the Horizon Store can also be downloaded as an APK directly [from the Godot website](/download/preview/).
## Features & Highlights
This version of the Godot Editor is a **Hybrid App** with the ability to open and transition back and forth between multiple **panel** (2D) and **immersive** (XR) windows. This is used to support the Editor features as described below.
### Access to all Godot Engine capabilities
![Project Manager panel in Horizon OS](/storage/blog/godot-editor-horizon-store-early-access-release/project_manager_panel.webp)
![Main Editor panel in Horizon OS](/storage/blog/godot-editor-horizon-store-early-access-release/main_editor_panel.webp)
The [Project Manager](https://docs.godotengine.org/en/stable/getting_started/introduction/first_look_at_the_editor.html#the-project-manager) and the main [Editor](https://docs.godotengine.org/en/stable/getting_started/introduction/first_look_at_the_editor.html#id1) are rendered into panel windows as done on desktop and Android platforms. This makes the Editor readily available and usable either in the Home environment or overlaid onto a XR experience.
This approach allows us to deliver on a core tenet of this port which is to provide developers with a familiar development interface and access to the full set of capabilities and features that the Godot Editor provides on desktop and Android platforms. This includes access to the [asset library](https://godotengine.org/asset-library/asset), [keyboard & mouse shortcuts](https://docs.godotengine.org/en/stable/tutorials/editor/default_key_mapping.html), [GDScript](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_basics.html) code editing / highlighting / completion support, access to the [documentation](https://docs.godotengine.org/en/stable/classes/index.html), live scene editing, live script reloading support, [live debugging](https://docs.godotengine.org/en/stable/tutorials/scripting/debug/overview_of_debugging_tools.html), [live profiling](https://docs.godotengine.org/en/stable/tutorials/scripting/debug/the_profiler.html) and [many more](https://godotengine.org/features/)!
### Developing XR apps and games!
<video autoplay loop muted playsinline title="Showcasing support for developing XR projects">
<source src="/storage/blog/godot-editor-horizon-store-early-access-release/developing_xr_game.mp4?1" type="video/mp4">
</video>
When developing a XR project, the immersive (XR) window is used for playtesting the project directly in the device as if it was a released app already. In that mode, the Editor panel can be summoned as an interactive overlay, which allows the developer to iterate, debug or profile the XR project while its running.
Support for exporting XR project binaries will be made available via a plugin.
### Developing 2D and 3D apps and games!
<video autoplay loop muted playsinline title="Showcasing support for developing 2D and 3D projects">
<source src="/storage/blog/godot-editor-horizon-store-early-access-release/developing_3d_game_2.mp4?1" type="video/mp4">
</video>
Support for creating and developing 2D and 3D apps and games is available out of the box.
The experience is improved by leveraging the Android editors multi-panel capability which on Horizon OS allows to playtest the project in a new panel next to the Editor panel. This allows the Editor to remain accessible for iterating, debugging or profiling the project in real-time.
As with the Android editor, this version provides the ability to export 2D & 3D project binaries for all supported platforms.
### Leveraging Horizon OS platform capabilities
#### Support for keyboard and mouse
[External keyboard and mouse support](https://www.meta.com/help/quest/articles/headsets-and-accessories/meta-quest-accessories/tracked-keyboards-meta-quest/) allows developers to achieve the same levels of productivity as they do on desktop and laptop computers.
Virtual keyboard, touch controllers and [direct touch](https://www.meta.com/help/quest/articles/getting-started/getting-started-with-quest-3/direct-touch-meta-quest/) are also supported for quick interactions, or when physical keyboard and mouse devices are not readily available.
#### Seamless multitasking
<video autoplay loop muted playsinline title="Using Meta Quest seamless multitasking to modify XR game in real-time">
<source src="/storage/blog/godot-editor-horizon-store-early-access-release/xr_game_live_modifications.mp4?1" type="video/mp4">
</video>
[Introduced in Horizon OS v69](https://www.uploadvr.com/seamless-multitasking-experimental-quest/), seamless multitasking enables the Editor panel to be visible and interactable while playtesting a XR project in virtual space.
This gives developers the ability to do live editing, debugging or profiling of XR projects in real-time, with the benefit of the depth cues and sense of scale unique to XR.
#### Panel Resizing & Theater View support
The Editor panel can be resized at will via drag and drop to fit the developers needs.
<video autoplay loop muted playsinline title="Resizing the Editor panel">
<source src="/storage/blog/godot-editor-horizon-store-early-access-release/resizing_editor_panel.mp4?1" type="video/mp4">
</video>
Using the [Theater View button](https://www.meta.com/blog/quest/meta-quest-v67-update-new-window-layout-creator-content-horizon-feed/), developers can maximize the Editor panel and bring it front-and-center.
<video autoplay loop muted playsinline title="Maximizing the Editor panel into the Theater View">
<source src="/storage/blog/godot-editor-horizon-store-early-access-release/maximize_editor_in_theater_view.mp4?1" type="video/mp4">
</video>
## An important step for the XR & Game communities
Besides the technical achievements required to make this port feasible, we believe this is a significant milestone as it impacts the XR & Game community in a few but critical ways:
* **Turns the Meta Quest into a true Spatial Computer**
* The Meta Quest gains the ability to create (and distribute) its own native apps without the need for a PC or laptop computer!
* Being able to run a full game engine on a mobile XR device should serve as inspiration for the type of apps that can be brought to the mobile XR ecosystem.
* **Grows the OpenXR ecosystem by providing a seed for building feature rich apps**
* Godot Engine is a free and open-source software ([FOSS](https://en.m.wikipedia.org/wiki/Free_and_open-source_software)) project which means that, in partnership with the [Godot Foundation](https://godot.foundation/), OpenXR vendors can bring similar capabilities to their devices to grow the OpenXR ecosystem.
* **Reduces XR development friction**
* XR development on PC and laptop devices has significant friction due to the need to switch back and forth between the development device and the target XR device (i.e. taking the headset off for development, putting back on for playtesting).
* This is not an issue when using the Godot Editor natively on XR devices since the development and target device are now the same device!
* **Lowers the barrier of entry for XR and Game development**
* This version of the Godot Editor turns devices like the Meta Quest into an easily accessible development device with the ability to natively create, develop and export 2D, 3D or XR apps and games for all Godot-supported platforms.
* **Provides a more flexible development experience**
* Developers can leverage the virtual space to gain more screen estate than a laptop could provide.
* The [virtual floating panels](https://www.meta.com/blog/quest/meta-quest-v67-update-new-window-layout-creator-content-horizon-feed/) provide a more flexible layout than a traditional desktop + multi-monitors setup.
* The ability to playtest and modify XR projects in-headset in real-time is a capability that cant be replicated on PC and laptop computers.
## Next Steps, Feedback & Contributions
This is only the beginning!
As mentioned in the previous section, we believe this is an important milestone for the XR, GameDev, and Open Source communities and we aim to build on this foundation to make Godot Engine a powerful, flexible and cross-platform tool for XR and Game development.
To that end, we welcome feedback and contributions from partners, members of the community and interested parties.

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB