-
-
Notifications
You must be signed in to change notification settings - Fork 21.2k
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
[3.x] Editor Android Port #57747
[3.x] Editor Android Port #57747
Conversation
This is AWESOME! |
8de6086
to
bde957f
Compare
I gave the APK a try on a Samsung Galaxy Z Fold2. Some comments
Touch UX improvements that could be implemented in the future
Very impressive work overall – it should make for a much better editor-on-Android experience compared to the web editor. |
@Calinou @LightningAA Thanks for the feedback!! I'll create a set of issues to track the feedbacks so we can start addressing it. @akien-mga Given the changes in this PR are partitioned away and should not affect the stable code/logic, we can start reviewing and merging it. |
Also any changes you did here I would glad you add back (directly without PR) to 4.0 and merge after |
@thebestnom Sounds good. I'll push the changes for the |
Some of the issues Calinou raised could be fixed by
|
This is great! To add on to what everyone else has said, I have a few suggestions for this:
|
I love it, it's so lightweight even on my not so powerful phone, with a 720x1520 screen and 5.9" size, using 125% proportion is perfect! Touching using fingers isn't much fun, so I fixed it with a touchpen. 😁 My suggestions are everything above, and a creation of a built-in keyboard! I only have a few crashes, and my phone doesn't heat much! And I have a question, how can I delete a scene? |
The best approach would be to rely on the OS-provided scaling factor. However, this OS-provided scaling would often be too large to be usable, so it would have to be clamped depending on the screen's lowest dimension (width or height) or divided by a constant factor.
Using a custom virtual keyboard is a bad idea for accessibility reasons. It will no longer follow the user's keyboard layout, theming options and various typing aids. |
An interesting approach would be for Godot to provide it's own basic built in keyboard that goes in the bottom panel since most of those panels are read only with exception for the Shader Script. Obviously it won't be as effective as the system touch keyboard but it would be an integrated alternative that embeds with the interface. There are some mobile addons that provide custom keyboard |
We can't resize the editor window to let the virtual keyboard display, as the screen is too small to do that. If the built-in keyboard was designed to be less tall, it would be pretty much unusable with touch input too. PS: Most virtual keyboards offer settings to let you adjust their width, height and displayed elements. |
I just tried this on a 10 inch tablet. It was pretty amazing! I also got stuck indefinitely on a black screen when trying to open a GLES3 project, but GLES2 worked after a few seconds of black screen, which I now realize was probably the duration of the splash screen. +1 to all of Calinou's feedback, except:
My instinct was to drag a finger to "look around" (orbit?) in the 3D viewport. I suggest two-finger dragging for panning and pinching for zooming, as those two motions feel more closely related. It seems more intuitive to me. That said, I don't feel strongly about this and would be willing to do it Calinou's suggested way. |
dd3f133
to
8279ea7
Compare
I've added a Note that the two versions can be installed side by side on the same device. |
Thanks @thebestnom for an amazing port and @m4gr3d for the second pass! |
Maybe after a few more of the issues are worked out, but what would it take to get this on the Google Play store (and possibly other app stores)? |
And thanks again for @fahrstuhl for first trying to do it 😄 |
That's planned further down the line :) |
This is amazing! I have suggestion for touch use though. It's currently impossible to right click anything, I think holding down and releasing something should be considered a right click, as that's how it's usually done on mobile. Also dragging should only occur if the Control was held for a short period before moving. Otherwise it's difficult to scroll. Basically: |
Another thing I noticed, which may not be related to this but to text fields on mobile in general. Usually if you tap the text field, a handle appears, and if you click it you get a menu for copy, paste etc. That's not here for now. Maybe there's a way to let Android itself handle the text field? |
This already happens with an invisible text field control, but we can't replace all LineEdits/TextEdits with native Android controls as they don't support all the features that LineEdit and TextEdit provide. |
I see. How about just for the script editor then, as I feel copy and paste is pretty important there (As well as precise cursor movement when dragging the space bar) |
The script editor is literally the worst candidate for using a native Android control, since it's so advanced 🙂 The only way to implement this is to implement long-tapping selection in LineEdit and TextEdit. This is a lot of work to do correctly, and I'm not sure if it can be done at all. The same applies to dragging the spacebar, but I don't know how virtual keyboards actually translate this to the application. Do they send keyboard "left arrow" and "right arrow" events, or do something special? If this is something special, can C++ applications intercept it somehow? |
We'll be gathering feedback on the Android editor in this proposal: godotengine/godot-proposals#3931 Feel free to add your suggestions there. If you find actual bugs, you can of course open bug reports like usual. |
Oh I assumed Android controls could be added on top of everything else, but I guess not 😅. I remembered seeing code editors in Android before, but after looking at how they do it, it seems like a lot of these things they had to implement themselves. But they WERE able to get rid of the suggestion bar at least https://imgur.com/a/AdYDPVG |
I just didn’t understand where can I get android sdk to build apk and aab? |
See https://docs.godotengine.org/en/stable/development/compiling/compiling_for_android.html for documentation. |
this runs on an oculus quest for those who were wondering :) I'd like to get a way to launch into vr mode from it or even start the editor in a vr mode. This is going to be crazy for vr development. |
as I understand it, I collect it on the pc as usual, did I understand correctly? |
mouse right click doesn't work. |
In most stock rom Android recognize right click as back button in a non configureable way... Only fix is to replace rom 😅 (also middle click as home which is so frustrating) |
maybe just add button "del node" and then just click it to remove nodes in editor. |
Editing scripts is very hard, I propose that there should be a way to edit scripts in portrait mode. I used an app to force portrait mode on the Godot editor, and it looks very good, apart from the left panel which I don't know how to turn off. The app looks and feels great in general, it hasn't crashed for me and it runs my project well, I'm excited for the future!!! |
I'd love virtual windows for editing in vr
…On Sat, Apr 30, 2022, 10:54 AM Badduck ***@***.***> wrote:
Editing scripts is very hard, I propose that there should be a way to edit
scripts in portrait mode. I used an app to force portrait mode on the Godot
editor, and it looks very good, apart from the left panel which I don't
know how to turn off.
If this were full-screen I feel like it would be very usable. Maybe there
should be a setting to make the entire editor portrait mode?
[image: Screenshot_20220430-164842]
<https://user-images.githubusercontent.com/44337504/166110471-bfd24a27-74f0-47e2-812d-25cb9c46032e.jpg>
The app looks and feels great in general, it hasn't crashed for me and it
runs my project well, I'm excited for the future!!!
—
Reply to this email directly, view it on GitHub
<#57747 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABAVTN7CVGW6BLVXLRVWU5DVHVCSNANCNFSM5NXCLB2Q>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
You can enable distraction-free mode by clicking the "4 outward arrows" icon in the top-right corner of the 2D/3D/script tab: If you have a hardware keyboard, you can also press Ctrl + Shift + F11 to toggle it. Hiding the script list is done by clicking the leftwards arrow at the bottom of the script editor (it's obstructed by the virtual keyboard on your screenshot): The Ctrl + \ keyboard shortcut can be used to toggle the script list from a hardware keyboard. (It's probably a good idea to change that shortcut, as it may not be triggerable depending on your keyboard layout.) I agree it makes sense to toggle distraction-free mode automatically if the screen width isn't sufficient for editor usage with a dock on each side. This can probably be done on desktop as well. |
That works like a charm! unfortunately you can't scroll using only touch input as of yet, and the scroll bar is off-screen when I force portrait mode, so there will have to be some slight changes but it's looking very promising! |
Hello, i made a plugin that helps using it on android, i think its not relevant to show here, btw the plugin handles touch inputs and converts into mouse inputs, a keyboard inside it is also included, link to the project at github there: |
This is not related to your device having notch. It's just that there isn't enough vertical space to fit the Animation bottom panel (which has a minimum height). |
Is nice but how do i use it? 😬 |
I see. Thats pretty helpful. Thanks for your work 😊 |
3.x
version of the Godot Editor Android port based on the work done by @thebestnom in #36776!This PR cleans a lot of the logic in #36776 and adapt the code for the
3.x
branch. Given the stability of the3.x
branch, this should help accelerate testing and feedback on this implementation.There are still a lot of tweaks, UI cleanup and touch-ups needed to be done before the Editor Android port can be considered suitable for public release and usage. Nonetheless, the current logic is stable enough and partitioned away that we can start reviewing and landing this PR and then iterate on top of it.
Addresses godotengine/godot-proposals#3931
godot_android_editor_on_device_run_through.mp4
Apk Download (only meant for testing and feedback!)
Latest 3.x Godot Editor Android build (all architectures)
Generate apk from sources
scons tools=true platform=android target=<build_target> android_arch=<android_arch>
release_debug
is recommended for thetarget
optionandroid_arch
should be one ofarm64v8
,armv7
,x86
orx86_64
platform/android/java
directory./gradlew generateGodotEditor
bin
directory.