Android first start troubles on Cheap Device

Hi,

I have started to make a game for Android. I’ve finally got the project to the point where I can debug it on phones/tablets. When I start the app for the first time, it takes a long time until everything is visible. I have now switched to levelstreaming and use the “Completed” event. But the completed event is triggered even things are still loading.

This has the consequence that at the first start after installation, my background is not loaded and everything is black except my pawn. It takes a while, then the background is also visible, I can control the pawn, the game then runs for a while with about 1 FPS, at some point the background is also visible, a while later everything runs smoothly.
So I only have 1 “Actor-BP” and one “Pawn-BP”, the Actor-BP only has a plane with a material, the texture itself is small and has less than 50 KB.

Once everything runs correctly, it never happens again. Every time the app is restarted, everything is immediately visible.

What can I do to find out if something is still loading in the background? LoadStreamLevel(ByName) does not work, because “Completed” is triggered too early, at least at the first start. I can’t just show a 2 minute loading screen on first launch to make sure the game has actually really finished loading.

When i start the game via Editor on Android, i have this Message in the Log:

LogRHI: Error: GL Error encountered during frame 2, glerror=0x502. Set command line arg -OpenGLDebugLevel=1 for detailed debugging.

What could that be? Could this be the cause?

I am using UE 5.4

This happens on a cheap phone, Ulefone Power Armor 16. 8 Cores (4x 2.0 GHz ARM Cortex-A53, 4x 1.5 GHz ARM Cortex-A53)
When i use a Doogee T30 Tablet it works good.(yeah its cheap too, but has better Chips.

Update:
Same with Ulefone Armor X8, but not so extreme.

The Error Message in the Log only appears with the PowerArmor16-Device, so it could be the reason.

This always happens with level streaming :slight_smile:

What I did ( which seems to work ), is wait until I can see a known object is the level ( I used a player start ), then spawn the pawn and possess.

This was on PC, btw. The delay on the first start, is the engine loading things into memory. If you restart, things are already loaded.

This happens without Levelstreaming too, because of this i changed to level streaming in this project instead using a persistent Level only.

1 Like

Yes, the first time loading thing will always happen…

Level streaming is just a way of changing levels without having to use ‘open level’.