After opening the game , I showed a splash screen (using Android manifest file). But after the splash completes there is black screen for certain time (in certain slow devices) and then only the game starts . I could not found what was the problem . So could anyone please provide some insights .
My guess is that a slow device will take some time to actually go through the engine startup, uncompress assets and set up a graphics context.
Can you perhaps share the device logs? Add a print("Hello") to the init(self) of a script and have a look at the log from the point where you start the game until you see the “Hello” in the log.
The native splash is shown then a black screen appears and after some time the home screen is shown . What might be the issue ? My issue can be replicated by this zip file(It is a demo app ) but instead of the shorter black screen (in the this zip file), my original app takes longer time in the black screen . Mobile game 3.zip (1.2 MB)
I’ve tried the project you shared and I don’t really notice a black screen. I tried on a mid-range Sony device (perhaps 2 years old). This is what it looks like:
Maybe you could upload a screen recording of what it looks like on your phone? Also, which kind of phone have you tested on? Have you tested more than one phone? You could also try (I think I’ve already suggested it on Discord) to create a “splash screen” collection which you set as bootstrap collection. The splash screen collection should only contain your splash screen design (something simple with a logo). The splash screen should also contain a collection proxy to the rest of your game. When the splash screen collection is initialized you start loading the main game. This should ensure that you get something on the screen as quickly as possible.
As you can see in the video , a black screen appears after the splash screen. Is there any way that instead of the black screen I could show the splash .
Note : This demo is of a sample app , in my real app the black screen time is very long .
Ok, well, I am not seeing the same when I try. May I ask what happens if you set the clear color in game.project to white? Does the black screen then turn into a white screen instead?
I think I read somewhere that the idea, not specific to Defold, is to not render any frame (i.e. flip the backbuffer) until you’re ready to render a real frame.
Had a look at the documentation for Android 12 splash screens, and the game should wait with dismissing the splash activity until it has a rendered frame.
In any case, last year I had a look at how popular games do splash screens on Android. Surprisingly, I didn’t find any game that actually uses the Android splash screen functionality. Instead, all just start with a black screen for a second or two. Thus, I imagine users will not perceive this as a sign of low quality. For my game, I will not have any splash screen, start with a black screen, and then fade in my in-app loading screen.