Black screen

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 .

Here is the project file
Mobile game 2.zip (1.2 MB)

Also I found that there is a section in HTLML 5 for splash image , like that is there a certain section for splash image in android ?

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.

2 Likes

Here is the screen recording for my game .

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 .

Thanks for the reply .

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?

Yes it does turn into white screen but I want to show a splash image instead of the color . What might be the solution for this .

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.

1 Like

Yeah, we need to apply some kind of fix in the engine. This is not a top priority though so I can’t say when we will have time to do it.

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.

4 Likes