godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Port the Godot editor to Android #3931

Closed m4gr3d closed 1 year ago

m4gr3d commented 2 years ago

Describe the project you are working on

Running the Godot Editor natively on Android devices.

Note this proposal is a subset of https://github.com/godotengine/godot-proposals/issues/1061 as it focuses on issues specific to the Android port of the Godot Editor.

Describe the problem or limitation you are having in your project

Ability to use the Godot Editor natively on an Android device.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

The Godot Editor is itself a Godot app and thus can be made to run on Android devices since Godot can create / build / export Android apps and games.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

This proposal tracks the work of getting the Godot Editor running natively on Android devices:

This proposal will centralize developers / users feedback as well as suggestions to the editor core logic and UX in order to produce a high quality port of the Godot Editor.

If this enhancement will not be used often, can it be worked around with a few lines of script?

No

Is there a reason why this should be core and not an add-on in the asset library?

This is about expanding the reach of the Godot Editor to the Android platform.

m4gr3d commented 2 years ago

Godot Android Editor updated builds:

SoyoTamo commented 2 years ago

It would also be the easiest way for someone from the third world (like me) to use Godot 4 with Vulkan. Since the mobile hardware equipped with the latest technologies is much easier to get than the desktop.

fire-forge commented 2 years ago

Using Godot on a phone would probably be difficult because of how small it is, but this will really be great for Chromebook and tablet users who have to use the web version right now.

MichaelGlenMontague commented 2 years ago

Using Godot on a phone would probably be difficult because of how small it is, but this will really be great for Chromebook and tablet users who have to use the web version right now.

My main reason for wanting an Android port is to have both the API documentation and an experimentation environment available from a single app on the phone in my pocket. But for such a small screen, it has to support portrait mode and fullscreen docks, hide the navigation bar, and use long-press in place of right-click.

Roosader commented 2 years ago

Using this on something like a foldable phone is such an interesting use case. I have a Z Fold 3 and, from my simple testing, the interface, while small, is honestly fairly easy to navigate with the S Pen. I really want to see this come to fruition, as I've been using Construct 3 for development across my laptop and Fold but having something as powerful as Godot on my phone would be amazing!

akien-mga commented 2 years ago

Implemented by https://github.com/godotengine/godot/pull/57747

m4gr3d commented 2 years ago

@akien-mga I'm keeping the proposal open to gather feedback for updates and improvements!

Roosader commented 2 years ago

The fact that this is now gonna be official is so freaking cool. Having a REAL full featured game engine on a mobile device is absolutely insane. Are touch gestures planned? Like gestures for moving around the viewport? And also maybe long press for right click or something? Thank you for all of your hard work guys! You guys are amazing!

AlphinAlbukhari commented 2 years ago

My feedback:

Calinou commented 2 years ago

The fact that this is now gonna be official is so freaking cool. Having a REAL full featured game engine on a mobile device is absolutely insane. Are touch gestures planned? Like gestures for moving around the viewport? And also maybe long press for right click or something? Thank you for all of your hard work guys! You guys are amazing!

This is all planned, but it'll take a while to be fully implemented. We need to focus on releasing 4.0 as well :slightly_smiling_face:

Roosader commented 2 years ago

The fact that this is now gonna be official is so freaking cool. Having a REAL full featured game engine on a mobile device is absolutely insane. Are touch gestures planned? Like gestures for moving around the viewport? And also maybe long press for right click or something? Thank you for all of your hard work guys! You guys are amazing!

This is all planned, but it'll take a while to be fully implemented. We need to focus on releasing 4.0 as well πŸ™‚

Ah okay! Awesome :). It's already super usable with a mouse and keyboard, so no biggie!

Starkium commented 2 years ago

I just loaded this onto an oculus quest and for the most part the editor works! I lost input when the 3d editor got summoned and I have a grey screen when trying to run a downloaded project, but still it loads up and even accesses the keyboard and file directory. This is sick!

Can we get a native vr editor? IE: launches into a vr environment when working on the 3d stuff? I would LOVE to be a part of the development of this. Godot Editor Android VR could be THE tool that the metaverse is founded on, this is absurdly interesting. :)

m4gr3d commented 2 years ago

