I'm working on a mobile game with a lot of customization options. For example, each character can have up to 80 dresses, 40 hairstyles, a variety of jewelry, different skin types, etc. In the game, we want to unlock a certain number of items as the player progresses. For example, at level 1, the player has access to 10 dresses; at level 2, another 10 dresses are unlocked. Additionally, if a player purchases any items from previous levels, we need to ensure they remain "available" for use throughout the game.
The problem I'm facing is that the character models themselves are quite large, and I notice that all the textures are loaded in-game at once, consuming a huge amount of memory. There might be several characters on the screen at the same time as well.
I see that Unity's runtime has a method called GetRepackedSkin, which, if I understand correctly, addresses this issue. However, I couldn't find a similar solution for Godot. I have some thoughts on how to possibly solve this with exporting each item, i.e. each dress, as a separate atlas, but this feels like a wrong approach to solve this.
Is it possible to resolve this issue in Godot with the current state of the runtime? Maybe there's a workaround? I'm willing to invest a reasonable amount of time to solve this, as it's a bit late to switch to Unity at this point, so I'd appreciate any guidance.