-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
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
Update the Android splash screen logic #92965
Conversation
Due to limitations to the splash screen introduced in Android 12, the splash screen logic is updated to the same logic as used on other platforms, i.e: the splash screen is rendered by the Godot engine instead of the Android runtime.
and #74348 ? |
Tested on a Pixel 7a, it seems to work ok, but I feel users might not be fully satisfied with the first splash screen shown (managed by the OS I guess?). It just shows the game icon, before moving on to the Godot-managed splash screen. Here's a test from this PR using https://github.com/KenneyNL/Starter-Kit-3D-Platformer/ 1000004491.mp4The screen recording app was a bit confused by the orientation change, so it actually looks better on device, where it transitions smoothly from this: To this: (Don't mind the size differences, I just cropped the wrongly oriented images from the video - on device both of them are properly fullscreen landscape from the start.) |
Tested 4.3-beta1 to compare and I can confirm this is a net improvement, in 4.3-beta1 it would show the same first splash screen with just the app icon, and then a black screen. |
The first splash screen is indeed provided by the OS; Google has been adding more limitations to it starting with Android 12, so there's not much we can do to customize that unfortunately. Other frameworks have been complaining as well about the imposed limitations :( |
As a Godot developer who's developing a mobile game and who's waiting impatiently this fix, I can say that this is a great improvement. Every other game (Godot or not) seems to have inevitably a pre-screen with the app icon (it can be on a white background or black or whatever color - I'm wondering the source of this color...) displayed and then the splashscreen. So if we have the splashscreen displayed instead of the black screen, it sounds perfect to me. |
Actually the first splash screen shown by 4.3-beta1 has a different background color. Might be the game's default clear color? Or maybe it's just a coincidence. Is it intentional that after this PR the background color changed to a dark one? (I do have dark theme on, so that might be why.) 1000004492.mp4
I tested a few other non-Godot apps and indeed most seem to have this first splash screen which is just the app icon on a dark background (Marvel Snap, Discord, Babbel), but others still have a custom full screen splash (WhatsApp, Signal, Twitch, Rocket.chat). Might be worth looking into, but for now this seems pretty good. |
@owlnewworlds For Godot, you should be able to customize the source of the background color (after this PR lands) via the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested, works as intended (for Godot apps, didn't test the editor).
Yes ^^ At least, the splashscreen feature will be working again, if we can have a real full splashscreen like Whatsapp etc in a future update, it'll be cherry on top. |
Thanks! We should probably backport this to |
Yes, please do port this to 3.x. People are getting their apps rejected because of this. I assume this isn't in 3.6 RC1? |
Just getting back to you to confirm (maybe it wasnt necessary lol) that using the export setting you told me works like a charm to change the background color behind the app icon before the splashscreen is displayed. |
3.6 still has this issue. |
Due to limitations introduced in Android 12, the Godot splash screen logic has been updated to the same logic as used on other platforms; the splash screen is rendered by the Godot engine instead of the Android runtime.
This PR has been split in two commits for code clarify:
Fixes #69317
Fixes #62863
Fixes #74348