Can we get a native vr editor? IE: launches into a vr environment when working on the 3d stuff?

@Starkium This is definitely on the roadmap (see https://godotengine.org/article/godot-engine-receiving-new-grant-meta-reality-labs)!

I would LOVE to be a part of the development of this.

We'd appreciate all the help we can get! One of the initial tasks that would improve the experience on the Quest is support for touch interaction. If you try it on a Android device or tablet today, and as reported by several folks in the thread, the touch interaction is basic and doesn't give you full access to the functionality. By improving it, we'd also be improving interaction on the Quest with the controllers or hand tracking.

Godot Editor Android VR could be THE tool that the metaverse is founded on, this is absurdly interesting. :)

Couldn't agree more!

AMAIOLAMO commented 2 years ago

I booted it up and it was super awesome!

I tried to do a simple platformer and realized some problems that requires improvement ( all the problems below are which I didn't use a mouse and keyboard ):

Those are my first impressions while making a super basic platformer game

wish it'll help improve the android port more, I'm super excited to see how this is gonna work out!

filipworksdev commented 2 years ago

Just built this and works well so far.

Some feedback and or issues:

Overall I'd say this is great. Is about 99% working minus the ui stuff. My tablet actually supports DEX mode with mouse cursor so I can use it just like a regular computer but I suspect other tablets will have a bit of a hard time making it work properly.

Calinou commented 2 years ago

GLES3 appears very slow on my system Samsung Tab S6 Lite but GLES2 works okay.

The GLES3 renderer has a high base cost which isn't suited to mobile devices. It can run a bit better if you disable HDR and depth prepass in the project settings, but it will still have a higher base cost compared to GLES2.

We should probably default newly created projects to GLES2 on Android, and use GLES2 for the project manager too. (Always using GLES2 for the project manager on desktop could also be a good idea, as it might decrease power consumption slightly.)

almirpask commented 2 years ago

Loving this port! running on samsung galaxy tab s7 FE my main problem was going back to the editor after running my games, it seems that the editor is closed by the game and to continue to editing the project you need to open everything from the beginning, using a bluetooth keyboard I had no problems with the UI.

Roosader commented 2 years ago
  • S-Pen draws blue lines like Godot Editor is a drawing application when I start drawing from the very top downwards.

That blue line is actually from S-Pen to text, so maybe the whole editor is somehow being treated as a text field? I get the same thing on my Fold 3.

Calinou commented 2 years ago

That blue line is actually from S-Pen to text, so maybe the whole editor is somehow being treated as a text field? I get the same thing on my Fold 3.

This is likely the culprit. Virtual keyboard support on Android requires an invisible text input, causing issues like https://github.com/godotengine/godot/issues/59697 and https://github.com/godotengine/godot/issues/59705.

Roosader commented 2 years ago

Ahhhh okay that makes sense. It's a pretty minor thing, but hopefully there's some solution for it because pen support would make the editor amazing even on small slab phones like the S22 Ultra/Note

koenvaneijk commented 2 years ago

Can we get a native vr editor? IE: launches into a vr environment when working on the 3d stuff?

@Starkium This is definitely on the roadmap (see https://godotengine.org/article/godot-engine-receiving-new-grant-meta-reality-labs)!

I would LOVE to be a part of the development of this.

We'd appreciate all the help we can get! One of the initial tasks that would improve the experience on the Quest is support for touch interaction. If you try it on a Android device or tablet today, and as reported by several folks in the thread, the touch interaction is basic and doesn't give you full access to the functionality. By improving it, we'd also be improving interaction on the Quest with the controllers or hand tracking.

Godot Editor Android VR could be THE tool that the metaverse is founded on, this is absurdly interesting. :)

Couldn't agree more!

I was working on a project last night and remembered this issue from mid-Feb, just thinking of the possibilities. It could even run fully native on the Quest with optimized 3D scene viewport. Jumping straight into the game.

It blows my mind to see what progress is already being made and I can’t even describe how excited I am for the future!

I need to brush up on C++ syntax a bit as I’m coming from Python, but very eager to find out how I can contribute to this.

idchlife commented 2 years ago

@m4gr3d hey, responding in this thread.

So I am using this thing: http://innov8tiv.com/wp-content/uploads/2021/06/14-inched-Samsung-Galaxy-Tab-S8.jpeg

I did not yet test with separately connected mouse, so I cannot yet say if it works or not. Touchpad works in the way it kinda resembles macbook touchpad. It has mouse cursor, it has gestures, but it's not yet full-blown mouse.

I made screen recording of my usage of template project. As you can see, I often do "something" which makes sliders highlight. I am using 2 fingers to scroll, but it results in something odd, "real" cursor seems to obtain some kind of offset, while it's gui representation stays as it was. You can see later, that I cannot normally click things despite the fact of pointing at them. Also about usage of viewport, my mistake, I meant I cannot rotate the camera, look anywhere using touchpad, because I assume - there is no wheel mouse button. And 2/3/4 fingers do nothing. I also tried holding alt, ctrl, shift - nothing.

https://easyupload.io/edj5xr

I am aware of a niche setup here, with my touchpad for tablet, so I think I better help with testing keyboard/mouse duo instead, because this will be the most used setup I predict (connect android phone to external display - connect mouse/keyboard - voila, you are a game dev).

FlykeSpice commented 2 years ago

1000x thumbs up for making godot (and game development overall) more acessible to people who don't own a computer.

Calinou commented 2 years ago

@FlykeSpice Please don't bump issues without contributing significant new information. Use the :+1: reaction button on the first post instead.

Starkium commented 2 years ago

Has there been any progress with usage within a VR environment like the quest yet?

m4gr3d commented 2 years ago

Has there been any progress with usage within a VR environment like the quest yet?

@Starkium Not yet. We're focusing on stabilizing the Android port first (getting fairly close to a beta state!), and we'll follow up with the Quest port.

One of the major remaining issue before beta is improving touch interactions for the port on Android devices. Solving this issue should also improve the current state of the port when sideloaded to a Quest device.

VoxSkynned11 commented 2 years ago

Has there been any progress with usage within a VR environment like the quest yet?

@Starkium Not yet. We're focusing on stabilizing the Android port first (getting fairly close to a beta state!), and we'll follow up with the Quest port.

One of the major remaining issue before beta is improving touch interactions for the port on Android devices. Solving this issue should also improve the current state of the port when sideloaded to a Quest device.

How closer would you say :3 sorry I'm anxious about it, will itt be for 3.5?

Calinou commented 2 years ago

How closer would you say :3 sorry I'm anxious about it, will itt be for 3.5?

New features will only land in 3.6 and 4.0, not 3.5.x.

That said, I'd be very surprised if a VR editor was completed before 4.0 is released. This is probably 4.1 material at best, considering it's something only a few people will be able to use effectively.

Starkium commented 2 years ago

That said, I'd be very surprised if a VR editor was completed before 4.0 is released. This is probably 4.1 material at best, considering it's something only a few people will be able to use effectively.

I think you're grossly underestimating what the android editor with vr mode on quest really means for the entire vr community at large.

VoxSkynned11 commented 2 years ago

That said, I'd be very surprised if a VR editor was completed before 4.0 is released. This is probably 4.1 material at best, considering it's something only a few people will be able to use effectively.

I think you're grossly underestimating what the android editor with vr mode on quest really means for the entire vr community at large.

No you misunderstood me, i was talking about the touch support πŸ‘‰πŸ‘ˆ

VoxSkynned11 commented 2 years ago

Noo please don't hate me, i didn't mean the VR i meant the touch support for android.. 😒 i know android OS sucks for development

Em 31 de ago de 2022 11:29, "Aaron Benjamin" @.***> escreveu:

That said, I'd be very surprised if a VR editor was completed before 4.0 is released. This is probably 4.1 material at best, considering it's something only a few people will be able to use effectively.

I think you're grossly underestimating what the android editor with vr mode on quest really means for the entire vr community at large.

β€” Reply to this email directly, view it on GitHub https://github.com/godotengine/godot-proposals/issues/3931#issuecomment-1233015065, or unsubscribe https://github.com/notifications/unsubscribe-auth/AZRDMAVKPLQBN2FSPC7ULY3V35T35ANCNFSM5NY2JQCA . You are receiving this because you commented.Message ID: @.***>

m4gr3d commented 2 years ago

FYI, we should have a beta build ready once https://github.com/godotengine/godot/pull/65398 & https://github.com/godotengine/godot/pull/65434 are submitted!

VoxSkynned11 commented 2 years ago

FYI, we should have a beta build ready once godotengine/godot#65398 & godotengine/godot#65434 are submitted!

UwU

m4gr3d commented 2 years ago

FYI, we should have a beta build ready once godotengine/godot#65398 & godotengine/godot#65434 are submitted!

Update beta build of the Godot Android Editor with numerous bug fixes and updates!

Godot Android Editor v3.6.0.beta.0

VoxSkynned11 commented 2 years ago

FYI, we should have a beta build ready once godotengine/godot#65398 & godotengine/godot#65434 are submitted!

Update beta build of the Godot Android Editor with numerous bug fixes and updates!

Godot Android Editor v3.6.0.beta.0

Can you tell if this is a known issue: While testing the game, the game doesn't recognize the keyboard input(android keyboard) in the project input map it does recognize it but while playing it simply doesn't work, i remember i tried some weird stuff like running godot under proot and still no luck, i tried different keyboard apps , i think i saw someone talking about it but i couldn't find it anymore..

VoxSkynned11 commented 2 years ago

FYI, we should have a beta build ready once godotengine/godot#65398 & godotengine/godot#65434 are submitted!

Update beta build of the Godot Android Editor with numerous bug fixes and updates! Godot Android Editor v3.6.0.beta.0

Can you tell if this is a known issue: While testing the game, the game doesn't recognize the keyboard input(android keyboard) in the project input map it does recognize it but while playing it simply doesn't work, i remember i tried some weird stuff like running godot under proot and still no luck, i tried different keyboard apps , i think i saw someone talking about it but i couldn't find it anymore..

Oh wait actually it works with the bt controller (you van doenload from playstore) but you'll need a second smartphone

And it seems much more stable than last time i want to learn to use godot but my pc don't support it :( then i have to use this phone i hope it works well on this phone a6+ it has almost 4gb has a 64bit cpu(useless because someone stupid decided to put a 32bit android in it) :3

SBHattarj commented 1 year ago

it seems I can't add new script language to my project with addons

m4gr3d commented 1 year ago

it seems I can't add new script language to my project with addons

We haven't tested the use of add-ons yet with the Android port but it's unlikely that scripting languages other than gdscript will work out of the box.

SBHattarj commented 1 year ago

it seems I can't add new script language to my project with addons

We haven't tested the use of add-ons yet with the Android port but it's unlikely that scripting languages other than gdscript will work out of the box.

Is there any plans for supporting addons or custom scripting language also, I don't have long access to a computer, so would like to work on my android, and I really want to use python for my project which can be added by godot python addon which works on desktop.

Also after working on got this error on the debugger, which doesn't occur on desktop: E 0:00:00.199 open_dynamic_library: Can't open dynamic library: libpythonscript.so, error: dlopen failed: library "libpythonscript.so" not found. <C++ Error> Parameter "p_library_handle" is null. <C++ Source> platform/android/os_android.cpp:274 @ open_dynamic_library()

I'm not sure if this'll help, but thought this might be usefull info.

Zireael07 commented 1 year ago

This is an android version, I strongly doubt custom scripting languages are possible on Android.

SBHattarj commented 1 year ago

This is an android version, I strongly doubt custom scripting languages are possible on Android.

Actually certain languages can be ran on android through proper binaries, termux and pydroid being great example, so if an adon can give proper binaries to run the language, I believe it maybe posible to be ran on android

Calinou commented 1 year ago

C# is not supported on Android yet due to missing/incomplete upstream support. It won't be done in time for 4.0.

GDExtension support is technically feasible, but also missing in 4.0. Note that even once GDExtension support is added, extension developers will still need to build a library for Android for extensions to work there.

ShalokShalom commented 1 year ago

What is missing for dotnet support?

m4gr3d commented 1 year ago

Port of the Godot Editor on Android released on the Play Store!

https://godotengine.org/article/android_godot_editor_play_store_beta_release/