Godot Version
3.5.1
Question
I am developing a game that needs to function on several different devices.
If possibly i would like to increase the asset quality on devices with enough power for it.
The basic idea is to switch out certain scenes in the game depending on build parameters, so as an example on PC a simple background scene with an image would be exchanged with another scene containing a 4k textured background with extra particle effects.
Currently i have attempted a few different approaches and have hit a few snags:
- A script that loads the correct scene on _ready() → Loading screens do not work, since the sub-scenes are loaded after the game is shown, leading to a few moments freeze when starting the game.
- Pre-loading the correct scenes into a buffer using a custom loader system, and loading empty scenes into cache for the “missing” resources → Very finicky. Works, but requires manually defining/hardcoding which scenes belong to which quality setting in a separate file.
- Similar to method “1” but instead of actually loading the scenes the script only used to store the paths to the different quality version of the scenes. A separate script is then run before export to modify the scene files directly → Error-prone, and troublesome to test.
So my question is, if anyone has a good idea how to solve this. Preferably a way that works in Godot 3, however a Godot 4 specific solution would also be fine.