My new game on android has bigger models and textures than my previous game.
The design I used for my previous game is a menu activity which would then call my play-level activity.
The player would choose an item from the menu, and the game activity would load.
This worked fairly well when I didn't have alot of assets. On good devices loading was almost instantaneous.
But now, my new game needs about 15 seconds to load the models and textures.
Most of the time is spent on parsing the model files and turning them into binary data for VBOs.
The other part is spent decompressing JPEGs & turning them into texture bitmaps.
I know I can reduce loading time by having my models saved in binary VBO format in the first place, and saving my textures in a GPU compressed format. But I view that as a messy solution. I only want one set of data, I shouldn't have to load it over and over. From my PC experience, I'd tackle this problem by keeping everything in global RAM, load it once when the game starts, and keep it in RAM until the game is closed. Perhaps even keep it the GPU if possible.
As far as I can tell Android requires me to have isolated RAM for different activities. So when the play-level activity ends, my data goes bye bye. And thus every time the player goes back to the menu, I reload the assets.
Of course, I can start with the play-level activity first, and have that then call the menu. But again that seems messy, why should I load the play-level activity before the player started playing?
Does anyone have a good suggestion for a design pattern here?