As a Roblox developer, it is currently too hard to optimize higher fidelity games memory usage for lower end devices. Once a Mesh, Image, or Sound is loaded into memory, it always stays there until the player leaves the game.
If Roblox is able to address this issue, it would give developers the opportunity to heavily optimize memory usage for lower end devices which would hopefully result in a smoother experience on a wider range of devices.
Currently these are the things I have had to do to lower memory usage as much as possible:
- Using Streaming Enabled
- Save Sound ID’s to a table and load them in as needed
- Compress the Metallic and Roughness images for PBR texture maps
- Using optimized Meshes instead of Unions
- Setting Mesh collision fidelity to Box and building custom block collision around object
- Not storing larger assets in Replicated Storage
- Using ShadowMap lighting
These things do significantly improve memory usage however, eventually the ID’s will load in and players memory will increase so lower end devices crash. With Oil Warfare Tycoon, I have pretty much ran into the limit of how much more I can easily optimize memory usage while keeping graphical fidelity high.